Connect Telegram to Claude: A Working Cowork Automation Guide
A tested, step-by-step way to connect Telegram to Claude Cowork using a bot token instead of the native connector, plus the fixes for every failure mode that actually happens.
Why connect Telegram to Claude at all
Why the built-in Telegram connector often fails
Step 1: Create your Telegram bot
/newbot. Give it a display name, then a username ending in bot.
3. BotFather replies with a bot token — a string like 123456789:ABCdefGhIJKlmNoPQRstuVwxYZ. Copy it somewhere safe. Anyone who has this token can control your bot, so don't paste it into a public chat, a shared doc, a screenshot, or an AI chat transcript you might later publish or share.
4. The step almost everyone skips: open a chat with your new bot and send it any message — hi or /start works. Telegram bots cannot message you first; you have to message the bot before it can message you back. Skip this and everything downstream fails, and it will look like a technical problem when it's really just this one click.Step 2: Get your chat ID through Cowork
<TOKEN>).
Cowork will read the response and pull the number out of result[].message.chat.id. If it comes back empty, you skipped messaging the bot in Step 1 — send it one more message and ask again. getUpdates only returns messages it hasn't returned before, so a second message after an empty result usually resolves it.Step 3: Give Cowork network access to Telegram
Step 4: Test before you automate
Troubleshooting: what actually goes wrong
/setprivacy to disable it, or make the bot a group admin.
• getUpdates returns nothing despite messaging the bot — a webhook may already be registered, which disables getUpdates. Call the deleteWebhook endpoint, then retry.
• sendMessage returns 429 Too Many Requests — you're sending faster than Telegram's rate limits allow. Add a short delay between messages.
• You set network egress to All domains and it's still not working — you're almost certainly still in the session you had open when you made the change. Start a completely new Cowork task.Where to go from here
Frequently asked questions
Why won't Claude's built-in Telegram connector work?
It often does, but it's the most common point of failure we've seen in practice. The bot-token method in this guide calls Telegram's API directly and fails in specific, diagnosable ways instead of an opaque connector error — which is why we recommend it as the default, not just a fallback.
Why can't my Telegram bot message me first?
Telegram's platform rule, not a Claude limitation: bots cannot initiate a conversation. You must send the bot a message yourself first. Only after that will getUpdates return anything, and only after that can the bot reply to your chat ID.
Is it safe to paste a Telegram bot token into a Cowork chat?
Treat any token as compromised once it's typed anywhere outside Telegram's own BotFather flow, including into an AI chat. Anyone with the token can control the bot. If you ever paste one into a chat transcript, screenshot, or shared document, revoke it via BotFather immediately and generate a fresh one.
Do I need to know how to code to set this up?
No. Every step in this guide is either a Telegram app action (BotFather commands, messaging your own bot) or a plain-English instruction to Cowork. The only technical-looking part — calling getUpdates and sendMessage — is something you ask Cowork to do, not something you run yourself.
Where exactly do I change Cowork's network access setting?
On Team/Enterprise plans: an account admin goes to Settings → Capabilities and sets "Allow network egress" to All domains (it only has three levels — None, Package managers only, All domains — with no per-domain list). On personal Pro/Max plans, check your own Settings → Capabilities, since the exact layout varies by plan.
Want to Apply This to Your Business?
We're a Singapore AI development and automation agency. Let's discuss how we can help solve your specific challenges.