Campaigns are the primary way to send bulk outbound SMS or MMS messages to an audience in Amplifi. Each campaign targets an audience defined by a saved segment (Documentation Index
Fetch the complete documentation index at: https://docs.messagesender.ai/llms.txt
Use this file to discover all available pages before exploring further.
segmentId) or an ad-hoc contact filter (contactFilter), and carries a message body plus optional media URL for MMS. Campaigns move through a lifecycle of statuses—from draft to completed—and can be scheduled for a future time or sent immediately.
Campaign statuses
| Status | Description |
|---|---|
draft | Being composed; not yet submitted for sending. |
scheduled | Approved and queued to send at scheduledFor. |
pending | Submitted for sending; awaiting queue admission. |
queued | Admitted to the send queue; messages being generated. |
sending | Messages actively being dispatched. |
completed | All messages sent or failed; no further processing. |
failed | The campaign failed to start or encountered a fatal error. |
paused | Sending paused mid-campaign; can be resumed. |
List campaigns
Response
Create a campaign
scheduledFor is provided). You must supply either segmentId or contactFilter to define the audience, but not both.
To save a campaign as a draft without sending, use
POST /api/campaigns/draft instead.Request body
Display name for the campaign (e.g.
"April Fundraiser Blast").The message body to send. Supports merge fields:
{{firstName}}, {{lastName}}, {{email}}, {{phone}}, {{city}}, {{state}}, {{zip}}, and any custom fields.UUID of a saved segment to use as the audience. Mutually exclusive with
contactFilter.Ad-hoc filter defining the audience. Mutually exclusive with
segmentId. Common structure: { "tags": ["vip"], "tagsLogic": "AND" }.UUID of the phone number to send from. Defaults to your organization’s default phone number.
When to send the campaign. If omitted or in the past, the campaign is sent immediately. Must be in UTC.
IANA timezone string for display purposes (e.g.
America/New_York). Quiet hours (8 AM–9 PM) are enforced in this timezone.Public URL of media to attach. When present, the campaign is sent as MMS regardless of
forceRoute.Override automatic SMS/MMS routing.
AUTO (default), SMS, or MMS.Channel type. Currently
text is the only supported value.When
true (default), smart quotes and other Unicode characters are normalized to ASCII to avoid multi-segment messages.Enable A/B testing. When
true, you must provide messageVariantA and messageVariantB.Message body for A/B test variant A (sent to a 5% sample).
Message body for A/B test variant B (sent to a 5% sample).
Enable automatic replies to inbound responses. When
true, configure yesResponse, noResponse, or faqReplies.Auto-reply message when a contact replies with an affirmative response.
Auto-reply message when a contact replies with a negative response.
Up to 5 FAQ reply pairs. Each object:
{ "question": "string", "answer": "string" }.UUID of an existing draft campaign to promote to a live campaign. The draft is updated in place rather than creating a new record.
Example request
Response
Returns the created campaign object with status201.
Get a campaign
Path parameters
The campaign’s UUID.
Response
In addition to all campaign fields, the response includes:Details of the phone number used to send the campaign, or
null if not yet assigned.Computed display metrics including audience size, sent/failed/queued counts, and delivery rate.
Update a draft campaign
status: "draft". All fields from the campaign draft schema are accepted and are optional—send only those you want to change. Returns 400 if the campaign is not in draft status.
Path parameters
UUID of the draft campaign to update.
Send a campaign immediately
To trigger production sending of a campaign that is in
draft status, use POST /api/campaigns with draftId set to the draft’s UUID.Request body
Array of E.164 phone numbers to receive the test message.
Message body to send. Defaults to the campaign’s current message.
Media URLs for MMS test sends.
Override the sending phone number for this test.
Key-value pairs substituted into merge fields for the preview (e.g.
{ "firstName": "Alex" }).Key fields reference
AUTO, SMS, or MMS. Controls how message routing is decided. AUTO sends as MMS only when mediaUrl is present or the message contains characters that require it.When
true, smart quotes, em dashes, and other non-ASCII characters are replaced with their ASCII equivalents before sending to maximize message segment efficiency.Number of messages that have been dispatched to the carrier. Does not indicate delivery confirmation.
Number of messages that failed to send, including carrier rejections and invalid numbers.
Count of inbound replies received after the campaign started, excluding opt-out messages.