Send an existing campaign to your whole audience — automatically.
Native HighLevel workflow actions can only email the one contact who triggered the workflow. This action creates a new campaign from a template you've already built and sends it immediately to every contact matching a tag or a custom filter.
What this action does
Four things that make this different from a native workflow email step.
Reuse existing templates
Pick from templates already built in HighLevel's own editor. No new email to design.
Tag or custom filter
Target everyone holding a tag, or write an advanced filter for precise audiences.
Runs on any trigger
Drop it into a scheduled digest, a manual trigger, or any workflow you already have.
Per-execution pricing
Pay only when it runs — no monthly subscription.
How it fires, in three steps
A workflow fires
Any trigger — scheduled, manual, or event-based.
A campaign is built
From the email template you selected in the action.
It sends immediately
To every contact matching your tag or filter — not just the triggering contact.
Need more precision than a single tag?
The Custom Filter (JSON) field below covers advanced targeting — combining tags with other conditions using HighLevel's own filter syntax.
Read the filter reference ↓Custom Filter (JSON)
The Custom Filter (JSON) field targets an audience with the same condition syntax HighLevel uses internally for contact search. Most workflows only need the Tag picker — reach for this when a tag alone can't describe who should get the campaign.
Format
The field takes a JSON array of condition objects. Each condition names a field, an operator, and a value to match against:
[
{ "field": "tags", "operator": "contains_set", "value": ["vendor"] }
]
Even a single condition needs the surrounding [ ] — the field always expects an array.
Fields & operators
One combination is confirmed and supported today:
| Field | Operator | Value | Status |
|---|---|---|---|
| tags | contains_set | array of tag names | confirmed |
More fields are on the roadmap as they're validated. If you need to filter on something other than tags today, contact support before relying on it in a live campaign.
Combining conditions
Every condition in the array must match — think of the array as an AND. Two conditions means a contact needs both to qualify:
[
{ "field": "tags", "operator": "contains_set", "value": ["vendor"] },
{ "field": "tags", "operator": "contains_set", "value": ["active"] }
]
Needs a contact tagged vendor and tagged active.
Examples
One tag:
[{ "field": "tags", "operator": "contains_set", "value": ["vendor"] }]
Any one of several tags — list them together in one condition's value:
[{ "field": "tags", "operator": "contains_set", "value": ["vendor", "partner"] }]
For simple tag targeting like the two examples above, the Tags and Match Type fields do this for you — no JSON required. Reach for this field when you need to combine tags with other conditions.

