MailMoo
EndpointsLeads

Enroll leads in a campaign

Enrolls the people behind a selection of leads into another campaign, existing or new. Select by explicit lead ids, or by filter (scope plus the same conditions as lead search). One fresh enrollment per person; Do Not Contact and blocklisted people are skipped. Their sequences still running elsewhere are stopped by default (activeConflictPolicy). sender keep_where_possible keeps each person's owner when that sender sends in the destination and unassigns the rest, so the destination's senders pick them up. Pass dryRun to get the counts without changing anything. Never starts the destination campaign.

POST/campaigns.leads.bulkEnrollInCampaign

Authorization

bearerAuth
AuthorizationBearer <token>

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.leads.bulkEnrollInCampaign" \  -H "Content-Type: application/json" \  -d '{    "scope": {      "kind": "campaign",      "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf"    },    "selection": {      "mode": "ids",      "leadIds": [        "0e7eb83f-f60a-4ca7-95b5-29e3c79907f5"      ]    },    "destination": {      "kind": "existing",      "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf"    },    "sender": "keep"  }'
{  "dryRun": true,  "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf",  "createdCampaign": true,  "enrolled": 0,  "alreadyEnrolled": 0,  "skippedMissing": 0,  "skippedDoNotContact": 0,  "skippedBlocklisted": 0,  "skippedActive": 0,  "stoppedActive": 0,  "completedActive": 0,  "keptOwnerCount": 0,  "reassignedCount": 0,  "linkedLeads": 0}