Triggers
Manual, schedule, and event triggers, and how runs get started.
A Loop needs at least one trigger. You can wire more than one; each trigger node seeds its own run.
Manual
trigger.manual fires when you click Run on the editor. No payload.
Use it for one-shot work, like a Loop you fire by hand to draft personalised emails for a hand-picked list of leads.
Schedule
trigger.cron accepts a five-field cron expression. The loops-tick
Kubernetes CronJob scans every five minutes; any Loop whose cron previous
fire time fell inside the past window is dispatched.
Common cadences:
0 2 * * *: daily at 02:00 UTC0 9 * * 1: Mondays at 09:00 UTC*/15 * * * *: every fifteen minutes
Don't pick anything tighter than five minutes; the scanner can't see it.
Event
trigger.event subscribes to a CRM event. Supported event types:
lead.created: a new lead row landed.lead.statusChanged: a lead's CRM status moved.lead.assigned: assignee membership changed.deal.stageChanged: a deal moved between pipeline stages.deal.won/deal.lost: a deal closed.
To act on leads that have gone quiet, schedule a trigger.cron that runs a
data.leadSearch plus a data.filter on last-contact date, rather than waiting
on an event.
The trigger's payload becomes ctx.triggerPayload for downstream nodes.
For lead events that carries { organizationId, leadId, ... } so the next
node can pull the right row.
Manual testing
Even when a loop is wired to fire on a CRM event or a cron schedule, you can rehearse it from the editor. Click the dropdown next to the Run button and pick the trigger you want to test. For event triggers, a small lead picker appears; choose a real lead and the loop runs with that lead's id as the synthesised event payload. For cron triggers, hit "Run now" to fire the same tick the scheduler would have fired at its next interval.
You can also pick "Test with a synthetic lead" to fire a throwaway event payload for quick smoke tests.