MailMoo
EndpointsCampaigns

Add a step to a campaign's sequence

Adds one step to a paused campaign's sequence: a message, connection request, connection request with a note, InMail, email, wait, or profile visit. A message can be sent as a voice note: an AI voice note speaks the content in a cloned voice, a pre-recorded one sends a recording from the library (see voiceNote). Inserted after afterStepId; without it the step is appended to an unbranched sequence. When afterStepId is a condition, branch says which of its paths the step starts. The step is checked before it is saved: merge fields must match the campaign's columns, every sender must be able to perform it (InMail needs Premium), and connection notes must fit the senders' length limit. Returns the sequence and what would still stop it from starting.

POST/campaigns.addSequenceStep

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.addSequenceStep" \  -H "Content-Type: application/json" \  -d '{    "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf",    "type": "message"  }'
{  "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf",  "campaignName": "string",  "stepCount": 0,  "steps": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "number": 0,      "type": "string",      "branch": "yes",      "content": "string",      "subject": "string",      "waitTimeSeconds": 0,      "sendCondition": "string",      "stopIfSkipped": true,      "emailThreading": "string",      "voiceNote": {        "mode": "none"      }    }  ],  "readiness": {    "ready": true,    "problems": [      {        "severity": "error",        "message": "string"      }    ]  }}