message.comDevelopers

What is a channel?

A channel is the medium a customer used to reach you. In Message.com, the conversation channel identifies its source. The channel affects routing, available actions and provider-specific delivery behavior.

Definition

Channel describes "how". It does not describe what was said, when, or with whom. A conversation can change agents, change departments, change status, change priority. Its channel does not change. If a phone call gets converted to a ticket for follow-up, that follow-up lives on a new conversation with channel: "ticket", not on the original call.

Common conversation sources include:

ValueSource
chatLive chat through the embedded widget on a site.
ticketEmail arriving at one of your inbound addresses.
callInbound phone call to one of your phone numbers.
imessageMessages for a provisioned iMessage line.
smsSMS conversations on a configured messaging route.
whatsapp, instagram, fbMeta channel records. Public connection availability depends on provider approval and the current platform rollout.

Routing

Channel is the first filter in routing. An agent without channels: ["calls"] in their permission array never sees a call, even if they belong to the right department. This lets you hire dedicated phone agents who do not get pulled into chat triage and vice versa.

Reporting

Channel filters are endpoint-specific. The Reports API exposes channel breakdowns out of the box. Common slices include first response time by channel, satisfaction by channel, and abandonment rate by channel.

Channel vs message kind

Channel describes the conversation. Message kind describes individual messages inside it. A single conversation can contain visitor messages, agent replies, systemevents, and AI replies. Private notes are separate records. All of those messages share the conversation's channel, even though only one of them came from the customer.

Why a single field

Most legacy stacks treat chat, ticket, and call as different product lines with different databases. The unified inbox approach reduces that to a single string field. The consequence: one queue, one search index, one customer history, one AI context window.

Handle channel values safely

Do not assume that conversation channels and agent permission names are identical. For example, a call conversation uses call, while its agent permission is calls. Handle unknown values without crashing, and check the endpoint schema before sending a filter. A channel in stored data does not prove that public signup for that provider is enabled.