Change a campaign's senders
Adds senders to an existing campaign, removes some, or both in one call. Use the sender ids from campaigns.listSenders. Removing a sender unassigns the leads they held so the remaining senders pick them up, except leads already in conversation with that sender: they wait until moved to another sender with campaigns.leads.bulkChangeSender. A campaign always keeps at least one sender. Allowed while the campaign is running, and an added sender starts at once. A sender already on the campaign (to add) or not on it (to remove) is reported and ignored. Pass dryRun to see who would be added and removed and how many leads are affected, without changing anything.
/campaigns.updateSendersAuthorization
bearerAuth Enter your MailMoo API key (format: sk_live_...)
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/campaigns.updateSenders" \ -H "Content-Type: application/json" \ -d '{ "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf" }'{ "dryRun": true, "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf", "campaignName": "string", "running": true, "added": [ { "sdrProfileId": "fd57902a-f94d-44c4-b010-9350234d4c62", "name": "string", "status": "available" } ], "removed": [ { "sdrProfileId": "fd57902a-f94d-44c4-b010-9350234d4c62", "name": "string", "status": "available" } ], "alreadyOnCampaign": [ "593a3286-b1de-4fd3-8d18-7329be54e9ad" ], "notOnCampaign": [ "e59434ba-3096-4967-a9f3-df49d32b2b09" ], "senders": [ { "sdrProfileId": "fd57902a-f94d-44c4-b010-9350234d4c62", "name": "string", "status": "available" } ], "leads": { "assigned": 0, "inFlight": 0 }, "warnings": { "cannotSend": [ "string" ] }}Rerun a campaign POST
Runs a campaign's leads again in a new campaign, optionally with another campaign's sequence. The new campaign gets the sequence and sending schedule of sequenceFromCampaignId (default: the source campaign's own), the source campaign's columns with their values, and the source campaign's senders that can still send. A sender with no social account, or a disconnected one, is dropped and their leads unassigned so the remaining senders pick them up; everyone else keeps their sender. Every lead in the source campaign is included unless search or conditions narrow it, and their sequences still running there are stopped. Do Not Contact and blocklisted people are skipped. The new campaign is not started. Pass dryRun to get the same summary without creating or changing anything.
Count what needs attention GET
Returns how many leads sit in each bucket of the triage queue: waiting on a reply, due a catch-up, carrying a due task, gone quiet, stalled, or due to wake from on-hold. A lead lands in exactly one bucket, so the buckets sum to `total`.

