Short answer
Pick a GoHighLevel location and one or more include tags for a campaign. Contacts with any include tag are added, and contacts with an exclude tag or call DND are skipped. GoHighLevel webhooks apply changes in real time, and a full re-sync runs every 15 minutes. A contact that loses its tags leaves the queue, and one that matches again comes back.
If your leads live in GoHighLevel, you shouldn't have to export CSVs. A campaign can use a GoHighLevel location as its lead source and stay in sync on its own.
Set it up
- Connect your GoHighLevel location (Settings → GoHighLevel).
- In the campaign, choose the location and the include tags, for example *new lead* or *facebook*.
- Optionally add exclude tags, for example *booked*, *client* or *do not call*.
What the sync does
| GoHighLevel change | Effect on the campaign |
|---|---|
| Contact gets an include tag | Added to the queue |
| Contact gets an exclude tag | Skipped (taken out of the queue) |
| Contact turns on call DND | Skipped |
| Contact loses every include tag | Skipped |
| A skipped contact matches again | Put back in the queue |
| Contact deleted in GoHighLevel | Skipped |
Changes arrive in real time through GoHighLevel's webhooks. A full re-sync every 15 minutes catches anything a webhook missed.
Tag order is priority
The order of your include tags sets each contact's rank: contacts with the first tag rank above contacts with the second. That's the *tag rank* in the queue order, and it's also the *Lead priority* weight in the lead score.
Exclude tags are checked at dial time too
Exclude tags are checked again at the moment of dialing. If a contact gets *booked* while it's waiting in the queue, it won't be dialed, even before the sync catches up.
GoHighLevel work hours
If your location has work hours set, contacts from it are only dialed inside those hours, on top of the campaign's own calling hours.
Writing back to GoHighLevel
- Do-not-disturb syncs both ways. Turn call DND on in DialerDay and it's set in GoHighLevel too. Writing DND back needs the contacts.write permission, so connections made before that feature need to reconnect.
- Workflows can add or remove GoHighLevel tags and write custom fields after a call. For example, tag *not interested* so your GoHighLevel nurture sequence stops.
- AI call review can write its answers, such as budget or timeline, into GoHighLevel custom fields.
One source per campaign
A campaign has one outside source: GoHighLevel or one CRM. To call the same GoHighLevel contacts in two different ways, use two campaigns with different tags.