📬 Email Sequence Engine

Automation Level: 100% AUTO

Once approved at [[07-Human-Review-Gates|Gate #2]], sequences execute fully autonomously. No human involvement until a reply arrives.

Manifest Stage: S6 → See 01-Process-Manifest Input: Approved email batch from [[07-Human-Review-Gates|Gate #2]] Output: Sent sequence events → 08-Reply-Classification-Agent


🎯 Sequence Philosophy

BaC Principle Applied

A traditional SOP says “follow up 3 times.” This engine defines exactly: timing windows, send conditions, branching logic based on behaviour, and automatic stop conditions — so the sequence can run and adapt without human intervention.


🔀 Master Sequence Definition

sequence:
  name: cold-outbound-v1
  version: 1.0.0
  tool: Instantly.ai
  total_touchpoints: 5
  max_duration_days: 21
  send_window:
    days: [Monday, Tuesday, Wednesday, Thursday]  # no Fri/weekend sends
    hours: "8:00–11:00 AM"                        # prospect's local time
    timezone_detection: true                       # auto-detect from LinkedIn/domain
 
  steps:
    - step: 1
      name: initial-outreach
      day: 0
      type: email
      subject_template: "{{subject_variant_A or B}}"   # A/B tested → [[09-Metrics-and-Self-Improvement]]
      body_template: personalized_hook + value_prop_1
      personalization_source: [[06-Personalization-Agent]]
      conditions:
        send_if: always
      tracking:
        open_tracking: true
        click_tracking: true
 
    - step: 2
      name: value-add-followup
      day: 3
      type: email
      subject_template: "Re: (same thread)"
      body_template: add_resource_or_insight       # short, adds value without repeating ask
      conditions:
        send_if: NOT replied
      tracking:
        open_tracking: true
 
    - step: 3
      name: social-proof-bump
      day: 7
      type: email
      subject_template: "Quick thought on [company_pain]"
      body_template: case_study_reference + soft_CTA
      conditions:
        send_if: NOT replied AND (opened_step1 OR opened_step2)
      tracking:
        open_tracking: true
 
    - step: 4
      name: breakup-email
      day: 14
      type: email
      subject_template: "Should I close your file?"
      body_template: permission_to_close           # classic pattern, high reply rate
      conditions:
        send_if: NOT replied
      tracking:
        open_tracking: true
 
    - step: 5
      name: linkedin-connect
      day: 21
      type: linkedin_connection_request
      message_template: brief_personalized_note
      conditions:
        send_if: NOT replied AND linkedin_url_available

🌲 Branching Decision Tree

flowchart TD
    S1["Step 1: Initial Email<br/>Day 0"]

    S1 -->|"Replied"| REPLY["→ Reply Classification Agent"]
    S1 -->|"No reply after 3d"| S2

    S2["Step 2: Value Add<br/>Day 3"]
    S2 -->|"Replied"| REPLY
    S2 -->|"Opened but no reply"| S3_HOT["Step 3: Social Proof<br/>Day 7 — opened signal"]
    S2 -->|"Not opened"| S3_COLD["Step 3: Different angle<br/>Day 7 — no engagement"]

    S3_HOT & S3_COLD -->|"Replied"| REPLY
    S3_HOT & S3_COLD -->|"No reply after 7d"| S4

    S4["Step 4: Breakup Email<br/>Day 14"]
    S4 -->|"Replied"| REPLY
    S4 -->|"No reply after 7d"| S5

    S5["Step 5: LinkedIn Connect<br/>Day 21"]
    S5 -->|"Connected + replied"| REPLY
    S5 -->|"No response"| END["Archive lead<br/>Log in Metrics Loop"]

✉️ Template Library

Templates Are Version-Controlled

Every template change goes through [[07-Human-Review-Gates|Gate #2]] and is A/B tested before full deployment. See 09-Metrics-and-Self-Improvement.

Template: Initial Outreach (Personalized Hook)

Subject: {{hook_subject}}

Hi {{first_name}},

{{personalized_hook}}                     ← Generated by [[06-Personalization-Agent]]

[One sentence connecting their situation to the problem we solve.]

[One sentence: what we do + one outcome.]

Worth a 20-min chat this week?

{{sender_name}}
{{sender_title}}

Template: Value-Add Follow-up

Subject: Re: {{previous_subject}}

{{first_name}} — thought this might be useful given what you're building:

[Resource/insight — specific to their company or role]

No ask — just sharing. Happy to dig in if useful.

{{sender_name}}

Template: Breakup Email

Subject: Should I close your file, {{first_name}}?

I've reached out a few times — no worries if the timing's off.

I'll stop following up unless you'd like to reconnect.

Either way, [one-line genuine wish for their success].

{{sender_name}}

⚙️ Engine Configuration

engine_config:
  daily_send_limit: 50                   # per sender domain
  warmup_period_days: 14                 # for new domains
  reply_auto_stop: true                  # stop all steps immediately on reply
  unsubscribe_handling: auto_remove      # remove from all sequences instantly
  bounce_threshold: 0.03                 # pause if >3% hard bounce rate
  spam_complaint_threshold: 0.001        # pause if >0.1% complaint rate
 
  a_b_testing:
    active: true
    split: 50/50
    minimum_sends_per_variant: 100
    winner_determination: reply_rate     # not open rate
    auto_promote_winner: false           # human must approve → [[07-Human-Review-Gates]]

📊 Sequence KPIs

Tracked in 09-Metrics-and-Self-Improvement.

MetricBenchmarkTargetAlert
Open rate (Step 1)30–40%≥45%<25%
Reply rate (all steps)3–5%≥7%<2%
Positive reply rate1–2%≥3%<0.5%
Meeting booked rate0.5–1%≥2%<0.3%
Unsubscribe rate<0.5%>1%
Bounce rate<2%>3%