Publish a message to a custom channel
PublishCustomChannelMessagePublish custom channel messages into HubSpot Conversations to sync external communications. Configure senders, recipients, and content via fields or JSON.
Instructions
Publish a message over a specified custom channel into HubSpot Conversations — used by custom-integrated messaging channels to sync external messages into HubSpot. Provide the message either as typed fields or as a stringified JSON request_body (typed fields win on conflict). Requires channelAccountId, senders and recipients. Call with mode='get_request_schema' to inspect the raw request body schema.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'get_request_schema' returns the request body schema; default is 'execute' | |
| text | No | Plain text content of the message | |
| senders | No | Message senders, e.g. [{deliveryIdentifier: {type: 'CHANNEL_SPECIFIC_OPAQUE_ID', value: 'user-1'}, name: 'Name'}] | |
| rich_text | No | Rich text/HTML content | |
| timestamp | No | ISO 8601 timestamp of the message | |
| recipients | No | Message recipients, same shape as senders | |
| attachments | No | Attachments, e.g. [{fileId: '123', type: 'FILE'}] | |
| request_body | No | Optional stringified JSON request body (see mode='get_request_schema') | |
| in_reply_to_id | No | ID of the message this is a reply to | |
| custom_channel_id | Yes | The unique ID of the custom channel where the message will be published | |
| channel_account_id | No | The channel account the message belongs to | |
| integration_thread_id | No | Your external conversation/thread ID | |
| associate_with_contact_id | No | CRM contact ID to associate the message with | |
| integration_idempotency_id | No | Unique ID for idempotency |