Skip to main content

Sequences (Automations)

Sequences are automated email workflows that send the right message at the right time based on subscriber actions, tags, or events. They’re the heart of marketing automation in Sequenzy.

What Are Sequences?

A sequence is a series of connected steps that execute automatically:
┌─────────────────┐
│    TRIGGER      │  ← Starts the sequence
│ (Tag or Event)  │
└────────┬────────┘


┌─────────────────┐
│     ACTION      │  ← Does something
│  (Send Email)   │
└────────┬────────┘


┌─────────────────┐
│     LOGIC       │  ← Controls flow
│ (Wait 3 days)   │
└────────┬────────┘


┌─────────────────┐
│     ACTION      │
│ (Send Email #2) │
└─────────────────┘

Sequence Components

Triggers

Triggers define when a sequence starts. Each sequence has exactly one trigger.
Trigger TypeDescriptionUse Case
contact_addedSubscriber added to listWelcome sequence
tag_addedTag applied to subscriberCustomer onboarding
event_receivedEvent triggered via APIPost-purchase flow

Actions

Actions perform operations on the subscriber.
Action TypeDescription
Send EmailSend an email from your templates
Add TagApply a tag to the subscriber
Remove TagRemove a tag from the subscriber
WebhookCall an external URL with subscriber data

Logic Nodes

Logic nodes control the flow of the sequence.
Logic TypeDescription
DelayWait for a specified time (minutes, hours, days)
ConditionBranch based on a single condition
BranchMulti-path branching (if/else if/else)
Wait for EventPause until an event occurs or timeout

Building Sequences

The Visual Editor

Sequences are built in a visual drag-and-drop editor:
  1. Add a trigger - How does the sequence start?
  2. Add actions - What should happen?
  3. Add logic - When and how should it happen?
  4. Connect nodes - Define the flow between steps
  5. Activate - Turn on the sequence

Example: Welcome Sequence

┌─────────────────────┐
│ Trigger: Tag Added  │
│ "new-signup"        │
└──────────┬──────────┘


┌─────────────────────┐
│ Send: Welcome Email │
│ "Getting Started"   │
└──────────┬──────────┘


┌─────────────────────┐
│ Delay: 2 days       │
└──────────┬──────────┘


┌─────────────────────┐
│ Send: Tips Email    │
│ "5 Pro Tips"        │
└──────────┬──────────┘


┌─────────────────────┐
│ Delay: 3 days       │
└──────────┬──────────┘


┌─────────────────────┐
│ Send: Feature Email │
│ "Discover Features" │
└─────────────────────┘

Example: Post-Purchase Sequence

┌────────────────────────┐
│ Trigger: Event         │
│ "saas.purchase"        │
└───────────┬────────────┘


┌────────────────────────┐
│ Send: Thank You Email  │
└───────────┬────────────┘


┌────────────────────────┐
│ Delay: 7 days          │
└───────────┬────────────┘


┌────────────────────────┐
│ Wait for Event:        │
│ "feature_activated"    │
│ Timeout: 14 days       │
└───────────┬────────────┘

       ┌────┴────┐
       │         │
  Event Fired  Timeout
       │         │
       ▼         ▼
┌───────────┐ ┌───────────┐
│ Add Tag   │ │ Send Help │
│ "engaged" │ │ Email     │
└───────────┘ └───────────┘

Condition Types

Conditions let you branch sequences based on subscriber data.

Tag Conditions

Condition: has_tag "customer"
  ├─ Yes → Send upsell email
  └─ No  → Send conversion email

List Conditions

Condition: in_list "VIP Customers"
  ├─ Yes → Send exclusive offer
  └─ No  → Send standard offer

Field Conditions

Condition: field_equals "plan" "enterprise"
  ├─ Yes → Assign to sales team
  └─ No  → Send self-serve resources

Available Operators

OperatorDescriptionExample
has_tagSubscriber has taghas_tag "customer"
in_listSubscriber in listin_list "Newsletter"
field_equalsField exact matchfield_equals "plan" "pro"
field_containsField contains stringfield_contains "company" "Inc"
field_greater_thanNumeric comparisonfield_greater_than "mrr" 100
field_less_thanNumeric comparisonfield_less_than "age" 30

Wait for Event

The “Wait for Event” node pauses execution until a specific event occurs.

Wait Types

Wait TypeDescription
email_openedWait for previous email to be opened
email_clickedWait for link click in previous email
email_repliedWait for reply to previous email
event_receivedWait for a custom event by name

Timeout Behavior

Every wait has a timeout. When the timeout expires:
  • The sequence continues down the “timeout” path
  • You can send follow-up emails or take alternative actions
┌─────────────────────┐
│ Wait for Event:     │
│ "demo_scheduled"    │
│ Timeout: 5 days     │
└──────────┬──────────┘

      ┌────┴────┐
      │         │
   Event    Timeout
      │         │
      ▼         ▼
┌──────────┐ ┌──────────┐
│ Send     │ │ Send     │
│ Prep     │ │ Follow   │
│ Email    │ │ Up Email │
└──────────┘ └──────────┘

Branching

Simple Condition (2 paths)

┌─────────────────────┐
│ Condition:          │
│ has_tag "customer"  │
└──────────┬──────────┘

      ┌────┴────┐
      │         │
     Yes        No
      │         │
      ▼         ▼
┌──────────┐ ┌──────────┐
│ Upsell   │ │ Convert  │
│ Email    │ │ Email    │
└──────────┘ └──────────┘

Multi-Branch (3+ paths)

┌─────────────────────────────┐
│ Branch:                     │
│ ├─ plan = "enterprise"      │
│ ├─ plan = "pro"             │
│ └─ else (default)           │
└─────────────┬───────────────┘

     ┌────────┼────────┐
     │        │        │
 Enterprise  Pro    Default
     │        │        │
     ▼        ▼        ▼
┌────────┐ ┌────────┐ ┌────────┐
│ VIP    │ │ Pro    │ │ Basic  │
│ Email  │ │ Email  │ │ Email  │
└────────┘ └────────┘ └────────┘

Sequence States

StateDescription
draftBeing edited, not active
activeRunning, processing subscribers
pausedTemporarily stopped
archivedNo longer in use

Tokens (Subscriber Journeys)

When a subscriber enters a sequence, a “token” tracks their progress:
{
  "subscriberId": "sub_abc123",
  "automationId": "auto_xyz",
  "currentNode": "node_456",
  "status": "active",
  "context": {
    "entryPoint": "tag_added",
    "emailsSent": 2,
    "waitingFor": "email_opened"
  }
}

Token States

StateDescription
activeCurrently progressing through sequence
waitingPaused at a wait/delay node
completedFinished all steps
failedError occurred
cancelledManually stopped

Real-World Sequence Examples

SaaS Trial to Paid

Trigger: Event "saas.trial_started"


┌───────────────────┐
│ Send: Trial       │
│ Welcome Email     │
└─────────┬─────────┘


┌───────────────────┐
│ Wait: 3 days      │
└─────────┬─────────┘


┌───────────────────┐
│ Send: Tips Email  │
│ "Get the Most..." │
└─────────┬─────────┘


┌───────────────────┐
│ Wait: 4 days      │
└─────────┬─────────┘


┌───────────────────────┐
│ Condition: has_tag    │
│ "customer"            │
└───────────┬───────────┘

       ┌────┴────┐
       │         │
      Yes        No
       │         │
       ▼         ▼
   (End)    ┌───────────────┐
            │ Send: Last    │
            │ Chance Email  │
            └───────────────┘

E-commerce Abandoned Cart

Trigger: Event "cart.abandoned"


┌───────────────────┐
│ Wait: 1 hour      │
└─────────┬─────────┘


┌───────────────────────┐
│ Condition: has_tag    │
│ "completed-purchase"  │
└───────────┬───────────┘

       ┌────┴────┐
       │         │
      Yes        No
       │         │
       ▼         ▼
   (End)    ┌───────────────┐
            │ Send: Cart    │
            │ Reminder      │
            └───────┬───────┘


            ┌───────────────┐
            │ Wait: 1 day   │
            └───────┬───────┘


            ┌───────────────┐
            │ Send: 10% Off │
            │ Coupon        │
            └───────────────┘

Re-engagement Campaign

Trigger: Tag Added "inactive-30d"


┌───────────────────┐
│ Send: We Miss You │
└─────────┬─────────┘


┌─────────────────────┐
│ Wait for Event:     │
│ "session_started"   │
│ Timeout: 7 days     │
└─────────┬───────────┘

     ┌────┴────┐
     │         │
   Event    Timeout
     │         │
     ▼         ▼
┌──────────┐ ┌──────────┐
│ Remove   │ │ Send     │
│ Tag      │ │ Special  │
│ inactive │ │ Offer    │
└──────────┘ └────┬─────┘


             ┌──────────┐
             │ Wait     │
             │ 14 days  │
             └────┬─────┘


             ┌──────────┐
             │ Add Tag  │
             │ "churned"│
             └──────────┘

Best Practices

1. Start Simple

Begin with 3-5 step sequences before building complex flows:
Trigger → Email → Delay → Email → End

2. Use Tags for State

Track sequence progress with tags:
- "onboarding-started" (at trigger)
- "onboarding-complete" (at end)

3. Set Reasonable Delays

  • Welcome emails: immediate to 30 minutes
  • Follow-ups: 2-4 days
  • Re-engagement: 1-2 weeks

4. Always Have Exit Conditions

Check if the goal is achieved before sending more emails:
Condition: has_tag "customer"
  ├─ Yes → End sequence
  └─ No  → Continue emails

5. Personalize with Conditions

Different paths for different subscribers:
Branch on plan:
  ├─ Enterprise → High-touch content
  ├─ Pro → Feature-focused content
  └─ Free → Conversion content