Telegram Bot API enables messaging through bots, offering powerful automation capabilities and rich message formatting.
When to Use Telegram
Customer support bots : Automated responses and human handoff
Notifications : Real-time alerts and updates
Communities : Group messaging and channel broadcasts
Automation : Bot commands and workflows
Basic Telegram Message
TypeScript
Python
Ruby
Go
PHP
cURL
const result = await zavu . messages . send ({
to: "123456789" , // Telegram chat ID
text: "Hello from Zavu!" ,
channel: "telegram" ,
});
Key Differences from Other Channels
Feature Telegram SMS WhatsApp Recipient ID Chat ID (numeric) Phone number Phone number Media support Yes Limited (MMS) Yes Cost per message Free* Per message Per conversation Bots required Yes No No
*Telegram messaging is free, but you’ll be charged for MAU (Monthly Active Users) as with other channels.
Chat IDs vs Phone Numbers
Unlike SMS and WhatsApp, Telegram uses numeric chat IDs rather than phone numbers:
Phone-based channels: +14155551234
Telegram: 123456789
You cannot message Telegram users by phone number. Users must first interact with your bot to establish a chat ID.
Getting Chat IDs
Chat IDs are obtained when users interact with your bot:
User sends a message to your bot
Zavu receives the message via webhook
The from field contains the user’s chat ID
Store and use this ID for future messages
Message Types
Telegram supports various message types:
Type Use Case Text Simple messages with markdown support Photo Images and graphics Document Files and attachments Location Share locations Contact Share contact information
Delivery Status
Telegram provides delivery tracking:
Status Description queuedMessage accepted by Zavu sendingBeing sent to Telegram deliveredDelivered to Telegram servers failedDelivery failed
Telegram doesn’t provide read receipts like WhatsApp. You’ll know the message was delivered, but not if it was read.
Bot Setup Requirements
Before sending Telegram messages, you need to:
Create a bot via @BotFather
Get your bot token
Configure the bot in your Zavu sender settings
See Telegram Setup for detailed instructions.
Common Errors
Error Cause Solution Bot token invalidWrong or expired token Regenerate token via BotFather Chat not foundInvalid chat ID Verify the chat ID Bot blocked by userUser blocked your bot Cannot message this user Forbidden: bot was kickedBot removed from group Bot must be re-added
Limitations
Before choosing Telegram as your messaging channel, consider these limitations:
User Initiation Required
Your bot cannot message users first. Users must send a message to your bot before you can reply or send notifications.
This is a fundamental Telegram restriction. Unlike SMS or Email, you cannot “cold message” Telegram users. Build your flow so users initiate contact (e.g., via a “Message us on Telegram” button on your website).
No Phone Number Messaging
You cannot reach users by phone number. Telegram uses internal chat IDs:
SMS/WhatsApp : Send to +14155551234
Telegram : Send to 123456789 (chat ID)
If you only have a user’s phone number, you cannot message them on Telegram even if they have the app installed.
No Read Receipts
Telegram does not provide read receipts. You’ll know:
Message was delivered to Telegram servers
Message failed to deliver
You will not know:
If the user read the message
When the user read the message
Rate Limits
Telegram enforces rate limits on bot messages:
Scope Limit Same chat ~1 message per second Different chats ~30 messages per second Broadcast to many users May require delays
Zavu handles rate limiting automatically, but large broadcasts may take longer to complete on Telegram compared to other channels.
No Pre-Approved Templates
Unlike WhatsApp, Telegram has no template approval system. This means:
Pro : Send any message content without approval
Con : No way to message users outside of an active conversation
Media Type Max Size Photos 10 MB Documents 50 MB Video 50 MB Audio 50 MB
Group Limitations
Bot must be added to the group by an admin
Bot can be kicked or restricted by group admins
In supergroups (>200 members), bot may need admin privileges to see all messages
Bot Blocking
Users can block your bot at any time. When blocked:
You cannot send messages to that user
You receive a bot_blocked_by_user error
There’s no way to “unblock” programmatically
No Fallback to Other Channels
Unlike SMS/WhatsApp where numbers are portable, Telegram chat IDs are specific to Telegram. You cannot automatically fall back to SMS if Telegram fails, unless you have the user’s phone number stored separately.
Geographic Availability
Telegram may be blocked or restricted in some countries (e.g., China, Iran at times). Consider your user base’s location when choosing Telegram as a primary channel.
Next Steps