> ## Documentation Index
> Fetch the complete documentation index at: https://docs.botcadence.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Slack

> Post to a default Slack member or channel, or route each send from IDs in the agent prompt

**Send Slack** posts a DM or channel message using the Slack **bot** on [Integrations](/docs/build/integrations/slack).

This is not inbound Slack chat. To receive workspace messages in Conversations, connect Slack under [Channels](/docs/deploy/channels/slack).

## Prerequisites

* A connected Slack integration (bot token)
* The bot invited to every channel you might post in — including channels you only use from the [prompt map](#route-from-the-agent-prompt)

## Enable

<Steps>
  <Step title="Open Tools">
    Open the workflow, select an **Agent**, **Supervisor**, or **Task**, then open **Tools**.
  </Step>

  <Step title="Turn it on">
    Under **Messaging**, enable **Send Slack**.
  </Step>

  <Step title="Pick the default destination">
    Select the Slack integration and a default **member** or **channel**. Every send uses this destination unless the [agent prompt](#route-from-the-agent-prompt) names a matching ID for this turn.
  </Step>
</Steps>

<Check>
  Trigger a test send with no extra IDs in the prompt. Confirm the DM or channel post arrives at the **default**, and that the bot is in that channel.
</Check>

<Note>
  Channel Slack does not replace this bot connection. Automations and the agent tool both need Integrations Slack. Automations use their own destination; they do not read this prompt map.
</Note>

## Default vs routing

The Tools modal always needs **one** default member or channel. That is the fallback.

You can also list **many** Slack member IDs and channel IDs in the node **Prompt / Instructions**. Treat that list as a routing table: when the conversation matches a row, the agent sends **this message** to that ID instead of the default.

<Warning>
  One Send Slack call posts to **one** destination. Listing several IDs in the prompt does not send to all of them. The agent picks the row that matches this turn. If nothing matches, it uses the default.
</Warning>

The agent writes the Slack **message text** from the conversation. You do not type the body in the Tools modal.

## Route from the agent prompt

Open the same **Agent** (or Supervisor / Task) node → **General** → **Prompt / Instructions**. Add a short map. Use IDs from Slack, not display names.

* **Member** IDs usually start with `U`
* **Channel** IDs usually start with `C`
* Each row: **when** to use it, **member** or **channel**, and the **ID**
* Never invent an ID. If the ID is not in the prompt, the agent must use the default

Copy IDs from Slack (member profile or channel details). After you change the prompt, **publish** the workflow so live conversations pick it up.

Example map (replace the IDs with yours):

```text theme={null}
Slack routing (use only IDs listed here; never invent IDs):
- Customer asks about an order or shipment → channel C012ORDERS
- Customer asks for a refund or chargeback → member U012REFUNDS
- Everything else → use the default destination configured on Send Slack
```

Worked example: default in the tool is an **ops** channel. The customer asks “Where is my order?” The agent posts to `C012ORDERS`, not ops. They ask a general question with no matching row. The agent posts to ops.

## Limits

* Pass **member** with a member ID and **channel** with a channel ID. The wrong type fails.
* Do not put comma-separated IDs on the tool. One ID per send.
* Invite the bot to every **channel** in the map before you test that route.
* Slack rejects IDs that do not exist or that this app cannot reach.

## Try the override path

<Check>
  Add the prompt map, publish, then ask something that should hit a routed channel or member. Confirm the post lands there. Ask something that should miss the map and confirm the **default** still receives it.
</Check>
