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

# Telegram

> Receive monitor alerts in a Telegram chat by connecting the UptimeIO bot

The Telegram destination sends alerts to a Telegram chat through the UptimeIO bot, `@UptimeIOAlertBot`. You connect by messaging the bot; there is nothing to copy or paste, and no verification code.

## Connect Telegram

<Steps>
  <Step title="Open Destinations">
    Click **Destinations** in the sidebar, then **Add Destination**, then choose **Telegram**.
  </Step>

  <Step title="Open the bot">
    The dashboard shows a QR code and an **Open on desktop** link. Scan the code with your phone or click the link to open a conversation with `@UptimeIOAlertBot`.
  </Step>

  <Step title="Send /start">
    In Telegram, press **Start** (or send `/start`). The link you opened carries a one-time code that ties the chat to your organization. The link is valid for 24 hours.
  </Step>

  <Step title="Wait for confirmation">
    The dashboard detects the connection within a few seconds and shows **Successfully Connected** with your chat ID. If nothing happens within 5 minutes, click **Try Again**.
  </Step>

  <Step title="Choose events and save">
    Toggle which events go to Telegram (all are enabled by default; at least one must stay enabled), then submit the form. Finally, select the destination in each monitor's **Notifications** section.
  </Step>
</Steps>

<Note>
  Telegram destinations can only be set up from the dashboard, because connecting needs the bot link flow. An API key cannot create one: `POST /api/integrations` with `"type": "TELEGRAM"` returns `403` with code `JWT_REQUIRED` and the message `Pushover and Telegram integrations can only be set up from the dashboard. Sign in to the dashboard and add the integration there.` Once it exists, you can [assign it to monitors through the API](/api-reference/monitors/update) with `notification_target_ids`.
</Note>

<Info>
  An organization has one Telegram destination. Connecting again updates the existing destination rather than creating a second one.
</Info>

## Group chats

The destination stores a Telegram chat ID. Direct chats have positive IDs and groups have negative IDs, so a group chat is supported as a target.

## Events

| Event | Preference key |
| - | - |
| Monitor goes down | `on_failure` |
| Monitor recovers | `on_recovery` |
| SSL certificate warnings | `on_ssl_expiry` |
| Domain expiry warnings | `on_domain_expiry` |
| Response time exceeds threshold | `on_slow_response` |
| Response time returns to normal | `on_slow_response_resolved` |

## Troubleshooting

| Issue | Solution |
| - | - |
| "This connection link has expired or is invalid" | Go back to the dashboard and generate a new link. |
| Dashboard stays on "Waiting for connection" | Make sure you pressed **Start** in the chat opened from the dashboard link, not a different chat with the bot. |
| No alerts arrive | Confirm the destination is assigned to the monitor and the event is enabled. |

## Next steps

<CardGroup cols={2}>
  <Card title="Setting Up Alerts" icon="bell" href="/essentials/setting-up-alerts">
    Assign destinations to monitors
  </Card>

  <Card title="Pushover" icon="mobile" href="/integrations/pushover">
    Push notifications to your phone
  </Card>
</CardGroup>


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