Trigger node
The trigger node is the entry point of every journey. It defines when and which contacts enter the flow.
Every journey has exactly one trigger node. It must be the first node in the graph. The underlying node type values are event_trigger, segment_trigger, date_trigger, and api_trigger (always lowercase snake_case).
Trigger types
Event trigger (event_trigger)
Contacts enter when they fire a specific event.
- Event name — pick from your event catalog (e.g.,
order_completed,signup_completed,cart_abandoned) - Event filters (optional) — narrow to events matching specific property values (e.g.,
amount > 1000orcategory = "electronics") - Deduplication window — prevent the same contact from re-entering within a time period (e.g., “once per 7 days”)
Best for: behavior-driven flows like cart abandonment, post-purchase, and milestone triggers.
Segment trigger (segment_trigger)
Contacts enter when they join a specific segment.
- Segment — pick from your segment library
- Entry mode — “on enter” (contact joins the segment) or “on exit” (contact leaves the segment)
Best for: lifecycle stage transitions like “became inactive”, “upgraded to pro”, or “entered VIP tier”.
Scheduled trigger (date_trigger)
Contacts enter on a recurring schedule.
- Schedule — daily, weekly, monthly, or cron expression
- Segment — which contacts to enroll on each schedule tick
- Timezone — respect each contact’s timezone or use a fixed timezone
Best for: recurring campaigns run through a journey (e.g., weekly digest with branching).
API trigger (api_trigger)
Contacts enter when your server calls the journey enrollment API.
- No UI config needed — the trigger listens for
POST /api/v1/journeys/{id}/startwith a contact ID - Payload pass-through — any JSON properties in the API call are available as variables inside the journey
Best for: server-driven flows like order fulfillment, support ticket escalation, or webhook-initiated processes.
Re-entry behavior
What happens if a contact triggers the journey while already inside it?
| Setting | Behavior |
|---|---|
| Ignore | The contact stays in their current position; the new trigger is discarded |
| Restart | The contact is removed from their current position and re-enters from the top |
| Allow multiple | The contact runs through the journey again in parallel (use carefully) |
Default is Ignore — safest for most use cases.
What’s next
- Wait node — pause after the trigger
- Journey builder — canvas overview