Skip to content
RRAECHLY
CampaignsWrites data

enroll_leads

Enroll leads into a campaign, assigning mailboxes round-robin and scheduling the first send.

Say this to your assistant

Enroll every active lead into Agency Q3, but only send from our two warmed mailboxes.

What it does

Enrollment is where leads meet mailboxes. Each enrolled lead is assigned a send-eligible mailbox round-robin and given a `next_send_at`, which the hourly pipeline then honours inside the campaign send window.

Round-robin distribution across mailboxes is what keeps per-mailbox volume flat instead of concentrating a list on whichever address happens to be first. You can narrow the pool with `mailbox_ids` when you want a specific sender identity on a specific segment.

It is idempotent. Leads already enrolled in that campaign are skipped, so re-running after adding more leads does exactly what you want and nothing else. Omitting `lead_ids` enrolls every active lead.

Because enrollment only schedules the first send, nothing happens the instant you call it. The lead waits for the next pipeline pass that falls inside the campaign send window, in the campaign timezone. Enrolling at 6pm on a Friday into a weekday 9-to-5 window means the first message goes out Monday morning, which is usually what you wanted anyway.

Parameters

NameTypeNotes
campaign_id *stringTarget campaign.
lead_idsarrayOmit to enroll all active leads.
mailbox_idsarrayRestrict which mailboxes send. Defaults to all eligible.

* required · Maps to POST /api/campaigns/:id/enroll

What comes back

Enrolled count, with already-enrolled leads skipped.

The thing people get wrong

Only send-eligible mailboxes are assigned. If every mailbox is still warming or missing reply capture, enrollment succeeds and then nothing sends.

Use it with

More campaigns tools

See all 22 tools and the connection string on the MCP server page.

Run enroll_leads yourself.

Connect the MCP server to Claude, Claude Code or Cursor and the whole toolset shows up in the conversation.