A trigger defines when customers enroll into a campaign. Each campaign can have 0+ triggers.
There’s no UI for managing triggers yet. The backend is ready (CRUD endpoints, 4 trigger types), but the in-app interface is still being built. For now only manual triggers (fired by hand from the campaign page) are usable directly.
4 trigger types (backend)
Manual (UI ready)
Schedule (backend only)
Webhook (backend only)
Event (backend only)
A sales rep fires it by hand:
- Campaign page → Run now — enrolls the current audience
- Customer drawer → Enroll to campaign — single customer
Cron schedule. Config (via API):
- Cron expression (e.g.
0 9 * * 1 = 9am Mondays)
- Timezone
- Whether to refresh the audience before firing
A UI is being built. URL that accepts a POST from another system. Config (via API):
- Auto-generated path
- HMAC secret
- Payload mapping (JSON path to identify the customer)
A UI to configure + reveal the URL/secret is being built. Listener on the internal event bus. Config (via API):
- Event name (
deal.won, customer.tagged, …)
- Filter predicate
A UI to configure + browse the event list is being built.
Manual run
Campaign page → Run now. Fires a manual trigger; every customer in the audience enrolls immediately.
Cron syntax reference
When the schedule trigger UI ships, it will use the standard 5-field cron min hour day month weekday.
| Cron | Meaning |
|---|
0 9 * * 1 | 9am every Monday |
0 9 * * 1-5 | 9am every weekday |
0 */4 * * * | Every 4 hours |
Test cron expressions in advance via crontab.guru when the UI ships.