Update an Outbound message
PATCH changed fields only. Required: type (unchanged). revision and idempotencyKey are optional. Content, options, and schedule merge by key. Arrays replace; audience and trigger replace as whole expressions. Null clears nullable fields; trigger:null removes browser conditions. A discriminated object replaces the old object if its type changes (for example admin sender to fibi). Translation maps merge by locale; a string replaces the map with English only. Unknown keys are rejected. The merged definition is fully validated. Email has no browser trigger. Example: {"type":"chat","content":{"text":"Updated welcome"}}. A supplied stale revision returns 409 revision_conflict; GET and review the current campaign before another edit.
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
Response
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