Building Journey Automations
This guide walks you through designing and deploying multi-step, multi-channel customer journeys in SignalSmith. By the end, you’ll have a working automated journey that moves customers through a sequence of actions based on their behavior, with branching logic and exit criteria.
When to Use Journeys
Journeys are the right approach when you need to:
- Automate a sequence of messages across channels (email, SMS, push) based on timing and conditions
- Branch customers into different paths based on their attributes or behavior
- Orchestrate multi-day workflows like onboarding sequences, re-engagement campaigns, or renewal reminders
- Trigger actions based on audience membership changes, not just one-time syncs
If you need a simple one-time push of audience data to a destination, use an audience sync instead. Journeys are for multi-step, time-based workflows.
Prerequisites
- A SignalSmith workspace with at least one connected destination that supports messaging (e.g., Braze, SendGrid, Twilio)
- At least one audience to serve as the journey entry point
- Admin or Editor role in your SignalSmith workspace
- Message templates configured in your destination platform (e.g., email templates in SendGrid)
Design Your Flow
Before building in SignalSmith, sketch out the customer experience you want to create. Here are two common patterns:
Welcome Series
Entry: New signup audience
→ Wait 1 hour
→ Send welcome email
→ Wait 3 days
→ Branch: Has completed onboarding?
→ Yes: Send tips & tricks email → Exit
→ No: Send reminder email
→ Wait 2 days
→ Branch: Has completed onboarding?
→ Yes: Exit
→ No: Send final nudge email → ExitRe-Engagement Campaign
Entry: Inactive 30+ days audience
→ Send "We miss you" email with discount code
→ Wait 5 days
→ Branch: Made a purchase?
→ Yes: Send thank-you email → Exit
→ No: Send push notification
→ Wait 3 days
→ Branch: Made a purchase?
→ Yes: Send thank-you email → Exit
→ No: Send final offer email → ExitStep 1: Create the Entry Audience
The entry audience defines who enters the journey. Customers enter when they first qualify for the audience, and each customer enters only once (unless you enable re-entry).
- Navigate to Segment > Audiences
- Click Create Audience
- Define conditions that capture customers at the right moment:
For a Welcome Series:
Entity Type: User
WHERE created_at >= DATEADD(day, -1, CURRENT_DATE)For Re-Engagement:
Entity Type: User
WHERE
days_since_last_activity > 30
AND total_orders >= 1
AND unsubscribed = false- Name the audience descriptively (e.g., “Journey Entry: New Signups - Last 24h”)
- Click Save
Tip: Use narrow time windows for entry audiences (e.g., last 24 hours) to ensure customers enter at the right time. If your audience captures “all users who signed up in the last year,” everyone qualifies immediately and enters the journey at once.
Step 2: Build the Journey Canvas
- Navigate to Journeys in the left sidebar
- Click Create Journey
- Name it descriptively (e.g., “Welcome Series Q1 2025”)
- Select the entry audience from Step 1
- Configure entry settings:
- Entry frequency — Once (customers enter the journey only once) or Recurring (customers can re-enter after a cooldown period)
- Schedule — How often the journey checks for new qualifying members (e.g., every hour, daily)
- The canvas opens with the Entry tile already placed
Step 3: Add Wait Steps and Branches
Build out your journey by dragging tiles onto the canvas and connecting them.
Wait Tiles
Wait tiles pause the customer in the journey for a specified duration before moving them to the next step.
- Drag a Wait tile onto the canvas
- Connect it to the previous tile
- Set the duration:
- Fixed duration — Wait a specific amount of time (e.g., 1 hour, 3 days)
- Until a specific time — Wait until a day/time (e.g., next Tuesday at 9 AM in the user’s timezone)
Timing best practices:
- For welcome sequences, start with a short wait (1 hour) before the first message
- Space subsequent messages 2-5 days apart to avoid overwhelming the customer
- Consider timezone-aware scheduling to deliver messages at appropriate local times
Branch Tiles
Branch tiles split the flow based on conditions, sending customers down different paths.
- Drag a Branch tile onto the canvas
- Connect it to the previous tile
- Choose the branch type:
| Branch Type | How It Works | Use Case |
|---|---|---|
| Trait condition | Evaluate a trait or attribute value (e.g., onboarding_completed = true) | Split by customer behavior or status |
| Event-based | Check if the customer performed an event since entering the journey | React to actions taken during the journey |
| Percentage split | Randomly assign a percentage to each branch | A/B testing message variants |
| Time-based | Check if a condition is met within a time window, with a fallback branch | ”Did they convert within 7 days?” |
- Define the condition and connect each branch to the next tile
Example: Onboarding Check
- Branch condition:
onboarding_completed = true - Yes branch → Tips email → Exit
- No branch → Reminder email → Wait 2 days → Another check
Step 4: Configure Destination Actions
Action tiles send messages or trigger actions in your connected destinations.
- Drag an Action tile onto the canvas
- Connect it to the previous tile
- Configure the action:
- Select destination — Choose from your configured messaging destinations (e.g., SendGrid, Braze, Twilio)
- Select action type — Send Email, Send SMS, Send Push Notification, or Custom API call
- Select template — Choose a pre-built template from your destination platform
- Map dynamic fields — Insert personalization variables from SignalSmith traits and attributes:
| Template Variable | SignalSmith Field | Example Output |
|---|---|---|
{{first_name}} | first_name | ”Jane” |
{{company}} | company_name | ”Acme Corp” |
{{discount_code}} | discount_code trait | ”WELCOME20” |
{{days_inactive}} | days_since_last_activity trait | ”45” |
- Click Save on the action tile
Multi-Channel Actions
Journeys can mix channels within the same flow:
Wait 1 day → Send Email (welcome)
Wait 3 days → Send Push Notification (feature highlight)
Wait 5 days → Send SMS (special offer)Each action tile can target a different destination, enabling true multi-channel orchestration.
Step 5: Define Exit Criteria
Exit criteria define when customers leave the journey early, before completing all steps. This prevents sending irrelevant messages to customers who’ve already converted or opted out.
- In the journey settings panel, click Exit Criteria
- Add exit conditions:
| Exit Condition | Description | Example |
|---|---|---|
| Goal reached | Customer achieves the journey’s objective | Completed onboarding, made a purchase |
| Audience exit | Customer no longer qualifies for the entry audience | Unsubscribed, account deactivated |
| Timeout | Customer has been in the journey for too long | 30 days maximum journey duration |
| Event trigger | Customer performs a specific action | Contacted support, filed a complaint |
| Manual removal | An operator removes the customer from the journey | Account flagged for review |
- For goal-based exits, define the goal condition:
- Trait condition:
onboarding_completed = trueortotal_orders >= 1 - Event-based: Customer triggers an “Order Completed” event
- Trait condition:
When a customer exits early, they skip all remaining tiles and are logged as “exited early” in the journey analytics.
Step 6: Activate and Monitor
Validation
Before activating, validate the journey to catch configuration issues:
- Click Validate in the journey toolbar
- The validator checks for:
- Missing connections — Tiles that aren’t connected to the flow
- Missing configurations — Action tiles without a destination or template selected
- Dead ends — Branches that don’t terminate in an Exit tile
- Circular paths — Loops in the flow that would trap customers
- Fix any reported issues
Activation
- Click Activate
- Review the journey summary:
- Entry audience and estimated entry volume
- Number of steps and branches
- Destinations that will receive actions
- Exit criteria
- Confirm activation
The journey immediately begins checking for qualifying customers based on the configured schedule. New members of the entry audience will start the journey.
Monitoring
Once active, monitor the journey’s performance:
- Navigate to the journey’s detail page
- Review the canvas with live statistics overlaid on each tile:
| Metric | Description |
|---|---|
| Active in step | Number of customers currently at this tile |
| Passed through | Total customers who have completed this tile |
| Exited here | Customers who left the journey at this point |
| Branch distribution | Percentage of customers taking each branch |
- Review aggregate journey metrics:
| Metric | Description |
|---|---|
| Total entered | Total customers who have entered the journey |
| Currently active | Customers currently progressing through the journey |
| Completed | Customers who reached an Exit tile |
| Exited early | Customers who met an exit criterion before completing |
| Conversion rate | Percentage of entrants who reached the goal |
| Average duration | Average time from entry to completion or exit |
Step 7: Iterate Based on Analytics
Use the journey analytics to identify optimization opportunities:
Low Branch Conversion
If most customers take the “No” branch at a condition check, consider:
- Adjusting the wait time before the check (give customers more time to act)
- Improving the preceding action (better email subject line, different offer)
- Broadening the condition (e.g., check for partial completion, not full completion)
High Exit Rate at a Specific Step
If many customers exit early at a particular tile:
- The message may be causing unsubscribes — review the content
- The timing may be wrong — adjust the preceding wait step
- The audience criteria may be too broad — tighten the entry audience
A/B Testing with Percentage Splits
Use percentage split branches to test variations:
Branch (50/50 split)
→ Path A: Email with discount code
→ Path B: Email without discount code
→ Both paths: Wait 3 days → Check purchaseCompare conversion rates between paths to determine which approach performs better.
Pausing and Editing
To make changes to an active journey:
- Click Pause to stop processing new entries and advancing active customers
- Make your changes to the canvas
- Click Resume to reactivate
Customers who were mid-journey when paused will continue from where they left off.
Other Journey Patterns
Post-Purchase Follow-Up
Entry: "Recent Purchasers" audience
→ Wait 1 day → Send order confirmation + recommendations email
→ Wait 7 days → Send "How's your product?" email
→ Wait 14 days → Branch: Left a review?
→ Yes: Send thank-you with loyalty reward → Exit
→ No: Send review request email → ExitRenewal Reminder Series
Entry: "Subscription Expiring in 30 Days" audience
→ Send 30-day reminder email
→ Wait 23 days → Branch: Has renewed?
→ Yes: Send confirmation → Exit
→ No: Send 7-day urgent reminder
→ Wait 6 days → Branch: Has renewed?
→ Yes: Exit
→ No: Send final day email + SMS → ExitEvent-Driven Upsell
Entry: "Free Plan Users" audience
→ Wait until: User triggers "Feature Limit Reached" event
→ Send upgrade suggestion email with trial offer
→ Wait 3 days → Branch: Started trial?
→ Yes: Wait 12 days → Send trial ending reminder → Exit
→ No: Send case study email → ExitTroubleshooting
| Issue | Cause | Resolution |
|---|---|---|
| No customers entering | Entry audience is empty or schedule hasn’t run | Check the audience has members; verify the journey schedule |
| Customers stuck at an action | Destination API error | Check the action tile’s error log; verify destination connection |
| All customers taking one branch | Branch condition is too strict or too lenient | Review the trait values for customers in the journey; adjust the condition |
| Journey not processing | Journey is paused or disabled | Check the journey status in the header bar |
Next Steps
- Journeys documentation — Full reference for journey tiles and configuration
- Audiences — Building audiences for journey entry
- Events — Using events as journey triggers and branch conditions
- Destinations — Configuring messaging destinations
- Sync CRM Audiences — For simpler, non-journey audience activation