The Campaign Journey Builder is a visual, drag-and-drop tool for building automated guest communication sequences. Instead of creating each email or action in isolation, you design the entire guest journey on a single canvas, from the moment a guest enters the campaign through every step, branch, and outcome.
Think of it as a flowchart for your guest communications. You place steps on the canvas, connect them in order, and the system automatically processes each guest through the journey based on the logic you define.
There are four step types available in the builder:
Actions: do something to a guest by sending an email, updating their record, adding them to a segment, and more.
Decisions: ask a yes/no question about what a guest has done, for example did they open an email or submit a form.
Conditions: check what is true about a guest right now, for example are they in a segment or do they have a valid email address.
Triggers: introduce a wait or delay, for example pause for two days, wait until a specific date, or wait until a certain hour.
Enabling the builder
The Campaign Journey Builder is enabled by your system administrator at the client level. Two toggles must both be switched on.
Go to CRM Setup, then click Designer Settings, then click Client Designer Settings.
Turn on Enable New Designer. This must be switched on first.
Turn on Enable Enhanced Campaigns. This activates the Campaign Journey Builder.
📌 Note: Designer Settings are configured per client. Contact your system administrator if the Campaign Journey Builder is not visible in your account.
The Campaigns list
Go to Campaign Management Tools, then click Campaigns to open the Campaigns list.
Search and filter
Use the controls below to find campaigns in the list.
Control | What it does |
Name | Free-text search on campaign name. |
Campaign IDs | Enter one or more campaign IDs separated by commas to find specific campaigns. |
Category | Filter by category. Defaults to All Categories. |
Search | Applies filters and refreshes the list. |
+ New | Opens the campaign creation form. Only visible to users with Full access permission. |
Status icons
Icon | Status |
● | Published |
⏱ | Pending |
⏱ | Expired |
○ | Unpublished |
Row actions
Action | What it does |
Edit | Opens the campaign setup form to edit its details and access the builder. |
Clone | Creates a copy of the campaign, including its journey, with a new name. |
Delete | Permanently deletes the campaign after a confirmation prompt. |
Creating a campaign
Before entering the builder canvas, complete the campaign setup form.
Setup form fields
Field | Description | Required? |
Name | The campaign's display name. Saving is blocked without this. | Yes |
Category | Groups campaigns for organisation. Defaults to Uncategorised. | No |
Description | Free-text notes about the campaign's purpose. | No |
Allow contacts to restart | If Yes, a guest who leaves and re-enters the campaign restarts from the beginning. | Yes (Yes/No) |
Published | Set to Yes to make the campaign live immediately. If a Publish at date is set, the campaign goes live at that time instead. Defaults to No. | Yes (Yes/No) |
Publish at | Schedule a future date and time for the campaign to go live automatically. | No |
Unpublish at | Schedule a future date and time for the campaign to stop processing automatically. If no end date is set, the campaign runs indefinitely. | No |
Setup form buttons
Button | What it does |
Launch Campaign Builder | Opens the flow canvas to start building the journey. |
Save and Close | Saves the campaign details and returns to the campaign list. |
Apply | Saves and stays on the setup page. |
Cancel | Returns to the campaign list without saving. |
Campaign states
A campaign can be in one of four states, which update automatically based on the publish settings you configure.
State | What it means |
Published | Live and actively processing guest profiles through the journey. |
Pending | Scheduled to go live at a future date. Not yet processing profiles. |
Expired | The publish window has ended. No longer processing profiles. |
Unpublished | Not running. Not processing any profiles. |
⚠️ Important: Unpublishing a campaign does not remove guests from it or cancel their journeys. It pauses processing. When you re-publish, guests resume from exactly where they were. No steps are lost or repeated.
Profile sources: who enters the campaign
When you first open the builder, you choose where the campaign's audience comes from. These are called starting points. You can have up to three, one of each type.
Starting point type | What it does |
Profile Segments | Guests who are members of selected segments are automatically added to the campaign. |
Profile Forms | Guests created from submissions to selected forms are automatically added. |
Profile Reward Segments | Guests who are members of selected reward segments are automatically added. |
Key rules for starting points
You can add up to three starting points, one of each type, per campaign.
Within each starting point, you can select multiple segments, forms, or reward segments.
All starting points feed into a single shared journey. There is no separate path per source.
Profile Segments, Profile Forms, and Profile Reward Segments can each only be added once per campaign. Once a type has been added, it will no longer appear in the starting point picker.
A guest qualifying from more than one starting point is still a single member on a single journey. They will not travel the journey twice or receive duplicate communications.
The canvas
The canvas is the working area where you build the journey. You drag steps from the panel on the right onto the canvas and connect them in sequence. The canvas supports zoom and pan.
Adding steps to the canvas
There are two ways to add a step.
Click the + button on the canvas to open a picker showing available steps. Steps that are invalid for the current position are greyed out and cannot be selected.
Drag and drop from the right-hand panel directly onto the + button. If the step is invalid for that position, the drop is blocked.
🤓 Tip: Greyed-out steps and blocked drag-drops are the builder guiding you toward a valid journey structure. Review the Placement rules section to understand which step is needed before it.
Canvas controls
Two toggle controls sit at the top centre of the canvas toolbar. Both are session-only and reset to their defaults each time you open the builder.
Control | What it does | Default |
Panel side toggle | Moves the Actions/Decisions/Conditions/Triggers panel between the right and left side of the canvas. | Panel on right |
Light/Dark mode toggle | Switches the canvas between light (white) and dark backgrounds. | Light mode |
Building a journey: step types
Each step type serves a different purpose. Use the sections below to understand what each one does and how to configure it.
Actions
Actions do something to a guest profile: send a communication, update their record, or move them between campaigns and segments.
Action | What it does | Key settings |
Send Email | Sends a selected email to the guest. | Email to send (required), Email type (Transactional / Marketing). Marketing emails also have Priority and Attempts settings. |
Send Email to User | Sends a notification email to a team member, not the guest. | User(s) to send to, To/CC/BCC addresses, email to send. |
Send Reward Email | Sends the reward email assigned to the applicable reward rule. The template is resolved automatically from the reward rule and the guest's language. | No email selector. |
Modify Profile's Segments | Adds or removes the guest from selected segments or reward segments. | Add to / Remove from (multi-select). |
Modify Profile's Tags | Adds or removes tags on the guest's profile. New tags can be created inline. | Add tags / Remove tags. |
Change Campaigns | Adds or removes the guest from other campaigns. | Add profile to / Remove profile from (multi-select campaigns). |
Update Profile | Updates the guest's marketing consent, active status, or member level. | Marketing Consent Email, Marketing Consent SMS (No Change / Explicit / Implied), Deactivate, Member Level. |
Push Profile to Integration | Pushes the guest's profile to a configured integration. | Integration (required). |
Send a Webhook | Sends a webhook to a specified URL. | Webhook URL (required). |
Delete Profile | Permanently deletes the guest's profile. This is always the final step and nothing can follow it. | Name only. |
Decisions
Decisions ask a yes/no question about what a guest has done. The journey splits into a Yes path and a No path based on the answer.
Path | Meaning |
Yes branch | The guest matched the decision, for example they opened the email. The journey continues down the green path. |
No branch | The guest did not match. The journey continues down the red path. |
Decision | What it checks | Settings |
Opens Email | Did the guest open an email? | Name only. |
Clicks Email | Did the guest click a link in an email? | Name, plus an optional list of URL text values to limit the check to specific links. |
Replies to Email | Did the guest reply to an email? | Name only. |
Submits Form | Did the guest submit a specific form? | Name, plus optional limit to specific forms. |
Visits a Page | Did the guest visit a specific page? | Name, limit to pages, URL (wildcard supported), referrer (wildcard supported). |
Device Visit | Did the guest visit using a specific device type? | Name, device type, device brand, device OS (all optional). |
⚠️ Important: Decisions cannot be nested inside another decision's Yes or No branch. Opens Email and Clicks Email can only be placed after a Send Email or Send Reward Email step, not after Send Email to User. On the No branch of any decision, a Trigger must be placed before any Action can be added.
Conditions
Conditions evaluate something about the guest's current state and branch Yes/No based on whether it matches. Unlike Decisions, which check what a guest did, Conditions check what is true about a guest right now.
Condition | What it evaluates | Settings |
Profile Field Value | Whether a profile field matches a specified value. | Field (required), Operator (driven by field type), Value. |
Profile Segments | Whether the guest is a member of selected segments. | Segments and/or reward segments (multi-select). |
Profile Campaigns | Whether the guest is a member of selected campaigns. | Campaigns (multi-select), optional date added filter. |
Profile Tags | Whether the guest has specific tags. | Tags (multi-select; new tags can be created inline). |
Has Valid Email Address | Whether the guest has a valid email address on their profile. | Name only. |
Form Field Value | Whether a submitted form field matches a specified value. | Form (required), Field (required), Operator, Value. |
Deferred conditions
The following conditions are only available when placed after a Decision or after another Condition. They appear greyed out in the picker when the current position does not qualify. Rather than evaluating just once, the system keeps re-checking until the condition is met, or a timeout sends the guest down the No path.
Condition | What it evaluates |
Join Loyalty Programme | Whether the guest joined the loyalty programme within the evaluation window. |
Reservation Created | Whether the guest has an active reservation created within the evaluation window (excludes cancelled and no-show statuses). |
Reservation Cancelled | Whether the guest has a reservation that was cancelled within the evaluation window. |
Reward Has Been Used | Whether an issued reward has been used by the guest. |
Triggers and timing
Triggers introduce a wait or delay before the next step runs. Place a trigger between steps to control timing.
Trigger type | What it does | Settings |
Execute at a Relative Time Period | Waits a set interval before continuing (for example, wait two days). | Interval: number plus unit (minutes, hours, days, months, years). Schedule at a specific hour, or between a start and end hour. Days of week: restrict to specific days (a Weekdays shortcut sets Mon–Fri). |
Execute at a Specific Date/Time | Waits until a specific date and time before continuing. If the date has already passed, the step executes immediately. | Date/time picker only. |
There are three timing modes available.
Immediate: the step runs as soon as the previous step completes. No trigger is required. Not permitted on the No branch of a decision.
Interval: waits the configured duration. Hour and day-of-week restrictions are applied after the interval. Execution time is adjusted for the guest's local timezone.
Date: waits until the exact configured date and time. If the date is already past, the step executes immediately. Guest timezone adjustment does not apply.
Placement rules
The builder prevents you from putting a step in a position that would create an invalid journey. Steps that cannot be placed in a given position will be greyed out or hidden in the panel.
Rule | Detail |
No nested decisions | Decisions cannot be placed inside another decision's Yes or No branch. |
Email decisions require an email step first | Opens Email and Clicks Email can only follow a Send Email or Send Reward Email step, not Send Email to User. |
No-branch trigger requirement | On the No branch of any decision, a Trigger must be placed before any Action can be added. This gives the guest a reasonable window to act before the journey moves on. A Trigger of even one hour satisfies this requirement. |
Delete Profile is always the last step | No steps can be placed after a Delete Profile action. |
Triggers cannot chain | A Trigger cannot follow another Trigger, connect into a Decision, or target another Trigger. |
Deferred conditions are context-restricted | Join Loyalty Programme, Reservation Created, Reservation Cancelled, and Reward Has Been Used can only be placed after a Decision or after another Condition. |
Send Reward Email restriction | Send Reward Email is not available in the Yes branch of a Profile Campaigns condition. |
Editing and deleting steps
Every step on the canvas has a ⋮ menu (three-dot menu) in its top-right corner.
Editing a step
There are two ways to open the settings for any step.
Click the step directly on the canvas (click the icon or text area).
Use the ⋮ menu, then click Edit.
📌 Note: If a step still needs configuration, it shows a red pencil badge. Clicking the badge also opens the settings window directly.
Deleting a step
Use the ⋮ menu, then click Delete. What happens next depends on the step type.
Step type | What happens on delete |
Regular step (Action, Trigger, etc.) | A confirmation prompt appears. On confirm, the step is removed and the journey reconnects around it automatically. |
Decision or Condition (with two live branches) | You are asked to choose: Keep the Yes path, Keep the No path, or Delete both paths. Steps on the unchosen branch are removed. |
Starting point | Deleted directly with no confirmation prompt. The canvas re-lays out the remaining starting points automatically. |
⚠️ Warning: Choosing Delete both paths when removing a decision or condition will permanently remove all steps on both branches. This cannot be undone. Review both branches carefully before confirming.
Profile exits
Every branch in the builder ends with a Profile exits marker. This is added automatically and you do not create or configure it. It marks the end of that branch of the journey.
On any exit marker, you can choose Move to another path to convert it into a jump point that routes the guest to another step in the journey rather than ending there.
How a guest leaves a campaign
Reaching the end of the journey does not remove a guest from the campaign. A guest who completes all steps has no more steps to run — they remain an inactive member of the campaign until one of the following removal conditions is met:
They no longer qualify from any starting point. They have been removed from all connected segments, forms, and reward segments.
A Change Campaigns action explicitly removes them from the campaign.
A Delete Profile action runs on them. The guest's profile is permanently deleted.
Saving and publishing
You can save a campaign at any time, even if some steps still need configuration. Incomplete steps are flagged visually but do not block saving.
Saving
Click Apply to save and stay on the page, or click Save and Close to save and return to the list.
Publishing
A campaign only processes guests when it is Published. There are two ways to publish.
Set Published to Yes on the setup form. The campaign goes live immediately, or at the scheduled Publish at date if one is set.
Use the publish toggle icon on the campaign list to flip a campaign live or offline instantly.
⚠️ Important: Steps with a red pencil badge (incomplete configuration) do not prevent publishing. However, guests who reach an incomplete step may not be processed correctly. Complete all step settings before publishing.
Editing a live campaign
You can edit a published campaign at any time. Guests already in the journey continue processing based on the steps as they were when those guests entered. Changes you make take effect for guests who reach that step after the change is saved.
Validation reference
The table below shows what blocks saving and what does not.
What blocks saving
Scenario | Error message |
No campaign name entered | 'Name is required' |
No steps placed on the canvas | 'Campaign must have at least one event' |
No starting point selected (new campaigns only) | 'Campaign must have at least one profile source' |
What does not block saving
Incomplete step settings do not block saving. Steps with missing configuration are flagged with a red pencil badge, but the campaign can still be saved and the incomplete step completed at any time.
Inline validation in step settings windows
When configuring a step, clicking Save changes without completing required fields will show inline 'A value is required' messages under each missing field. The settings window will not close until all required fields are completed.
Decisions vs. conditions
Decisions check what a guest did: did they open an email, submit a form, or visit a page? Conditions check what is true about a guest right now: are they in a specific segment, do they have a valid email address, is their loyalty tier set to a particular value? Use a Decision to branch on guest behaviour and a Condition to branch on guest attributes.
