Channels let one of an account’s agents talk on a channel the end customer owns. Scope: channels. Every route is per account; a key bound to another account gets 403 account_mismatch.

Kinds

A kind that isn’t set up on the deployment always answers 400 channel_kind_unavailable with a plain reason, never a broken link. One agent has at most one connection per kind (409 channel_already_connected), and one Slack workspace or address belongs to one account in a project.

Connection object

status is pending, connected or failed (error says why).

Messages that arrive

Inbound messages on a connected channel go to the agent, and to your webhooks as message.received with account_id, agent_id, channel, from and text. See Webhooks.

For contributors

Connection records are the platform_channel_connections table (migration 075_platform_channel_connections.sql). Read live connections with status = 'connected' AND deleted_at IS NULL. The runtime side (binding the address or Slack team to the agent) is cmd/allternit-api/src/platform_twin.rs.