Message Campaigns
Scheduled broadcasts to segments defined by AND/OR condition trees.
Plan requirement: Pro or Agency. Bulk WhatsApp messaging — which is what a
campaign does — is sold as a Pro and Agency plan feature. As of the current 0.x
line the product does not technically block a Starter agency from running campaigns,
but it remains a plan term under section 5.1 of the
Terms of Service and we may enforce it. See
Billing.
A campaign sends a template to an audience on a schedule. Audiences are defined by condition trees, the same format used by compensation tiers.
Audience condition trees #
Build nested AND/OR groups of conditions over fields like platform, status,
tags, stat values, and delta fields. Operators include =, !=, >=,
>, <=, <, in, not_in, contains, not_contains, is_null,
is_not_null.
Delta fields (diamonds_delta, etc.) compare the two most recent stat periods,
so you can target "hosts who are improving" or "hosts who dropped off".
Seeing the audience before you send #
You never have to guess how many people a condition tree matches. As you build it, a Who this sends to line under the builder updates live — "42 of 310 contacts match", with the first few names listed, or "No contacts match — nothing would be sent" when the tree is too narrow.
The same count and preview appear in two more places: on the campaign's view page, and inside the Run Now confirmation, so the last thing you read before sending is who is about to receive it.
If your access is scoped to a sub-agency, the count stays agency-wide and truthful while names outside your access are withheld, and the preview tells you how many were held back.
Scheduling #
A campaign has one of three schedules:
- Manual only — never sends on its own; you press Run Now.
- Recurring — a repeating schedule, evaluated every minute so a due campaign fires on time.
- One-time — a single send-at date and time.
Each firing is recorded as a run with matched, sent, and failed counts.
A campaign you create starts inactive and set to Manual only. You have to review the audience and turn it on deliberately, which is what stops a half-configured broadcast from going out to your whole roster the first time the scheduler ticks.
Previewing the message #
A template can be rendered against a specific host before you use it, so you see the real message rather than the placeholders. The preview flags two things separately:
- Unknown variables — placeholders that don't correspond to anything, which are sent to the host exactly as typed.
- Variables with no value for this host — real placeholders that would render empty for the person you picked.
Default campaigns #
Each new agency is seeded with four starter campaigns. All four arrive inactive — review the audience and the wording, then switch one on:
| Campaign | Schedule | Audience |
|---|---|---|
| Weekly Green | Mondays 09:00 | diamonds ≥ 5,000 AND live ≥ 600 min AND improving |
| Weekly Blue | Mondays 09:00 | diamonds 1,000–4,999 |
| Weekly Red | Mondays 09:00 | diamonds < 1,000 OR valid days < 5 |
| Monthly Close | 1st of month 09:00 | all TikTok hosts |