Campaign contacts
Add people to a campaign, see where each one is, and stop it for anyone who replied elsewhere.
Connect the MCP server, then just ask.
| get_prospects | List the contacts (prospects) already added to email campaigns on a website, newest first. | Read-only |
| add_prospect_to_campaign | Add one contact to an existing email campaign so it receives the sequence, like Manual Entry in the app. | Changes data |
| remove_prospect_from_campaign | Delete a prospect from its campaign, like "Remove from campaign" in the app: the prospect and its scheduled emails are deleted, emails already sent stay sent, and its history is gone. | Deletes data |
| stop_prospect | Stop one prospect's email sequence: no further steps are sent and the prospect is marked manually-paused, keeping it and its history in the campaign. | Deletes data |
| get_campaign_stats | Returns how a campaign is doing: emails sent, opened, clicked, replied, bounced and unsubscribed, with rates. | Read-only |
| resume_prospects | Resumes paused prospects so their emails are sent again from their next scheduled step. | Changes data |
| send_prospects_now | Sends the next email of their sequence to the given prospects right away instead of at their scheduled time, within the mailbox limits. | Changes data |
| change_prospects_mailbox | Moves prospects to another mailbox: their next emails are sent from it. | Changes data |
| reschedule_prospects | Recalculates when the next email of each prospect goes out, spread over the coming days within the mailbox limits, e.g. | Changes data |
Use case
Add ava@northwind-analytics.example to “Pricing page visitors”.
Called add_prospect_to_campaignShow input
{
"campaignId": "6530c1d2e3f4a5b6c7d8e9f5",
"email": "ava@northwind-analytics.example",
"firstName": "Ava"
}The answer is the new prospectId, or why the contact was not added (already in the campaign, an email that failed verification…). For someone already known, the name and position we have are kept; yours only fill what is missing. Add scheduledFor to start at a set time, or emailAccountIds to send from particular mailboxes.
The campaign must be active and have at least one email. The assistant asks before adding, stopping or removing anyone: adding uses one from your prospecting allowance, and removing deletes the person's history in the campaign (stop_prospect keeps it).
Use case
My Gmail mailbox got disconnected. Move its contacts in "Pricing page visitors" to the Outlook one.
Called change_prospects_mailboxShow input
{
"websiteId": "64b7f0a1c2d3e4f5a6b7c8d9",
"prospectIds": ["6530c1d2e3f4a5b6c7d8e9fa", "6530c1d2e3f4a5b6c7d8e9fb"],
"emailAccountId": "6530c1d2e3f4a5b6c7d8e9f6"
}Your assistant finds the contacts with get_prospects and the mailbox with list_email_accounts. Their next emails are re-planned from the new mailbox; it must be connected and belong to the same website.
Use case
How is "Pricing page visitors" doing? Which step gets the most replies?
Called get_campaign_statsShow input
{
"websiteId": "64b7f0a1c2d3e4f5a6b7c8d9",
"campaignId": "6530c1d2e3f4a5b6c7d8e9f5"
}The answer has the campaign's totals and rates (sent, opens, clicks, replies, bounces, unsubscribes), the same per step, how many contacts are in each status, and how many emails are planned for each coming day.