List a campaign's merge fields
The personalization variables this campaign's messages may use, e.g. First Name. Write one as {{First Name | ""}} — the exact display name, plus a fallback. A merge field naming anything outside this list is not an error at send time: it resolves to an empty string, so the lead receives the sentence with a gap in it. campaigns.updateSequenceMessage rejects one rather than letting that happen.
/campaigns.getMergeFieldsAuthorization
bearerAuth Enter your MailMoo API key (format: sk_live_...)
In: header
Query Parameters
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/campaigns.getMergeFields?campaignId=497f6eca-6276-4993-bfeb-53cbbbba6f08&input=%7B%22campaignId%22%3A%2213f8bf6d-dc27-4a04-bffe-6e5b13c19ddf%22%7D"{ "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf", "mergeFields": [ "string" ]}Edit a sequence message POST
Rewrites the copy on one step of a campaign's sequence, and the message variants under it. Only the fields you send are changed; the step's send condition, attachments and schedule are left alone. The campaign must be paused. Read the sequence with campaigns.getSequence first to get the step id, and campaigns.getMergeFields for the personalization variables this campaign accepts. A merge field naming anything outside that list is rejected, because it would send to the lead as an empty string rather than failing.
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`.

