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

# Channels

> Reach an agent from Slack, Microsoft Teams, Discord, email, Linear, web chat and public chat links

Channels are where people reach an agent. A message that arrives on a channel runs the agent, and the reply is posted back in the same thread, so replying continues the conversation.

Open an agent and go to its **Channels** tab to set them up. Public chat links live on the **Overview** tab.

| Channel | How people use it | Set up in |
| - | - | - |
| **Slack** | @mention the agent's bot; reply in the thread | **Channels** tab, Slack row |
| **Microsoft Teams** | @mention the agent's bot; automations can post into its channels | **Channels** tab, Teams row |
| **Discord** | @mention the agent's bot; automations can post into its channels | **Channels** tab, Discord row |
| **Email address** | Email the agent's address; reply to continue | **Channels** tab, **New Channel** |
| **Linear project** | Work with the agent from a Linear project | **Channels** tab, **New Channel** |
| **Web chat** | Chat in DataGen; automations can post results into your Chat list | Always available |
| **Public chat link** | Anyone with the link chats without signing in | **Overview** tab, **Public chat links** |

The agent must be **Enabled** to answer on any channel. See [Triggers](/agents/triggers#enable-or-disable-an-agent).

***

## Slack, Microsoft Teams and Discord

Each agent gets its own bot on each chat platform -- its own name, its own @mention -- using a chat app you create in your Slack workspace, Microsoft tenant or Discord server. An agent has at most one chat app per platform, so the **Channels** tab always shows one row for each.

### Connect a chat app

<Steps>
  <Step title="Start the setup">
    On the agent's **Channels** tab, click the **Not connected** row for Slack, Microsoft Teams or Discord. Enter the bot's display name and a description, and click **Create**.
  </Step>

  <Step title="1 · Create the app on the platform">
    * **Slack**: click **Generate manifest**, then create the app at api.slack.com/apps with **From a manifest** using the generated `manifest.yaml`, and install it to your workspace.
    * **Microsoft Teams**: click **Generate registration**. Register an Azure Bot with the generated **Messaging endpoint**, then upload the app package (`manifest.json`) through Teams Admin Center.
    * **Discord**: click **Show setup steps** and create the application by hand at discord.com/developers/applications. Messages arrive over an outbound Gateway connection, so no public URL is needed.
  </Step>

  <Step title="2 · Paste the credentials">
    Copy the app's credentials into the form and click **Save credentials**. They are stored write-only; leave a field blank to keep the stored value.

    | Platform | Credentials |
    | - | - |
    | Slack | App ID, Signing secret, Bot token (`xoxb-...`) |
    | Microsoft Teams | Microsoft App ID, Client secret, tenant ID |
    | Discord | Application ID, Public key, Bot token |
  </Step>

  <Step title="3 · Approve users">
    Under **User access**, map platform users to DataGen accounts. Users who message the bot before they are mapped appear under **Pending requests** for approval. Mapping never bypasses workspace membership. Discord bots cannot read email addresses, so Discord users are always mapped by hand.
  </Step>

  <Step title="4 · Pick operating channels (Teams and Discord)">
    Under **Operating channels**, choose the channels the bot may post into. These become the destinations an [automation](/agents/triggers#automations) can post its results to.
  </Step>
</Steps>

Once the app is **Active**, @mention the bot in a channel to run the agent. The reply arrives in a thread; replying in that thread continues the same conversation. Use **Disable** on the app to pause it, or **Delete** to remove it.

<Note>
  Automations post results to Teams and Discord operating channels and to web chat. To have a scheduled run post to Slack, give the agent a Slack MCP tool and ask for it in the automation's prompt. See [Tools](/agents/tools).
</Note>

***

## Email

Every agent gets an email address under `@agents.datagen.dev`, based on the agent's name. Email it to run the agent; the agent replies on the same thread, and replying again continues the conversation. Mail from workspace members runs the agent; mail from other senders is rejected.

To add another address, click **New Channel**, choose **Email address**, and leave the target blank to auto-generate a unique address (or enter one under `@agents.datagen.dev`).

## Linear

Click **New Channel**, choose **Linear project**, and enter the Linear project key (for example `ENG`). Under **Credential reference**, enter the name of the Linear credential in the agent's vault that the agent's tools use to authenticate.

Channels created with **New Channel** have an **Active** switch. When it is off, tools cannot use that target and incoming messages are ignored. A channel's kind and target cannot be changed; delete it and create a new one instead.

## Web chat

Workspace members can chat with an enabled agent from **Chat** in the sidebar. Automations can also post into web chat: each run opens a new private conversation in your Chat list, titled after the automation.

***

## Public chat links

A public chat link lets anyone chat with the agent without signing in -- for example a support bot on your website or an HR assistant for new hires.

<Warning>
  Visitors' messages run as you and use your credits. Set a budget and a daily limit on every link you share widely.
</Warning>

<Steps>
  <Step title="Create the link">
    On the agent's **Overview** tab, find **Public chat links** and click **New link**.
  </Step>

  <Step title="Fill in the details">
    | Field | Notes |
    | - | - |
    | **Label (only you see this)** | For your own bookkeeping, for example "Support bot -- website footer" |
    | **Display name (visitors see this)** | Defaults to the agent's name |
    | **Greeting (optional)** | Shown before the first message |
    | **Total message budget** | Lifetime cap on messages; blank means unlimited |
    | **Daily message limit** | Resets every day; blank uses the system default |
    | **Expires on** | Blank means no expiry |
  </Step>

  <Step title="Share it">
    Click **Create link**, then **Copy link**. The URL looks like `https://<your-datagen-app>/c/<token>?lang=en`; the `lang` parameter opens the chat in the language you were using when you copied it.
  </Step>
</Steps>

Each link shows its status (**Live**, **Paused**, **Expired**, **Budget spent** or **Revoked**), messages used, today's usage, and the per-visitor rate limit.

* **Pause** and **Resume** turn a link off and on.
* **Edit** changes the label, display name, greeting, limits and expiry.
* **Revoke** stops the URL immediately and cuts off anyone chatting. Recorded conversations are kept. It cannot be undone; create a new link instead.

Public link runs appear in [Agent Logs](/agents/versions-and-logs) with the **Public Chat Link** trigger and an anonymous visitor id.

***

## Workspace notifications

**Workspace Settings → Channels** turns channels on for the whole workspace: built-in **Email** notifications for agent runs and updates, and a connected **Slack** workspace with the Slack channels it can use.

## Next

<CardGroup cols={2}>
  <Card title="Versions and Logs" icon="clock-rotate-left" href="/agents/versions-and-logs">
    Roll back a version and inspect every run and conversation
  </Card>

  <Card title="Templates" icon="copy" href="/agents/templates">
    Start from a pre-built agent
  </Card>
</CardGroup>


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