Skip to content

Chapter 11: Your First Journey ​

The Problem ​

Segments are powerful, but they're snapshots. You want something more: "When a customer signs up, send a welcome email. Wait 3 days. If they haven't made a purchase, send a reminder. If they have, send a thank-you and add them to the loyalty program."

This is a journey—a multi-step experience that unfolds over time.

The Key Idea ​

Core concept

A journey is a sequence of steps that customers move through based on time and behavior. It's marketing automation defined as code.

Instead of configuring flows in a UI, you describe the experience to AI and get a YAML file that orchestrates everything.

Creating Your First Journey ​

Describe the customer experience:

> "Create a welcome journey: send a welcome email when someone signs up, wait 3 days, then send a follow-up if they haven't purchased"

AI generates:

yaml
name: Welcome Series
description: Onboard new customers with welcome and follow-up emails

entry:
  segment: New Signups

stages:
  - name: Onboarding
    steps:
      - type: activation
        name: Send Welcome Email
        id: welcome-email
        with:
          activation: welcome-email-sendgrid
        next: wait-period

      - type: wait
        name: Wait 3 Days
        id: wait-period
        with:
          duration: 3
          unit: day
        next: check-purchase

      - type: decision_point
        name: Did They Purchase?
        id: check-purchase
        with:
          condition:
            segment: Made First Purchase
        branches:
          - match: true
            next: thank-you
          - match: false
            next: reminder

      - type: activation
        name: Send Reminder
        id: reminder
        with:
          activation: reminder-email-sendgrid
        next: end

      - type: activation
        name: Send Thank You
        id: thank-you
        with:
          activation: thankyou-email-sendgrid

Understanding the Structure ​

A journey has three main parts:

Entry ​

Who enters the journey:

yaml
entry:
  segment: New Signups

Customers enter when they join the "New Signups" segment.

Stages ​

Organizational containers for steps:

yaml
stages:
  - name: Onboarding
    steps: [...]

Stages help you organize complex journeys into logical phases.

Steps ​

The actual actions and logic:

yaml
steps:
  - type: activation
    name: Send Welcome Email

Each step does something: send a message, wait, check a condition, etc.

Step Types ​

TypeWhat It DoesExample Use
activationSend to a channelEmail, SMS, push notification
waitPause for timeWait 3 days
decision_pointBranch based on conditionDid they purchase?
ab_testSplit audienceTest two messages
endExit the journeyJourney complete

How Steps Connect ​

Steps link via next:

yaml
- type: activation
  name: Send Welcome Email
  id: welcome-email
  next: wait-period  # Go here after

- type: wait
  name: Wait 3 Days
  id: wait-period
  next: check-purchase  # Then go here

Each step has an id that other steps reference. This creates the flow.

Visualizing the Journey ​

Push the journey in draft mode to see it in the Console:

> "Push this journey as a draft"
Pushing journey: Welcome Series (draft mode)

✓ Journey created in draft state
✓ Not launched - no customers will enter

View in Console:
https://console.us01.treasuredata.com/app/journeys/12345

Click the link to see the visual flow in the UI.

Draft mode lets you verify the flow visually before launching.

Entry Conditions ​

Control who enters:

Segment-based entry:

yaml
entry:
  segment: New Signups

With additional filters:

yaml
entry:
  segment: New Signups
  filter:
    attribute: country
    operator: In
    values: ["USA", "Canada"]

Re-entry Rules ​

Can customers go through the journey multiple times?

yaml
reentry: no_reentry        # Once only
reentry: allow_reentry     # Can repeat
reentry: reentry_after_exit  # Can repeat after finishing

Goals ​

Define what success looks like:

yaml
goals:
  - name: Made Purchase
    segment: Purchasers
    exit_on_goal: true

When a customer achieves a goal, they can exit the journey early. This prevents sending a "please buy" email to someone who already bought.

Mental Model: Choose Your Own Adventure ​

Journeys are like those books where the reader makes choices:

  • Start: "You receive a welcome email. Turn to page 2."
  • Page 2: "Wait 3 days. Turn to page 3."
  • Page 3: "Did you make a purchase? If yes, turn to page 4. If no, turn to page 5."
  • Page 4: "Thank you! The end."
  • Page 5: "Here's a reminder. The end."

Each customer reads their own path through the story based on their actions.

Previewing a Journey ​

Before going live:

> "Preview the journey"
Journey: Welcome Series

Entry: New Signups segment
Currently in segment: 1,247 customers would enter

Steps:
1. Send Welcome Email → welcome-email-sendgrid
2. Wait 3 days
3. Check: Made First Purchase segment
   - If yes: Send Thank You
   - If no: Send Reminder

Estimated flow:
- ~70% expected to reach decision point
- ~25% expected to have purchased (based on historical data)

Validating and Pushing ​

Same workflow as segments:

> "Validate the journey"
✓ Journey syntax is valid
✓ All segments referenced exist
✓ All activations referenced exist
✓ No unreachable steps

Ready to push.
> "Push the journey"

Pitfalls ​

"Customers aren't entering."

Check the entry segment—it might be empty or have wrong criteria:

> "How many customers are in the New Signups segment?"

"The flow seems wrong."

Verify the next references:

> "Trace the path from welcome email to end"

"Activations aren't firing."

Check that the connection is enabled and working:

> "Show me the status of welcome-email-sendgrid activation"

What You've Learned ​

  • Journeys are multi-step customer experiences
  • Customers enter via segments
  • Steps are actions (activate), waits, or decisions
  • Steps connect via next and id references
  • Goals define success and can trigger early exit
  • Preview and validate before pushing

Next Step ​

You've built a linear journey. Chapter 12 explores advanced patterns—conditional branches, A/B tests, and complex decision trees.


You've created your first journey. Next, you'll add intelligence to the path.