Set an Outbound message state
Moves a message through its lifecycle using the same rules as the dashboard.
Request Body
targetState- One ofdraft,scheduled,live,pausedorsent
State Rules
liveactivates a dynamic-audience campaignsentstarts a fixed-audience send; it does not confirm recipient deliveryscheduledrequires a futureschedule.startsAtpausedstops a live or sent campaign; dynamic campaigns can resume withlivedraftcancels a scheduled campaign; scheduled campaigns cannot move directly topaused
The message definition must be complete before it can go live. Invalid transitions return 400.
Permissions
Requires the manage_outbound_state permission.
Response
Returns the message with its new state and activation timestamps.
Errors
400- Invalid message ID, invalid transition or incomplete content403- Your plan does not include this message channel404- Message not found or doesn't belong to your organization
Version Availability
This endpoint is only available in API version 2026-09-03.pulsar and newer.
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.
Body
Optional retry protection. Keep the same key and request when retrying. Without a key, each request is a new operation.
8 - 128^[a-zA-Z0-9_.:-]+$welcome-campaign-2026-10-01Campaign version returned by GET. Optionally send it with a mutation to reject stale changes.
0 <= xResponse
Success
Conversation tag IDs applied to conversations started from this message
Editable definition. A dashboard draft or template can have no survey choices yet. The write and validation endpoints require a complete definition.
Object type identifier
outbound_messageoutbound_messageCampaign version returned by GET. Optionally send it with a mutation to reject stale changes.
0 <= xThe schedule is saved. Timer synchronization is queued or pending recovery. It does not require another activation request.
Lifecycle state of the message. Use the state endpoint to change it.
draft, live, paused, scheduled, suspended, sentdraft