Actions
An action is a step in a journey that does something for a contact — sends them a message, tells your team about them, changes something about their record, or moves them somewhere else in your systems. Actions make up the bulk of most journeys: after a trigger starts things off, actions are usually what the journey is actually there to do.
The action types
- Send message — sends an email or text to the contact. You write (or ask the assistant to draft) the content, choose the channel, and for email, which subscription list it's sent under so recipients can unsubscribe from it.
- Notify team — sends an internal notification to people on your team, by email or in-app, rather than to the contact. Once you've connected Slack or Microsoft Teams, it can also post to a channel there. Useful for flagging a contact to a teammate — for example, when someone meets criteria that calls for a personal follow-up. Email notifications arrive with a subject starting "Notification -", so they are easy to spot and filter, and they include a link straight to the contact's record so whoever gets one can open the contact without searching for them.
- Update contact — changes one or more fields on the contact's record, such as setting a value, clearing a field, or adjusting it based on what it currently holds. Clear empties a field; on a yes/no field such as Do not contact email it switches it off (its default). Status can't be cleared — set it instead.
- Membership — adds the contact to a segment or removes them from one. Use this to move contacts between audiences as they progress through a journey.
- Apply Tag — applies a tag to the contact, or removes one. Tags are a lightweight way to label contacts, and applying one here can also be used elsewhere to trigger other journeys.
- Webhook — sends a request to an external web address outside the product, with a method, headers, and body you configure. This is for technical users only — it's meant for connecting custom systems, so ask your dev team if a journey needs one.
- Enroll in journey — enrolls the contact in a different journey, letting you chain one automation into another instead of duplicating steps. It never sends the contact back into a journey earlier in the same chain, a chain of journeys enrolling one another stops after three hops, and the target journey's re-entry limits apply — see Re-entry limits and self-triggering.
What Update contact writes
- Values are stored as the field's kind of value. A number field gets a number, a date field a date, a yes / no field true or false, and a choice field only one of its options — so later conditions and segments compare them correctly. A yes / no field is a True / False choice in the step, and starts on False. Do not contact and its email and SMS versions are the exception: they start on — choose —, and the journey won't publish until you pick True or False, so no one is opted back in by accident.
- You pick values the same way as in a condition. The step uses the same value controls as an If / Else condition: Country is a list of countries (the contact stores the two-letter country code, such as GB), Owner is a list of your workspace's users by name (the contact stores that user, so a later "Owner =" condition matches), Timezone suggests time zones as you type, and a choice field lists its options. The Owner list takes the row's whole width, below the field and Set, so the name has room.
- A saved value the field no longer offers is shown as it was saved. If a choice field's option was removed, or a step holds a status, country or value the field doesn't offer (a country written out as a name, say), the step shows that value rather than an empty choice, and publishing names it if it can't be stored, so you can pick a valid one.
- Publishing checks the values first — on built-in and custom fields alike. A value that doesn't fit its field ("abc" for a number field, a date that isn't one, a country it can't recognise, a choice that isn't one of the field's options), a field that doesn't exist, or "increase" on a field that isn't a number stops the journey from publishing, with the step and the reason named. If a value still can't be stored when the step runs — say a choice field's option was removed after you published — the step skips that one field for that contact and records why, rather than storing something wrong. The step's other fields are still updated and the contact carries on through the journey.
- Phone numbers are tidied the same way as when you edit a contact. A number without a "+" is read as a US number first, then as a country code and number, then in the contact's own country — so "07911 123456" on a UK contact becomes +44 7911 123456. Mobile numbers are stored in full international form (that's what texts are sent to); work and home numbers are kept as typed when they fit. A value that isn't a phone number is skipped for that contact (and recorded) — and because that can depend on the contact's country, publishing only warns about it. This applies to the built-in mobile, work and home phone fields; a custom phone field is stored as typed.
- Email isn't offered. A contact's email address is how they're identified (form submissions and duplicate checks match on it), so a journey can't change it, and a journey that tries won't publish. Status can be set to Active or Archived (nothing else) but not cleared, so the step offers only Set for it, with those two values.
- CRM reference fields can't be changed by a journey — they're filled in from your CRM, so they're not offered in the step, and a journey that sets or clears one won't publish.
- If a custom field is deleted after a journey is published, the step keeps writing the value as given, and the change is logged.
When a journey is linked to a campaign, the emails sent by its send message actions carry that campaign's tracking parameters on outgoing links, the same as an email sent directly from the campaign, and those sends count toward the campaign's metrics. If the campaign doesn't have a tracking name set, the email still sends — its links just go out without those parameters. Text messages sent from the same action are not affected, since text links use their own short-link tracking instead.
Once a journey linked to a campaign has scheduled or sent an email, that campaign's tracking name can no longer be changed — it's already built into the links that went out, so the field becomes read-only.
Steps
- On the journey canvas, open the step palette along the side and switch to the Actions category.
- Drag the action you want onto the canvas, or click it to drop it in.
- Draw a line from the previous step to the new action to connect it into the flow, in the order you want it to happen.
- Click the action to open its settings panel, and fill in the details specific to that action — the message content and channel for a send, the field and new value for an update, the tag for an apply-tag step, and so on.
- Continue connecting further steps after the action if the journey keeps going.
- Your changes save automatically. Publish the journey when you're ready for the action to run for real contacts.
Tips
- You can chain multiple actions in a row — for example, send a message and then apply a tag marking that the contact received it.
- Ask the AI assistant to draft message content for a "send message" action if you'd rather describe what you want in plain language than write it from scratch.
- If you're not sure whether a change belongs in an "update contact" step or a "membership" step, remember that update contact changes a field value, while membership moves the contact in or out of a segment.
FAQ
Q: Can I set up a webhook action myself? A: The Webhook action is intended for technical users connecting to external systems, so it's best to ask your dev team to set it up or review it with you rather than configuring it on your own.
Q: What happens if a send action fails, like a bad email address? A: You can choose how the step handles an error — either it retries automatically, or it follows a separate error path you connect on the canvas, so you can route the contact somewhere sensible instead of the journey silently failing for them.
Q: Why is a send message step waiting instead of sending? A: Every send is checked first, and some checks say "not yet": quiet hours, a frequency cap the contact has reached, or a subscription they haven't confirmed. The step waits and checks again when the hold ends. A hold lasts at most 8 days (1 day if the checks themselves can't be run), though the first hold is always waited out in full (up to 31 days), and a re-check that comes more than an hour late because the journey was paused doesn't count its lateness; after that the step takes its error path, or the run stops so you can retry it. See A step held too long.