enroll_leads
Enroll leads into a campaign, assigning mailboxes round-robin and scheduling the first send.
›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
| Name | Type | Notes |
|---|---|---|
| campaign_id * | string | Target campaign. |
| lead_ids | array | Omit to enroll all active leads. |
| mailbox_ids | array | Restrict 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.