Triggers
Choose what enrolls a contact into a journey, from an event or an email activity to a call from your own system or a date.
A trigger is the first step of a journey. It decides who enters and when: each time the trigger fires for a contact, that contact is enrolled and starts walking the steps after it.
Drag a trigger from the Trigger group of the palette onto the canvas. There are three kinds:
| Trigger | Starts the journey when | Typical use |
|---|---|---|
| Event received | Something happens to a contact: an event from your product, or an activity in Mailcrate such as a click or a reply. | Welcome series, follow-ups, re-engagement. |
| Webhook | Your own system, or a tool such as Zapier, calls the journey's URL. | Enrolling contacts from a system that can only send a web request. |
| Date reached | A date stored on the contact comes around. | Birthdays, renewals, trial expiry. |
A journey can have up to five triggers, in any mix. Contacts enter at whichever one fires.
Triggers only enroll contacts while the journey is published and live. Events that happen while a journey is a draft or paused do not enroll anyone later, with one exception: Enroll past contacts.
Event received
Pick the Event in the trigger's panel. The list has two kinds of event:
- Your custom events, the ones your product sends to Mailcrate, such as
order_placed. See Contact Events. You can type the name of an event that hasn't been received yet. - Mailcrate's own events, listed in plain language:
| Group | Events |
|---|---|
| Contact | A contact is created · A contact's properties change · A contact unsubscribes |
| A contact opens an email · A contact clicks a link in an email · An email is delivered to a contact · An email to a contact bounces · A contact replies to an email · A contact marks an email as spam | |
| Compliance | An email address is suppressed · A suppression is lifted · A contact opts out of a subscription group · A contact re-subscribes to a subscription group |
| Segments | A contact enters a segment · A contact leaves a segment |
Narrow it down with filters
Once you have chosen an event, the Filters below it narrow which occurrences count. Which filters you get depends on the event:
| Event | Filters |
|---|---|
| A custom event | Payload filters: compare any property the event carries, such as plan equals pro or total greater than 100. |
| Email events (opens, clicks, deliveries, bounces, spam reports) | Email, Campaign and Subject contains, to react to one email instead of all of them. |
| A contact replies to an email | The same Email, Campaign and Subject contains filters. They match the email being replied to, so they only catch replies that the recipient's email client linked to your email. |
| A contact's properties change | Property, to fire only when that property changes. |
| Segment events | Segment. |
| Subscription group events | Group. |
| Suppression events | Reason: hard bounce, repeated soft bounces or spam complaint. |
Every event trigger also has Only enroll contacts in segment: when the event fires, the contact is checked against the segment and skipped if they aren't in it at that moment.
Contacts from a CSV import
A contact is created fires for imported contacts only when Trigger automations for new contacts is turned on for that import, and only for rows that create a new contact. See Import & Export.
Webhook
A webhook trigger gives the journey its own URL. Anything that can send a web request can enroll a contact by calling it with the contact's email address (or external identifier), plus any details you want to pass along.
Select the trigger to see its Webhook URL and an Example request to copy. The URL appears a moment after you drop the trigger on the canvas, once the draft has saved.
- Unknown contacts are created when the call includes an email address that isn't in your workspace yet.
- Details you send are saved on the contact. Simple values in the call's
propertiesare written to the contact's properties before the first step runs, and every value is also available to the journey's emails as{{ trigger.* }}variables. - Last received shows the details from the most recent call, so you can see exactly which variables you can use.
Keep the URL secret
Anyone who has the URL can enroll contacts into the journey. Share it only with the system that needs it.
Triggering Journeys explains the request for developers, including what happens to the data it sends. The full request format is in the Trigger a journey by webhook API reference.
Date reached
A date trigger enrolls contacts around a date stored in one of their properties, such as birthday or renewal_date.
| Setting | What it does |
|---|---|
| Date property | The contact property that holds the date, written as yyyy-MM-dd. Only date properties are listed until you choose Show all properties. |
| When | On the date, or a number of days before or after it (up to 365). |
| Repeats | Once, or Yearly for anniversaries such as birthdays. |
| Time and Timezone | The time of day contacts are enrolled, in the timezone you choose. Enrollment happens within the hour after that time. |
A yearly trigger can only enroll the same contact again if Allow re-enrollment is on in the journey settings. Contacts whose property is empty, or isn't a valid yyyy-MM-dd date, are never enrolled. See Custom Properties for setting up a date property.
Who can enter, and how often
Open Journey settings from the journey's More actions menu to control enrollment for the whole journey:
- Allow re-enrollment. Off by default, so each contact goes through the journey once. When it is on, a contact can enter again when a trigger fires again, but only after their previous run has ended. A contact is never in the same journey twice at the same time.
- Active-contact limit. The most contacts that can be in the journey at once. New enrollments are skipped while the journey is at the limit. Leave it empty for no limit.
- Exit contacts who unsubscribe, and Exit contacts who leave a segment, take contacts out of the journey as soon as that happens.
Enroll past contacts
A journey only reacts to events that happen while it is live. To include people who did the trigger event before you published, open More actions and choose Enroll past contacts…. Pick how far back to look (the last 7, 30 or 90 days), and everyone who received the trigger's custom event in that period is enrolled. Contacts already in the journey are skipped, so running it twice does no harm.
This option is available for live journeys whose triggers are custom events.
Developers
Your developers can also enroll a contact directly, without a trigger, and take them out again. See Triggering Journeys and the Journeys API reference.