Set Outbound message tags
Replaces the conversation tags of a message. Conversations that start from the message inherit these tags.
Request Body
tagIds- Array of conversation tag IDs (max 20). Send an empty array to remove all tags
Tags must exist in your organization's shared conversation tag pool. See the Conversation Tags endpoints.
Response
Returns the updated message.
Errors
400- Invalid message ID or unknown tag ID404- 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