Get campaign
One campaign with its message sequence: initial email, follow-ups, drips and on-click emails.
MCP tool mailshake_read → get_campaign
read
Returns one campaign and every message of its sequence in sending order. type is initial, follow-up, drip or on-click. reply_to_id is set on a follow-up and points to the first message of its reply chain, so follow-ups sent as replies share one thread. A campaign the team cannot see comes back as not_found. Read this before add_follow_up to see how long the sequence is.
Parameters
| Name | Type | Description |
|---|---|---|
| campaign_id integer required | integer | Campaign ID from list_campaigns. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "mailshake_read",
"arguments": {
"operation": "get_campaign",
"arguments": {
"campaign_id": 1
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"id": 4821,
"title": "Agency outreach Q4",
"is_paused": false,
"is_archived": false,
"sender": {
"email_address": "sam@northwind.example",
"from_name": "Sam Rivera"
},
"messages": [
{
"id": 90311,
"type": "initial",
"subject": "Quick question about your client reporting",
"reply_to_id": null,
"is_paused": false
},
{
"id": 90312,
"type": "follow-up",
"subject": null,
"reply_to_id": 90311,
"is_paused": false
},
{
"id": 90313,
"type": "follow-up",
"subject": null,
"reply_to_id": 90311,
"is_paused": false
}
],
"url": "https://mailshake.com/app/#/2210/campaigns/4821/overview"
},
"isError": false
}