The Agent Channel object
POST /entities/:entityId/agent-channels
Bind a place to the Entity.
Body
Response (
201): the created Agent Channel object.
(platform, channelId) pair, the request is refused with 409 and the domain code AGENT_CHANNEL_PLACE_TAKEN_ERROR. Delete the other Entity’s binding first, then retry.
GET /entities/:entityId/agent-channels
List every Agent Channel bound to the Entity.
Response: an array of Agent Channel objects.
PATCH /entities/:entityId/agent-channels/:agentChannelId
Rename an Agent Channel. label is the only editable field. platform and channelId are set at create time and never move; to point the binding at a different place, delete this row and create a new one.
Body
Response: the updated Agent Channel object.
DELETE /entities/:entityId/agent-channels/:agentChannelId
Release the binding. After the delete the place is free, and another Entity can bind it.
Response (200): the removed Agent Channel object.
GET /agent-channels?platform=…&channelId=…
Reverse lookup: given a place, return the Entity that speaks in it. This route is not scoped to an Entity because the caller only knows the place. The Sintropix agent calls this once at the start of a thread to learn which company the conversation is about.
Query parameters
Response: the Agent Channel object, plus:
404 with the domain code AGENT_CHANNEL_PLACE_UNBOUND_ERROR. The agent reads this as “no one speaks here” and stays silent.
Choose the agent’s model in a Slack channel
In a bound Slack channel, anyone in the channel can pick the model the Sintropix agent uses with the/model slash command.
Status codes
Domain error codes
Deleting an Entity that still has Agent Channels bound to it is refused; release the bindings first.

