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

# Messaging channels (Slack, Teams)

> Run your conversation flow inside a Slack channel or Microsoft Teams chat.

Slack and Teams give your flow a presence inside the tools your team and customers already use. The flow handles DMs, mentions, or activity in specific channels — whatever you configure.

## When to use messaging channels

* Internal IT or HR helpdesks where employees ask in Slack/Teams.
* Customer support communities where you already host a shared Slack workspace.
* Team-side notifications: the flow sends summaries / handoffs into a Slack channel.

## Before you start

You need an **integration connection** to Slack or Teams. Set this up in **Integrations** → pick the app → authorise.

Slack has three connection variants:

| Variant               | What it gives you                                |
| --------------------- | ------------------------------------------------ |
| **Slack bot**         | A bot user that joins channels you invite it to. |
| **Slack (OAuth app)** | Full OAuth flow with user-installed permissions. |
| **Slackbot built-in** | A simpler built-in bot for quick setups.         |

Teams uses a single connection type — Microsoft Teams via OAuth.

[Manage integration connections →](/features/integrations)

## Adding a Slack channel

<Steps>
  <Step title="Add Channel → Slack">
    Choose the Slack variant your connection uses.
  </Step>

  <Step title="Pick the connection">
    Choose from the connected Slack workspaces.
  </Step>

  <Step title="Set the scope">
    | Scope                    | Behaviour                                                                 |
    | ------------------------ | ------------------------------------------------------------------------- |
    | **DM**                   | The bot handles direct messages sent to it.                               |
    | **Channel mentions**     | The bot handles messages that @mention it in any channel it's invited to. |
    | **All channel activity** | The bot handles every message in invited channels (high traffic).         |

    DM is the safest start.
  </Step>

  <Step title="Save and Deploy">
    Once deployed, your bot is live in the configured Slack workspace.
  </Step>
</Steps>

## Adding a Teams chat

<Steps>
  <Step title="Add Channel → Teams">
    Pick the Teams connection.
  </Step>

  <Step title="Set the scope">
    Teams supports DM and group chats. Pick which.
  </Step>

  <Step title="Save and Deploy">
    The flow now responds in Teams.
  </Step>
</Steps>

## How conversations are scoped

* Each **user × bot scope** is a separate conversation. Sarah DMing the bot in Slack is one conversation; Sarah DMing the bot in Teams is a different conversation.
* In channel mode, each thread is its own conversation. The bot replies in-thread.
* A user who pings the bot a week later in the same thread continues the same conversation (subject to session timeouts).

## Outbound messaging (Initiator mode)

In Initiator mode, **Start Conversation** lets you send a proactive message to a specific user or channel:

* Slack: pick a user (DM) or a channel.
* Teams: pick a user or chat.

The first actor sends an opener. Subsequent replies from that user/channel feed back into the same conversation.

## Rich content

Both channels support a subset of rich formatting:

| Element              | Slack            | Teams               |
| -------------------- | ---------------- | ------------------- |
| Plain text           | ✓                | ✓                   |
| Bold / italic        | ✓ (Slack mrkdwn) | ✓ (markdown subset) |
| Links                | ✓                | ✓                   |
| Bullet lists         | ✓                | ✓                   |
| Code blocks          | ✓                | ✓                   |
| Attachments / images | links only in v1 | links only in v1    |

The actor writes plain markdown; the platform translates to the channel-appropriate format.

## Anti-patterns

<Warning>
  **All channel activity in a busy workspace.** This makes the bot reply to *everything*. Use DM scope or channel mentions instead. Reserve all-activity scope for dedicated channels where the bot is the intended responder.
</Warning>

## Related: Telegram

Telegram is another messaging surface but with a different shape — it uses a bot you create in **@BotFather** instead of a workspace OAuth, and bots can only respond (no cold outreach). It has its own page: [Telegram channel →](/conversation-flows/channels/telegram)

## Next

<CardGroup cols={2}>
  <Card title="Telegram" icon="paper-plane" href="/conversation-flows/channels/telegram">
    Bot-driven messaging via @BotFather.
  </Card>

  <Card title="Phone" icon="phone" href="/conversation-flows/channels/phone">
    Voice calls via Twilio + LiveKit SIP.
  </Card>

  <Card title="Deploy a flow" icon="rocket" href="/conversation-flows/operate/deploy">
    Schedule the listener.
  </Card>
</CardGroup>
