Skip to main content
This guide walks you through setting up a complete cold email campaign using the API — from creating the campaign to sending your first emails.

Overview

A campaign consists of five parts that need to be configured in order:
1

Create the campaign

Define name, timezone, sending schedule, and daily limits.
2

Add sequence steps

Create the email chain — initial outreach, follow-ups, and final touches.
3

Add leads

Assign leads (contacts) to the campaign.
4

Assign email accounts

Choose which email accounts will send the campaign emails.
5

Start the campaign

Transition the campaign from draft to active — emails begin sending.

Step 1: Create a Campaign

Create a new campaign in draft status. It won’t send anything until you start it.
Save the campaign.id — you’ll need it for all subsequent steps.

Step 2: Add Sequence Steps

Sequences define the emails in your campaign. Each step has a subject, body, and delay (days to wait after the previous step).
Use template variables like {{firstName}} and {{company}} for personalization. Use spin syntax like {option1|option2} for unique variations that improve deliverability.

Step 3: Add Leads

Add leads to the campaign by their IDs. If you haven’t created leads yet, do that first using the Leads API.
Leads that are already enrolled in the campaign will be skipped (no duplicates).

Step 4: Assign Email Accounts

Assign one or more email accounts to send the campaign emails. The campaign will rotate between assigned accounts.
Use client.email_accounts.list() (Python) or client.emailAccounts.list() (TypeScript) to see your available accounts and their health scores.

Step 5: Start the Campaign

Once everything is configured, start the campaign. Emails will begin sending according to the schedule and daily limits.
Make sure your sequence steps, leads, and email accounts are all configured before starting. You can’t edit an active campaign — pause it first.

Monitoring Performance

After your campaign is running, check its performance:

Next Steps

Template Variables

Learn about personalization variables and spin syntax for better deliverability.

Inbox Management

Monitor and categorize replies from your campaign.

Webhooks

Get real-time notifications when emails are sent, replies come in, or campaigns complete.

Analytics

View dashboard-level KPIs across all your campaigns.