Follow-up Sequences
Sequences define automated follow-up emails that trigger based on recipient behavior. Use them to send reminders, additional value, or alternative approaches.
How Sequences Work
When a recipient doesn’t take the expected action, ColdSend automatically sends the follow-up email:
- Initial email is sent to the lead
- ColdSend waits the specified number of days
- If the trigger condition is met, the follow-up is sent
- Process repeats for subsequent sequences
Creating Sequences
Add sequences when updating a campaign:
requests.put(
f"{base_url}/api/public/v1/campaigns/{campaign_id}",
headers={"X-API-Key": api_key},
json={
"sequences": [
{
"step_number": 2,
"trigger_type": "NOT_OPENED",
"wait_days": 3,
"variants": [
{
"variant_name": "A",
"subject_template": "Following up on my previous email",
"email_content": "Hi {{first_name}},\n\nI wanted to follow up on my previous email...\n\nBest,\nJohn",
"distribution_percent": 100
}
]
},
{
"step_number": 3,
"trigger_type": "NOT_REPLIED",
"wait_days": 5,
"variants": [
{
"variant_name": "A",
"subject_template": "Last thought",
"email_content": "Hi {{first_name}},\n\nOne last thought I wanted to share...\n\nBest,\nJohn",
"distribution_percent": 100
}
]
}
]
}
)
Sequence Fields
| Field | Type | Required | Description |
|---|
step_number | integer | Yes | Sequence position (2-4) |
trigger_type | string | Yes | Trigger condition |
wait_days | integer | Yes | Days to wait (1-30) |
enable_unsubscribe | boolean | No | Override campaign setting |
variants | array | Yes | Email variants for this sequence |
Trigger Types
| Trigger | Description |
|---|
NOT_OPENED | Send if the previous email was not opened |
NOT_REPLIED | Send if the previous email was not replied to |
OPENED_BUT_NOT_REPLIED | Send if opened but not replied |
Trigger Behavior
NOT_OPENED
- Triggered when the recipient has not opened any previous email
- Useful for re-engaging unresponsive leads
NOT_REPLIED
- Triggered when the recipient has not replied to any email
- Includes recipients who opened but didn’t respond
- Most commonly used trigger
OPENED_BUT_NOT_REPLIED
- Triggered only when the recipient opened an email but didn’t reply
- Useful for re-engaging interested prospects
- Skips recipients who didn’t open at all
Sequence Limits
| Limit | Value |
|---|
| Maximum sequences | 3 per campaign |
| Step numbers | 2, 3, or 4 |
| Wait days per sequence | 1-30 days |
| Total sequence duration | 45 days maximum |
Step Numbering
- Step 1 is always the initial email (defined in
variants)
- Sequences start at step 2
- Steps must be sequential (2, 3, 4)
Duration Calculation
Total sequence duration is the sum of all wait_days:
Sequence 2: 3 days
Sequence 3: 5 days
Sequence 4: 7 days
Total: 15 days
Sequence Variants
Each sequence can have its own variants for testing:
{
"step_number": 2,
"trigger_type": "NOT_OPENED",
"wait_days": 3,
"variants": [
{
"variant_name": "A",
"subject_template": "Did you see this?",
"email_content": "...",
"distribution_percent": 50
},
{
"variant_name": "B",
"subject_template": "Thought you might have missed this",
"email_content": "...",
"distribution_percent": 50
}
]
}
Leads retain their variant assignment from the initial email. Sequence variants apply only if you want to test different follow-up approaches.
Best Practices
Timing
| Follow-up | Recommended Wait |
|---|
| First follow-up | 2-4 days |
| Second follow-up | 5-7 days |
| Final follow-up | 7-10 days |
Content Strategy
First Follow-up (Step 2)
- Reference the original email
- Add a small piece of value
- Keep it brief
Second Follow-up (Step 3)
- Offer something specific (case study, resource)
- Use a different angle
Third Follow-up (Step 4)
- Create urgency or finality
- Consider a “breakup” email
Subject Lines
Follow-up subject lines can:
- Reference the previous subject:
"Re: Quick question about {{company}}"
- Use a fresh approach:
"One more thing about {{company}}"
- Create curiosity:
"Did you see this?"
Validation Errors
Invalid Step Number
{
"detail": "step_number must be 2, 3, or 4"
}
Non-Sequential Steps
{
"detail": "Sequences must be sequential. Missing step: 3"
}
Duration Exceeded
{
"detail": "Total sequence duration cannot exceed 45 days"
}