Campaign Extras
MCP tools for sending test emails, managing campaign templates, and monitoring the mail queue.
Overview
The tools on this page are helpers around the campaign workflow: pre-send test emails, management of reusable templates, and mail-queue monitoring. All of them require the campaigns feature on your subscription.
Templates and test emails support merge tags ({{business_name}}, {{first_name}}, {{city}}, etc. — see Campaign Write Tools for the full list and the {{key|fallback}} syntax).
Tools
send_test_mail
Sends a real email to a single address for previewing campaign content; the subject automatically gets a [TEST] prefix. It does not consume the mail quota. Merge tags are rendered with sample data.
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | UUID | Yes | Workspace ID |
test_mail_to | Yes | Address the test email goes to | |
body_html | string | Yes | HTML body; merge tags render with sample data |
subject | string | No | Subject line; supports merge tags |
reply_to | No | Reply-to address | |
campaign_name | string | No | Associated campaign name |
attachment_ids | UUID array | No | IDs of uploaded attachments (max 10) |
A strict per-user limit applies: a 60-second cooldown between test emails and at most 20 test emails per UTC day.
Say this to your AI: "Send the campaign draft we prepared to my own address as a test email first, so I can see how the merge tags render."
save_campaign_template
Creates a campaign template, or updates the existing one if a template with the same name already exists in the owner's account (upsert by name). Writes HTML bodies only — replacing the body of a template built with the visual editor requires overwrite_visual_body: true (the visual design is lost).
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | UUID | Yes | Workspace ID |
name | string | Yes | Template name (1–200 characters); the upsert key |
subject | string | No | Subject line; supports merge tags |
reply_to | No | Reply-to address | |
body_html | string | No | HTML body; supports merge tags |
segments | string array | No | Default target segments (CRM tags) |
overwrite_visual_body | boolean | No | Confirms replacing a visual-editor body with plain HTML |
Say this to your AI: "Save this email copy as a template named 'cold-outreach-v2' with the subject 'Hi {{first_name}}'."
update_campaign_template
Partially updates a template by ID; only the fields you send are changed. Replacing a visual-editor body again requires overwrite_visual_body: true.
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
template_id | UUID | Yes | Template ID |
name | string | No | New name |
subject | string | No | New subject; supports merge tags |
reply_to | No | New reply-to address | |
body_html | string | No | New HTML body; supports merge tags |
segments | string array | No | New default segments |
overwrite_visual_body | boolean | No | Confirms replacing a visual-editor body |
At least one field to update must be provided.
Say this to your AI: "Change only the subject of the cold-outreach-v2 template to 'A quick idea for you' — don't touch the body."
delete_campaign_template
Permanently deletes a campaign template (hard delete, cannot be undone).
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
template_id | UUID | Yes | ID of the template to delete |
Say this to your AI: "Find and delete the 'cold-outreach-v1' template we no longer use."
get_mail_queue
Returns the current mail queue for a workspace: tracked messages (queued / sent / failed) plus campaign recipients still waiting to be dispatched. Results are enriched with the business name and include error codes and reply status.
Key parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | UUID | Yes | Workspace ID |
limit | number | No | Max rows (1–500, default 100) |
Say this to your AI: "How many messages are waiting in the mail queue right now, and did any sends fail?"