Skip to main content
Outbound

Create an Outbound message

Create a complete draft in one request. Required: type, name, content and audience. idempotencyKey is optional. Use audience.all/any for conditions, or explicitly set everyone:true. The server derives field types and editor IDs. Strings mean English; translation maps must include en. Sender defaults to the authenticated admin. Schedule defaults to once, except banners use every_match. Creation never activates or sends. Discover fields at GET /v2/outbound/authoring. GET returns the same editable definition under definition, with state and revision outside it. Example: {"type":"chat","name":"Welcome","content":{"text":"Hello!"},"audience":{"everyone":true}}.

POST
/v2/outbound/messages

Optional protections: idempotencyKey enables safe retries; revision on existing campaigns rejects stale changes. Neither is required, and they can be used independently. Without a key, each request is a new operation and does not create an operation receipt; do not blindly retry an uncertain create or send. Without a revision, a change can overwrite a concurrent edit. With a key, keep the exact request on retries. Completed results replay for at least 7 days. Changed input returns idempotency_conflict; a concurrent retry returns operation_pending. For operation_outcome_unknown, inspect the Outbound-Operation-Id receipt before another operation. Schedule synchronization stays durable with or without these fields.

Authorizationstringheaderrequired

API key as Bearer token. Use: Authorization: Bearer sk_...

Featurebase-Versionenum<string>header

API version for this request. Defaults to your organization's configured API version if not specified.

Available options: 2026-09-03.pulsar, 2026-08-19.orbit, 2026-01-01.nova, 2025-12-12.clover
Example: 2026-09-03.pulsar

Body

application/json

Response

application/json

Created

conversationTagIdsstring[]required

Conversation tag IDs applied to conversations started from this message

createdAtstringrequired

ISO 8601 timestamp when created

Example: 2026-09-01T09:30:00.000Z
createdBystringrequired

Admin ID that created the message

Example: 6438a1efda3640f8feb72121
definitionobjectrequired

Editable definition. A dashboard draft or template can have no survey choices yet. The write and validation endpoints require a complete definition.

firstActivatedAtstring | nullrequired

When the message first went live or was sent

idstringrequired

Unique identifier

Example: 6457e3ff70afca5d8c27dccc
lastActivatedAtstring | nullrequired

When the message most recently went live or was sent

objectenum<string>required

Object type identifier

Available options: outbound_message
Example: outbound_message
revisionintegerrequired

Campaign version returned by GET. Optionally send it with a mutation to reject stale changes.

Required range: 0 <= x
scheduleSyncPendingbooleanrequired

The schedule is saved. Timer synchronization is queued or pending recovery. It does not require another activation request.

stateenum<string>required

Lifecycle state of the message. Use the state endpoint to change it.

Available options: draft, live, paused, scheduled, suspended, sent
Example: draft
updatedAtstringrequired

ISO 8601 timestamp when last updated

Example: 2026-09-03T12:00:00.000Z
updatedBystringrequired

Admin ID that last updated the message

Example: 6438a1efda3640f8feb72121