# Channels

> Reach an agent from Discord, Slack, KakaoTalk, NaverTalk, or WhatsApp — how pairing works, who is allowed to invoke it, and what an agent will not do there.

A **channel** lets people reach an agent from outside Endue. Pair an agent to a messaging platform and it answers there, in the thread, without anyone opening Endue.

## When to use it

When the people who need the agent are already somewhere else — a team in Slack, a community in Discord, customers messaging your business on KakaoTalk, NaverTalk, or WhatsApp. A channel puts the agent where the question is asked.

This is the opposite direction from the [Slack connector](/docs/connect/slack/), which lets an agent *read and write in* a chat service as part of its own work. The two are independent, and you can use both.

## Available channels

| Channel | How it connects | How people call the agent |
| --- | --- | --- |
| **Discord** | Paste a bot token — server, endpoint, and allow list are worked out for you | `/ask` in the server |
| **Slack** | Two tokens from your Slack app (Socket Mode — no public endpoint needed) | Mention the app; it replies in a thread |
| **KakaoTalk** | Paste the webhook URL Endue issues into your chatbot builder's skill server | Message the channel |
| **NaverTalk** | Enter the outbound API key, paste the webhook URL into Partner Center | Message the TalkTalk account |
| **WhatsApp** | Enter the Cloud API access token, register the webhook URL with your Meta app | Message the business number |
| **Telegram** | — | Coming soon |

Two shapes underneath: for Discord and Slack, Endue holds a token and talks *out* to the platform. For KakaoTalk, NaverTalk, and WhatsApp, the platform calls *in* to a webhook URL Endue issues — you paste that URL into the provider's console. NaverTalk and WhatsApp also need an outbound credential, because replying requires their own authentication.

## Pair a channel

<Steps>

1. **Open Channels** in [Agent Builder](/docs/build/agent-builder/), under the agent's Pairing section, and pick the provider.

2. **Fill in what that provider needs** — a bot token, two app tokens, or an outbound key. The form names each field.

3. **For inbound providers, copy the webhook URL Endue shows you** and paste it into the provider's console: the KakaoTalk chatbot builder's skill server, NaverTalk's Partner Center, or your Meta app's webhook settings.

4. **For Discord and Slack, invite the bot to the server or workspace.**

   <Aside type="caution" title="Invite the bot before you expect it to answer">
     A paired channel whose bot has not been invited looks connected but never
     responds. If a channel goes quiet after working, check that the bot is still
     in the server and reconnect the pairing if it was removed.
   </Aside>

</Steps>

## Who is allowed to invoke it

A channel is a door into an agent that has your connections bound to it, so every pairing carries an invocation policy:

| Policy | Who can invoke |
| --- | --- |
| **Only me** | The account that paired the channel, plus anyone on the allow list |
| **Only listed people** | The allow list, and nobody else |
| **Everyone in the channel** | Anyone who can reach the bot in that server or workspace |

Someone who is not allowed gets a short refusal rather than silence, and their request appears in the pairing's panel — you can add them to the allow list from there, or add an ID by hand.

<Aside type="caution" title="Open channels are open to everyone present">
  "Everyone in the channel" means every member of that server or workspace can
  talk to the agent, using whatever you bound to it. Scope the agent accordingly —
  a channel-facing agent should not hold your inbox.
</Aside>

## What a channel conversation is

A conversation started from a channel is a real conversation, with the same history, [memory](/docs/capabilities/memory/), and [artifacts](/docs/capabilities/artifacts/) as one you start in Endue. You can open it in Endue afterwards and continue there.

The agent knows who spoke. In a channel where several people talk to it, the messages are attributed, so it can answer *"what did I ask you earlier"* correctly for each person.

## What an agent will not do in a channel

A channel run has nobody at the [approval](/docs/work/approvals/) gate in the way a chat run does, so treat it as unattended:

- Actions that send outward or delete are refused rather than held.
- A [question](/docs/work/questions/) the agent needs answered has to be answered in the thread; it cannot use the rich choice interface Endue shows.

An agent that answers questions, searches, and summarizes works well over a channel. One whose job is to send things does not.

## Limits

- Discord, Slack, KakaoTalk, NaverTalk, and WhatsApp today; Telegram is coming.
- One pairing per agent per provider.
- Replies arrive in the channel as the bot, not as you.
- Inbound providers (KakaoTalk, NaverTalk, WhatsApp) reply through the provider's own send path, so their message formatting is theirs, not Endue's.

## Related

<CardGrid>
  <LinkCard
    title="Slack connector"
    href="/docs/connect/slack/"
    description="The other direction — an agent reading Slack as part of its work."
  />
  <LinkCard
    title="Security and permissions"
    href="/docs/account/security/"
    description="What to bind to an agent other people can talk to."
  />
  <LinkCard
    title="Conversations"
    href="/docs/work/conversations/"
    description="What a channel thread becomes inside Endue."
  />
</CardGrid>
