When multiple Exante organizations share a single Slack workspace, the integration needs to know which organization should handle events from each channel. Channel mapping lets you explicitly assign Slack channels to organizations, ensuring messages are routed to the correct agent pipeline.
When you need this
Channel mapping is required when two or more Exante organizations are connected to the same Slack workspace (i.e. they share the same team_id). In this setup, the default team-based routing is ambiguous, so channels that aren’t explicitly mapped are silently skipped.
For single-org workspaces, channel mapping is optional — all events route to the only connected organization automatically.
How it works
- When a Slack event arrives, Exante checks if the channel has an explicit mapping.
- If a mapping exists, the event routes to that organization’s agent pipeline.
- If no mapping exists and the workspace is multi-org, the event is skipped with a warning log.
- If no mapping exists and the workspace is single-org, the event routes to that organization automatically.
API endpoints
All endpoints require authentication. The organization_uid can be passed as a query parameter or in the request body. If omitted, the authenticated user’s default organization is used.
Map a channel
Assign a Slack channel to an organization.
curl -X POST /api/integrations/slack/channels/map \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"channel_id": "C012ABCDEF",
"channel_name": "sales-team",
"organization_uid": "optional-org-uuid"
}'
| Field | Required | Description |
|---|
channel_id | Yes | The Slack channel ID (e.g. C012ABCDEF) |
channel_name | No | Human-readable channel name for reference |
organization_uid | No | Target organization. Defaults to the user’s default org |
Responses:
| Status | Meaning |
|---|
201 | Channel mapped successfully |
200 | Channel is already mapped to this organization (idempotent) |
400 | Missing channel_id or Slack integration not connected |
403 | User is not a member of the target organization |
409 | Channel is already mapped to a different organization |
List mappings
Retrieve all channel mappings for an organization.
curl -X GET "/api/integrations/slack/channels/mappings?organization_uid=<org-uuid>" \
-H "Authorization: Bearer <token>"
Returns an array of mapping objects, each containing the channel ID, organization UID, and any stored metadata (like channel name).
Remove a mapping
Delete a channel mapping for the current organization.
curl -X DELETE /api/integrations/slack/channels/map/C012ABCDEF \
-H "Authorization: Bearer <token>"
| Status | Meaning |
|---|
200 | Mapping removed successfully |
403 | User is not a member of the target organization |
404 | No mapping found for this channel and organization |
Each channel can only be mapped to one organization at a time. To reassign a channel, remove the existing mapping first, then create a new one.
Troubleshooting
| Symptom | Cause | Fix |
|---|
| Bot ignores messages in a channel | Channel is unmapped in a multi-org workspace | Map the channel using the POST endpoint above |
409 Conflict when mapping | Channel is already mapped to another org | Remove the existing mapping first, then remap |
400 — Slack integration not connected | The target organization has no valid Slack integration | Connect Slack from Settings > Integrations first |