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

# Chat channels

> Route messages and phone calls from Slack, WhatsApp, MS Teams, email, SMS, Telnyx Voice, GitHub, and your own apps to agents through the Tilde gateway.

A chat channel connects a place where people talk to an agent. Every message arrives at the gateway first. The gateway checks who sent it, screens it, and only then delivers it to the agent. Replies travel back the same way.

Agents do not integrate with chat providers themselves. They call one channel tool, and Tilde handles the provider's API, credentials, and webhooks.

## Supported channels

| Channel | What it connects | Inbound delivery |
| - | - | - |
| Slack | Channels, threads, and direct messages | Signed webhooks |
| MS Teams | Teams channels and chats | Signed webhooks |
| WhatsApp | WhatsApp Business conversations | Signed webhooks |
| Telnyx WhatsApp | WhatsApp conversations through Telnyx | Signed webhooks |
| Telnyx Voice | Realtime audio: inbound phone calls to an agent | Signed webhooks and a realtime WebSocket |
| AgentMail | Email inboxes for agents | Signed webhooks |
| Linq | iMessage, RCS, and SMS | Signed webhooks |
| GitHub | Issues, pull requests, and comments | Signed webhooks |
| Native Tilde chat | Your own web and mobile apps | An API with scoped tokens |

## Connect a channel

<Steps>
  <Step title="Create a connection">
    In **Connections**, add the provider and complete its setup. See [Connections](/docs/connections).
  </Step>

  <Step title="Assign it to an agent">
    Open the agent's **Chat providers** tab and assign the connection.
  </Step>

  <Step title="Choose who can message the agent">
    Set the access mode to private, public, or disabled. See [End-user access](/docs/iam#end-user-access).
  </Step>

  <Step title="Point the provider at Tilde">
    Copy the webhook URL that Tilde gives you into the provider's settings.
  </Step>
</Steps>

<Info>
  Public chat providers deliver webhooks from the internet, so this one route needs a public HTTPS address. Nothing else does. See [Network exposure](/docs/security/overview#network-exposure).
</Info>

Tilde verifies every webhook's signature, rejects anything that fails, and ignores duplicate deliveries.

## Build chat into your own app

Native Tilde chat lets your own applications talk to agents without a third-party provider.

| Package | Purpose |
| - | - |
| `@trytilde/chat-ui` | React components for conversations: history, live updates, attachments, replies, search, and read state. |
| `@trytilde/chat-next` | Next.js integration. |
| `@trytilde/chat-proxy` | A server-side proxy that authenticates your user, then replaces credentials and identity headers before it calls Tilde. |

Your server authenticates the user and asks Tilde for an ingress token, optionally restricted to one thread. The browser never holds a management credential, and Tilde never trusts an identity that a browser supplies.

## Realtime voice

Agents can take phone calls and speak in realtime. The **Telnyx Voice** channel connects a Telnyx phone number to an agent. Each call becomes a normal [session](/docs/sessions), with the same access checks, audit trail, and review tools as a text conversation.

<Tip>
  We recommend a [sidecar deployment](/docs/deployment/sidecar-agents) for voice agents. A caller hears every millisecond of delay. With a sidecar, runtime calls and LLM requests stay on loopback beside the agent, which gives the lowest latency between a caller finishing a sentence and the agent starting its reply.
</Tip>

### Voice profiles

Voice settings belong to the agent. In the agent editor, select a voice profile, its models and voice, and a maximum call duration.

| Profile | How it works | Use it when |
| - | - | - |
| **Telnyx Conversation Relay** | Telnyx handles speech recognition and speech synthesis for the call. Tilde receives the caller's words as text, invokes your agent, and streams the agent's text reply back to Telnyx to be spoken. | You want phone calls with your existing text agent, tools, and model. This profile is phone-only. |
| **Text agent with speech** | Tilde transcribes incoming audio, invokes your agent, and speaks its streamed text reply. | You want voice in your own app, with your existing text agent. |
| **OpenAI Realtime** | A realtime model generates spoken responses directly. Tilde records the final transcripts. | You want the lowest latency and the most natural speech. |

With the first two profiles, your agent code does not change. It receives each spoken turn as text, and replies through the same channel tool. The OpenAI Realtime profile uses its own configured instructions, and does not inherit your agent's tools.

### Connect Telnyx Voice

You connect your existing Telnyx account, Voice API application, and phone number as a **Telnyx Voice** connection, and choose a default agent. Tilde can configure the Telnyx webhook for you, or give you the URL to set yourself. You then pick the agent's voice profile, transcription model, voice, and language in the agent editor.

<Info>
  A live call is bidirectional, so Telnyx must reach your public ingress over HTTPS and a secure WebSocket. See [Network exposure](/docs/security/overview#network-exposure).
</Info>

Conversation Relay needs no separate speech provider key. Your agent keeps using its own text model through an [inference provider](/docs/inference-providers).

### How calls behave

* **Interruptions.** Callers can interrupt the agent. Tilde records what the agent generated and what the caller actually heard, so the agent's next turn stays coherent.
* **Duration.** Tilde ends a call at the agent's configured maximum duration.
* **Recordings.** Tilde stores call transcripts in the session. It does not retain audio recordings.
* **Caller identity.** A caller ID identifies the participant for [access control](/docs/iam#end-user-access). It never authorizes access to a person's own tools.

## How messages are scheduled

Each agent chooses what happens when a message arrives while it is still responding. Set this in the agent's **Capabilities** tab.

| Mode | Behaviour |
| - | - |
| **Queue** | Finish the active response, then process each message separately. This is the default. |
| **Interrupt** | Cancel the active response and start fresh work. |
| **Queue and batch** | Combine pending messages into the next response. |

Tilde owns this policy. Your agent code handles one invocation at a time and honours its cancellation signal.

## How agents reply

An agent replies by calling the channel's send tool, such as `sendMessage`. Each provider owns its tool's schema and formats, so an agent on Slack can use Slack formatting, and an agent on email can set a subject.

Model output is never sent automatically. A reply goes out only when the agent calls a channel tool. In Tilde Enterprise, it then passes through [response guards](/docs/security/middleware) before it reaches the provider.

## Review conversations

Every conversation is a session. Review its messages, reasoning, and tool calls in the agent's [Sessions](/docs/sessions) tab.
