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

# Channels Overview

> Bring the Bag of words analyst to messaging tools and connect your own applications with OAuth

Channels connect the Bag of words analyst to the messaging tools your team already uses. Once a channel is integrated, users can ask data questions in plain language — from a Slack DM, a Teams channel, a Google Chat space, a WhatsApp message, or an email — and get answers with real data, without opening the BOW app.

<CardGroup cols={2}>
  <Card title="Slack" icon="slack" href="/channels/slack">
    Socket Mode by default — no public URL needed. Includes the Slack Agent experience.
  </Card>

  <Card title="Microsoft Teams" icon="comment" href="/channels/teams">
    Azure Bot–based integration for 1:1 chats and channel @mentions.
  </Card>

  <Card title="Google Chat" icon="google" href="/channels/google-chat">
    Pub/Sub-based — outbound-only, enterprise-friendly, no public URL needed.
  </Card>

  <Card title="WhatsApp" icon="whatsapp" href="/channels/whatsapp">
    Meta WhatsApp Business Cloud API integration.
  </Card>

  <Card title="Email" icon="envelope" href="/channels/email">
    Give the analyst its own mailbox — send answers and (optionally) receive questions.
  </Card>

  <Card title="MCP" icon="plug" href="/using-bow/mcp">
    Connect Claude, Cursor, or any MCP client with a personal token or an admin-registered OAuth app.
  </Card>

  <Card title="OAuth Apps" icon="key-round" href="/channels/oauth-apps">
    Let your own applications sign users in to BOW and call the BOW API on their behalf.
  </Card>
</CardGroup>

## How channels work

All chat channels share the same core model:

* **Account linking** — every platform user maps to a BOW account, so all queries run with that user's permissions. On platforms that vouch for the user's email (Slack, Teams, Google Chat), accounts are **auto-linked by email** when it matches an existing BOW user (this can be disabled per integration). Otherwise, the bot sends a one-time verification link on first contact.
* **Thread = conversation** — each thread maps to a single BOW report. Replies in a thread continue the same conversation and context; a new message starts a new one. Every conversation is saved as a report in BOW, with a link posted back into the chat.
* **Permission-aware data access** — in public channels, only public agents (data sources) are queried, since answers are visible to everyone. In DMs, the user's private agents are available too.
* **Status feedback** — the bot signals progress while it works (for example 👀 → ✅ reactions on Slack, or a "Working on it…" message on Google Chat).
* **Per-agent channel availability** — each agent (data source) can be enabled or disabled per channel from its settings, so you control which data is reachable from which surface.

## Connectivity at a glance

Channels differ in how events reach your BOW server — which matters if your deployment sits behind a firewall with no public URL.

| Channel | How events arrive | Public URL required? |
| - | - | - |
| Slack (Socket Mode, default) | Outbound WebSocket to Slack | No |
| Slack (HTTP webhook) | Slack posts to your webhook | Yes |
| Google Chat | Outbound Pub/Sub pull from Google Cloud | No |
| Microsoft Teams | Azure Bot posts to your webhook | Yes |
| WhatsApp | Meta posts to your webhook | Yes |
| Email | Outbound SMTP/IMAP to your mail provider | No |

<Note>
  All channels and OAuth apps are configured by an admin under **Settings → Channels** in BOW.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.