Campaign Write Tools
MCP tools that create and queue email campaigns and pause / resume / cancel running ones.
Overview
The tools on this page initiate real email sending or change the state of running campaigns. Both require the campaigns feature on your subscription.
Real emails are sent
create_and_send_campaign sends real emails to real recipients and consumes your monthly mail quota. Your AI assistant should confirm the segment and content with you before calling it — once called, the campaign is queued.
Merge Tags (Personalization)
Subject and body support per-recipient merge tags: {{business_name}}, {{city}}, {{state}}, {{address}}, {{category}}, {{phone}}, {{website}}, {{rating}}, {{reviews_count}}, {{contact_name}}, {{first_name}}, {{last_name}}, {{job_title}}, {{company_size}}, {{industry}}, {{email}}.
Use {{key|fallback text}} for empty values; unknown or empty keys render as the fallback or an empty string — raw braces never reach recipients.
Tools
create_and_send_campaign
Creates an email campaign targeting CRM segments (tags) and queues it for sending. Recipients are drained over days according to per-domain warmup limits. Provide at least one of body_html or template_id; schedule_at delays the start to a future time.
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | UUID | Yes | Workspace ID |
campaign_name | string | Yes | Campaign name (1–200 characters) |
segments | string array | Yes | CRM tag names — recipients are CRM records/contacts carrying any of these tags (min 1) |
subject | string | No* | Subject line; required unless template_id provides one. Supports merge tags |
body_html | string | No* | HTML email body (or use template_id). Supports merge tags |
template_id | UUID | No | Use a saved campaign template for subject/body |
reply_to | No | Reply-to address; defaults to your account email if omitted | |
schedule_at | ISO date | No | Future time to start sending; omit for immediate |
*subject and body_html must be provided either directly or via the template.
The tool checks headroom before queueing: it errors if the monthly quota is exhausted or if no active, verified sending domain is available. The response includes the campaign_id and the current quota state (mail_quota).
Say this to your AI: "Prepare a campaign called 'November Offer' targeting everything tagged 'hot-lead'; make the subject 'Hi {{first_name|there}}, we have an offer for you'. Show it to me first and send only after I approve."
control_campaign
Controls a campaign: pause (pauses a running campaign), resume (resumes a paused campaign and reschedules stranded recipients), cancel (cancels a running/paused campaign — irreversible).
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | UUID | Yes | Workspace ID |
campaign_id | UUID | Yes | Campaign ID |
action | enum | Yes | pause, resume, or cancel |
Invalid state transitions return an error: only a running campaign can be paused, only a paused campaign can be resumed, and a completed or cancelled campaign cannot be cancelled again.
Say this to your AI: "Pause the November Offer campaign for now — we'll check the bounce rate before resuming."
Use list_campaigns and get_campaign from Campaign Read Tools to monitor campaign status and recipient progress.