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

# Telegram

> Connect your agent to Telegram: threading, typing indicators, inline keyboards, edit-in-place plans, and tool approval.

Use Telegram as a messaging channel for your agent. Novu keeps conversation context, shows typing during the turn, can update a plan card in place, and uses inline keyboard buttons for choices and tool approval.

## Capabilities

| Capability                                 | Support |
| ------------------------------------------ | ------- |
| Full context history                       | Yes     |
| Threaded replies                           | Yes     |
| Live typing indicator (custom status text) | Yes     |
| React with eyes on inbound messages        | Yes     |
| Plan card (markdown edit-in-place)         | Yes     |
| Rich text / markdown                       | Yes     |
| Tap-to-respond buttons (inline keyboard)   | Yes     |
| Emoji reactions                            | Yes     |
| Message edits in place                     | Yes     |
| Action / MCP tool approval                 | Yes     |
| MCP connect card                           | Yes     |
| Resolve conversation                       | Yes     |
| File sharing                               | Not yet |
| Streaming word-by-word                     | Not yet |

Full matrix: [Channels overview](/agents/channels/overview).

## Examples

### Inbound message

A user messages the bot. Novu adds an eyes reaction, shows typing with optional custom status text, updates a plan card while tools run, then replies with inline keyboard buttons.

### Tool approval

Gated tools post Approve once / Deny / Always allow. The handler resumes after the user selects an option.

## Setup

| Framework / Platform | Guide                                                                                                                             |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Custom code agent    | Follow a [connect guide](/agents/get-started/ai-sdk), then add Telegram as another provider                                       |
| Managed agent        | [Claude](/agents/get-started/claude-managed) or [AWS Claude](/agents/get-started/aws-claude), then link Telegram in the dashboard |

## Connect component

Use `TelegramConnectButton` from `@novu/react` so end users can link their Telegram chat to your agent. The button issues a `t.me/<bot>?start=<code>` deep link, opens it, and polls until the user presses **Start** in Telegram.

```tsx theme={null}
import { NovuProvider, TelegramConnectButton } from '@novu/react';

export function TelegramConnect() {
  const subscriberId = 'subscriber-id';
  const integrationIdentifier = 'telegram-integration-identifier';

  return (
    <NovuProvider
      applicationIdentifier={process.env.NEXT_PUBLIC_NOVU_APPLICATION_IDENTIFIER!}
      subscriberId={subscriberId}
    >
      <TelegramConnectButton
        integrationIdentifier={integrationIdentifier}
        connectLabel="Connect Telegram"
        connectedLabel="Connected to Telegram"
        onConnectSuccess={(endpointIdentifier) => {
          console.log('Connected', endpointIdentifier);
        }}
        onConnectError={(error: unknown) => {
          console.error(error);
        }}
        onDisconnectSuccess={() => {
          // Chat unlinked
        }}
      />
    </NovuProvider>
  );
}
```

Props and appearance options: [Connect components](/agents/custom-code-agent/connect-components#telegram-connect-button).

## Related

<Columns cols={2}>
  <Card href="/agents/custom-code-agent/building-blocks/reply" title="Reply" icon="message-square">
    Plain text, markdown, and interactive cards.
  </Card>

  <Card href="/agents/custom-code-agent/building-blocks/typing-indicator" title="Typing indicator" icon="ellipsis">
    Custom status text while the handler runs.
  </Card>

  <Card href="/agents/custom-code-agent/building-blocks/tool-approval" title="Tool approval" icon="shield-check">
    Approve / Deny before tools execute.
  </Card>

  <Card href="/agents/custom-code-agent/building-blocks/edit-sent-messages" title="Edit sent messages" icon="pencil">
    Update a sent message in place.
  </Card>

  <Card href="/agents/custom-code-agent/connect-components" title="Connect components" icon="plug">
    TelegramConnectButton props and appearance.
  </Card>
</Columns>
