Short answer
Connect HubSpot, Salesforce or ClickFunnels, then choose source lists for a campaign (HubSpot lists, Salesforce list views or ClickFunnels tags) and optional exclude lists. Members are added and kept in sync with live updates plus a 15-minute re-sync. Contacts that leave every list, join an exclude list or are marked do-not-call are skipped.
HubSpot, Salesforce and ClickFunnels work like the GoHighLevel sync, using each CRM's own way of grouping contacts.
What counts as a list
| CRM | Source | Exclude |
|---|---|---|
| HubSpot | Contact lists (active or static) | Other lists |
| Salesforce | List views | Other list views |
| ClickFunnels | Tags | Other tags |
How the sync works
- Members are added to the campaign queue, in the order of your source lists.
- Members of an exclude list are skipped, and so are contacts who join one later.
- Contacts who leave every source list are skipped. If they come back, they're put back in the queue.
- Deleted records are skipped.
- Changes arrive through live webhooks where the CRM offers them, plus a full re-sync every 15 minutes.
Do-not-call
- Salesforce: the *Do Not Call* field syncs both ways. Marking DND in DialerDay updates Salesforce, and the re-sync picks up Salesforce changes. The periodic sync only ever turns DND on, never off, so an opt-out isn't undone by accident.
- HubSpot: there's no standard do-not-call property, so DND isn't synced. Use an exclude list instead.
- ClickFunnels: use an exclude tag.
What goes back to the CRM
Every finished conversation is logged on the CRM record: the outcome, notes, duration and recording link. ClickFunnels has no call activity object, so outcomes are written there as tags such as *Call: Interested*.
One source per campaign
A campaign can be fed by GoHighLevel or one CRM connection, not both. Imports, the lead webhook and DialerDay tags still work alongside it.