The PQL workflow at a glance
How product events reach Default
Default has no native integration with product analytics tools or warehouses, and it does not pull events, users, or cohorts from them. The tool, or a sync you run, sends each event to Default.Setup for PQL routing
Send events Default can qualify on
The captured sample defines the fields that later nodes can pick, and their types. Before you capture it:- Send 1 event per request. A body that holds an array of events starts 1 run with the whole array.
- Send running totals. Each request starts its own run, and the run sees only that request’s body.
Default does not add up events across requests, so send the total, such as
seats_used, or let the analytics tool or warehouse decide when the threshold is reached. - Send numbers as JSON numbers. A sample value of
6lets a condition use comparisons such as is at least. A value of"6"is text and offers only text comparisons. - Fill every field in the sample. A key missing from the sample does not appear in the data picker,
and a
nullvalue gives the field no type. - Name the email field
email, or end its name in_email. Conditions then offer is work domain, and the value picker offers Domain from email.
Build a PQL routing workflow for Salesforce
This example routes free-plan users with at least 5 seats at companies with at least 50 employees. People already in Salesforce keep their owner. New PQLs at an existing Account go to the account owner, and the rest go to a queue namedPQL Reps.
Add the Incoming Webhook trigger
Authorization: Bearer <secret>
header with each request.Capture a sample and map the person
email. Later nodes, including Enrich Data and Round-Robin, then know who the event is
about.Check the usage signal first
Product signal. Add the conditions from the event,
found in the data picker under Workflow → Trigger → Incoming webhook: plan equals
Free, seats_used is at least 5, and email is work domain. Leave Else empty, so
other events end the run before they use enrichment credits.Check Salesforce for the person
Product signal, add Match Record. Set CRM to Salesforce and Record to
Lead, and under Match Details, match the Lead’s Email to email from the trigger.Update existing Leads and tell their owner
Product Signal field to event from the
trigger. Then add Send Slack Message and set Recipients to the Lead’s Owner ID from
the Match Record step. The owner stays the same.Enrich new people
Qualify on fit
PQL, for example where the enriched number of
employees is at least 50 and the country is any of the markets you sell to. Leave Else
empty, or see Keep every signup in the CRM.Look for the company's Account
PQL, add Match Record with CRM set to Salesforce and Record set to
Account. Under Match Details, choose Website and domain matches, and for the value
pick email from the trigger and choose Domain from email. A domain field from the event,
such as account_domain, works too. See
Match on the domain.Give PQLs at known Accounts to the account owner
Lead Source to Product,
and set Owner ID to the Account’s Owner ID from the Match Record step. Add
Send Slack Message with Recipients set to the same Owner ID.Round-robin the rest
PQL Reps. Add
Create Record with the same Mapped Fields, and set Owner ID to
Latest assigned user under Round robin. Add Send Slack Message with Recipients set
to Latest assigned user. In Message, type {{ to insert event, seats_used, and
plan, so the rep sees why the user qualified.Test and publish
Keep every signup in the CRM
To record users who do not qualify yet, add Create Record on the fit check’s Else branch with the same Mapped Fields, without setting Owner ID. When the same user sends a qualifying event later, Match Record finds the Lead and takes the Match branch, which keeps the owner. To route those Leads too, add a Multi-Branch on the Match branch whose condition matches only Leads your team treats as unassigned, then Round-Robin and Update Record.Qualify with AI Prompt instead of fixed rules
When the signal is in text, such as a signup answer about the use case or a job title, add AI Prompt after Enrich Data in place of the fit check. In Dynamic prompt, type{{ to
insert the event fields and the enriched data, list the labels the model may return, for example
PQL and Not yet, and ask for the label only. Then add Multi-Branch with a branch where the
AI Prompt Output equals PQL. Else catches every other reply and failed requests. See
Classify free-text answers
and Score with AI Prompt.
Salesforce and HubSpot differences for PQLs
Check that PQL routing worked
- Runs: open the workflow, select Runs in the top bar, and open a run. Each Multi-Branch step lists every condition with the value it found and TRUE or FALSE, and the Round-Robin step shows the rep it picked. See Run logs.
- Assignments: in Routing, select Assignments, then Object assignments, to see each round-robin PQL. An owner copied from the Account does not count as a queue assignment.
- The CRM record: the new Lead or contact has the rep as owner and
Productas its source.
What Default does not do for PQLs
- Connect natively to Segment, PostHog, Mixpanel, Amplitude, Hightouch, or Census, or show a card for them on the Integrations page.
- Pull events, users, or cohorts from these tools, or query a warehouse on a schedule.
- Accept webhook requests without an
Authorization: Bearerheader. If a tool cannot set that header, put a service that can between the tool and Default. - Split a batch of events into separate runs, or add up events across requests.