Telegram
Connect a Telegram bot to Gumm and interact with your assistant from any device via the Telegram app.
Overview
Once configured, you can send messages to Gumm through Telegram exactly as you would in the web dashboard. The full pipeline runs — LLM, memory, modules, tool calls — all from a Telegram conversation.
Prerequisites
- A Telegram account
- A bot created via @BotFather (free, takes 2 minutes)
- Your Gumm instance running and accessible
Step 1 — Create a Telegram bot
- Open Telegram and start a conversation with @BotFather
- Send
/newbot - Choose a display name (e.g. “My Gumm”)
- Choose a username (must end in
bot, e.g.my_gumm_bot) - BotFather replies with a token — copy it. It looks like:
123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
Step 2 — Find your Telegram Chat ID
You need to whitelist your Telegram user ID so only you can send messages to Gumm.
- Start a conversation with @userinfobot on Telegram
- It replies with your numeric User ID (e.g.
12345678) - Copy this number
Step 3 — Configure in Gumm
During the Setup Wizard
Step 5 of the wizard covers Telegram. Enter:
- Bot token — from BotFather
- Webhook URL (optional) — your public Gumm URL (e.g.
https://gumm.example.com). Leave blank to use polling mode - Allowed Chat IDs — your numeric user ID (comma-separated if multiple)
After setup — from the Brain dashboard
- Go to Brain (
/brain) - Find the Telegram section
- Click Configure
- Enter the token, webhook URL, and allowed chat IDs
- Click Save
Polling vs Webhook mode
Gumm supports two modes for receiving Telegram messages:
| Mode | When to use | How it works |
|---|---|---|
| Polling (default) | Private network (Tailscale, LAN); no public URL | Gumm continuously polls Telegram’s servers for new messages |
| Webhook | Server reachable over the internet with HTTPS | Telegram pushes messages to your Gumm URL |
Polling is automatic when no Webhook URL is provided. It works well even on a private VPN network with no public domain.
Webhook requires your Gumm instance to be accessible at a public HTTPS URL. If you’re using Tailscale, you can use Tailscale certificate + Caddy for this.
Security — Allowed Chat IDs
Gumm only responds to messages from chat IDs in the allowlist. All other messages are silently ignored. This prevents strangers from interacting with your assistant if they discover your bot username.
Your bot username is technically public on Telegram. The chat ID whitelist is your primary security control.
Always set allowedChatIds to at least your own user ID.
Sending messages to Gumm via Telegram
Once configured, open your bot in the Telegram app and simply start chatting. Your messages go through the exact same pipeline as the web dashboard — including all active modules, memory, and the full system prompt.
Troubleshooting
| Problem | Solution |
|---|---|
| Bot doesn’t respond | Check that your chat ID is in the allowlist. Check docker compose logs gumm |
| Bot responds to everyone | Your chat ID whitelist may be empty. Go to Brain → Telegram → Configure and add your ID |
| Webhook not working | Ensure the URL is HTTPS and publicly reachable. Try switching to polling mode |
| Messages arrive delayed | This is normal in polling mode during light traffic. Polling interval is a few seconds |
| Invalid token error | Regenerate the token via BotFather (/revoke) and update it in the Brain dashboard |