Skip to main content

Telegram broadcasts: message everyone who started your bot

Send one message from your Telegram bot to the people who started a chat with it: formatting, a photo and buttons, the preview, the simulation, a test to your own Telegram, the speed limits, blocked users and the results.

Telegram broadcasts: message everyone who started your botWatch on YouTube

Telegram broadcasts (Engage → Telegram broadcasts, /app/telegram) sends one message from your Telegram bot to each person who started a chat with it, in their private chat with the bot. It is not a post to your Telegram channel: posting to the channel is done from Create (Telegram).

Before you start

  • Connect Telegram under Accounts (a bot token from @BotFather and your channel, see Telegram). The broadcast is sent by that bot. Without one the page says No Telegram channel yet with Open Accounts. When the account is connected but disconnected (the platform no longer accepts its access), the page names it instead in a red box: [name] is disconnected, so it cannot send broadcasts. Reconnect it in Accounts. with Open Accounts, and New Telegram broadcast is hidden until you reconnect it.
  • Telegram lets a bot write only to people who pressed Start in its chat (or wrote to it). Everyone who did is in your inbox and in Contacts as a Telegram contact; they are the people a broadcast can reach. To grow the list, share your bot's link (https://t.me/<your bot>) on your website, in your channel and in your other messages.
  • Creating, sending, pausing and cancelling needs the Owner, Admin or Editor role. Everyone else can open the list and the results. Opening the new-broadcast page by its address shows Only Owners, Admins and Editors create broadcasts instead of the form, and an empty list says Broadcasts appear here once an Owner, Admin or Editor creates one. When saving says Fix the highlighted fields first., the page scrolls to the first field to fix and puts the cursor in it. A message over the length limit is marked red while you type, with the count beside it.

Step by step: write and send

  1. Open Engage → Telegram broadcasts and press New Telegram broadcast. The composer opens (/app/telegram/new).
  2. Sender: pick the channel under Send from (the message comes from its bot), type a Broadcast name (only your team sees it) and, if it belongs to one of your campaigns, pick it under Part of a campaign (optional).
  3. Message: type the text under Message. Select words and press Bold, Italic or Link to format them (Link writes <a href="https://">…</a>; put your address after https://). Press Insert first name to add {{first_name}}; {{name}} is the full name. Give a fallback for people without a name: {{first_name|there}}. The counter under the box shows the length: up to 4,096 characters, or 1,024 when there is a photo.
  4. Optional: paste a Photo link (optional): a public https:// link to a JPG or PNG (up to 5 MB). Telegram downloads it itself and shows the text as its caption.
  5. Buttons (optional): fill Button 1 text and Button 1 link (up to three buttons). Each opens its link under the message.
  6. Who gets it: by default Everyone who started the bot. Narrow it to one list or segment under Only contacts in (optional), tick Only people who agreed to Telegram marketing to keep only people whose Consent shows Telegram: Agreed, tick lists under Leave out people in, and type tags under Leave out people tagged (separated by commas). People who blocked the bot or withdrew Telegram consent are always left out, and each chat gets one message.
  7. When: Send now, Schedule (then pick Send at, your local time) or Save as draft.
  8. Tracking: Count button clicks is on (see Good to know).
  9. Check the Preview on the right: it looks like the chat in Telegram (the bot's name, the photo, the formatted text, the buttons). Switch between Desktop and Phone (375 px). It shows your name in place of each person's.
  10. Press Run simulation (see below), then Send test to your Telegram (link your Telegram first, see below).
  11. Press the button at the bottom: Send now asks Send this broadcast now? with the number of people; press Send now (or Not yet to keep it as a draft). Schedule saves it as Scheduled; Save draft saves it as Draft. The broadcast's results open.

Link your Telegram and send a test

A test goes to your own private chat with the bot, never to anyone else. The first time, the composer shows Link your Telegram to get tests:

  1. Press Open the bot in Telegram (or send the bot the message shown after Or send … this message:, which starts with /start and your personal code; Copy copies it).
  2. Press Start in the chat with the bot.
  3. Wait up to a minute for the message to reach OmniBrand, then press Check again. If it says Not linked yet. Did you press Start? It can take a minute., wait a little and check again.

Once linked, Send test to your Telegram appears with Goes to your own chat with the bot: and your Telegram name. The test is marked [Test], its buttons open the links directly (clicks are not counted) and you can send 10 tests an hour; a test that was not sent does not count. When the 10 are used up, Send test to your Telegram stays off and says You can send 10 tests an hour. Send test works again in [minutes] min. The link is per bot: a second bot needs its own /start.

The simulation

Run simulation is a dry run with the same rules as the real send; nothing is saved or sent. It shows:

  • [n] would get it and [n] people in the audience.
  • [now] right away · [later] later, in their local send window — people outside the send window of Settings → Messaging rules (quiet hours, Friday pause, Ramadan window) wait for it.
  • over the frequency cap (skipped) — people who already got as many marketing messages as your caps allow (all channels together).
  • Left out, by reason: on Telegram but never started a chat with this bot, no Telegram, blocked the bot, withdrew Telegram consent, duplicates.
  • How long the send takes, a warning when people have no name for {{first_name}}, and A few recipients with what each one gets. A person who waits for their send window shows when it opens, in their time and in yours, for example Waiting until Oct 5, 2026, 9:00 AM their time (Europe/Berlin) · Oct 5, 2026, 8:00 AM your time.
  • When nobody would get it (0 would get it), the Left out reasons come first and there are no "right away · later" or "About … min" lines.

When you change the broadcast after a run it says You changed the broadcast since the last run.; press Run again.

The results

Click a broadcast in the list (on a phone it opens full screen; All Telegram broadcasts goes back). You see:

  • The status (Draft, Scheduled, Sending, Paused, Sent, Failed, Cancelled), From the bot of the channel, and Part of the campaign when it belongs to one.
  • Recipients, Sent, Delivered, Clicked (with the share of delivered; Not tracked when there are no buttons or counting is off - the Tracking line under the message then says No buttons, so no clicks to count or Button clicks not counted), Blocked the bot, Failed, Skipped and Still to send (queued, waiting for a send window or a retry, or going out now: who Resume sends to; a paused broadcast's box says it too, for example It has not been sent to 3 recipients yet.). Delivered counts messages Telegram accepted; Telegram does not tell a bot who read a message, so there is no Read.
  • Left out when it was created: the same reasons as the simulation, frozen when you saved it.
  • Message: the message as it looks in Telegram (Desktop or Phone (375 px)) and whether button clicks are counted.
  • Recipients: filter by status (Queued, Waiting, Sending, Sent, Blocked the bot, Failed, Skipped) or by Clicked, search by name or chat id, and Load more. Each row shows the person's name and chat (Chat 123456789; a group's id such as Chat -100123 keeps its minus sign in front, in Arabic too), when it was sent, their clicks, and a note in your language: Waiting until … their time (…) · … your time (as in the simulation); while the broadcast is paused Waits for Resume: the broadcast is paused; any other wait with its reason and the next try, for example Waiting: the platform asked to slow down · next try Oct 5, 2026, 9:05 AM (your time) or Waiting: Telegram is not answering · …; Not sent: the broadcast was cancelled; or why it failed, for example Not sent: Telegram cannot find this chat (the person never started the bot, or deleted the chat), Not sent: the bot may not write to this person, Not sent: this chat is a group or a channel, not a person, Not delivered: this person blocked the bot or Not sent again: the answer was lost, so it may have arrived. It is not retried, so nobody gets it twice. Telegram's own words, when it gave any, follow on a second line after What the platform said:. A person every try failed for reads Not sent: a temporary error kept happening; gave up after 3 tries.
  • A paused or failed broadcast says why in a box under its name, starting with Paused: or Failed: (see If something goes wrong). When reconnecting is the fix it ends with Open Accounts, and Telegram's own words follow under What the platform said:. Once the account is connected again after a pause for a disconnected account, the box says Paused: It paused because the account was disconnected. It is connected again: press Resume to send to the people left. A Viewer or Reviewer has no Resume: their box gives the reason and then who can act, for example Telegram no longer accepts the bot's token. An editor or admin can resume it once the account is reconnected. On a draft or scheduled broadcast the second sentence is An editor or admin can send it once the account is reconnected.

The page refreshes itself every few seconds while the broadcast is a draft, scheduled, sending or paused. You also get a notification when it finishes, pauses or fails.

The list shows the newest 200 broadcasts. When there are more, Show older campaigns under the list loads the next 200.

Change, pause, cancel, delete

  • Send now starts a draft or a scheduled broadcast at once.
  • Edit (only before it starts) reopens the composer; Save changes checks the audience again.
  • Pause stops sending. Resume first asks Resume sending?, for example Sending carries on where it stopped, with the 3 recipients it has not been sent to yet., then, when some already got it, The 4 recipients it was already sent to are not messaged again. (for one, The recipient it was already sent to is not messaged again.); press Resume sending to carry on where it stopped, or Not yet. A paused broadcast with nobody left to send (Still to send 0) has no Resume: after the reason it paused, its box says Nothing is left to send: no recipient of this broadcast is still queued, so there is nothing to resume. Press Cancel broadcast to close it, or make a new broadcast. (without Resume stays off or Open Accounts: reconnecting would give it nobody to send to), and Cancel broadcast is the main button; a Viewer or Reviewer reads Nothing is left to send, so there is nothing to resume. An editor or admin can cancel it. While the broadcast is open, its numbers and the first page of Recipients update by themselves (a list you extended with Load more stays as it is). After Pause, Resume or Cancel broadcast that first page is read again with the status filter and the search you set, and Refresh at the top of the page reads the open broadcast again too, its numbers and Recipients included.
  • Cancel broadcast asks Cancel this broadcast?: nobody else gets it; who already got it stays in the results.
  • Delete is only there for a broadcast that sent nothing.

Speed, blocks and failures

  • Messages go out at up to 25 a second per bot, and one person's chat gets at most one message a second (Telegram's limits). If Telegram still asks the bot to slow down, the rest wait exactly as long as Telegram says and then carry on; that wait never counts as a failed try.
  • Blocked the bot: Telegram refused because the person blocked the bot or deleted their account. They are marked Stopped all messages for Telegram in their consent history, with the source Blocked the Telegram bot, and every later broadcast leaves them out. If they unblock the bot and press Start again (the bot receives /start), they get your broadcasts again; you can also record their consent with Record consent in Contacts.
  • Failed with "chat not found" or "bot can't initiate conversation with a user": that chat no longer exists for this bot, or the person never pressed Start. Other people are not affected.
  • A message whose answer never came back (a network break after sending) is marked Failed and never sent again, so nobody gets it twice. Temporary trouble where Telegram clearly did not take it is tried again after 1, 4 and 16 minutes. A message that a server restart interrupted before it reached Telegram is simply sent a little later.
  • Consent and blocks are checked again just before each message goes. STOP: a person who sends the bot STOP (or /stop, UNSUBSCRIBE, إيقاف, إلغاء الاشتراك …, or one of your own words from Settings → Messaging rules) in their private chat with it is marked Stopped all messages for Telegram (source Replied with a keyword), is skipped in every Telegram broadcast still waiting to go to them, and gets one short reply in the language they wrote in (unless the confirmations are turned off in Messaging rules). Their message stays in the inbox and your team can still answer it. Sending START, SUBSCRIBE, اشتراك or /start subscribes them again.
  • Telegram messages count toward the frequency caps of Settings → Messaging rules and respect its send windows.

If something goes wrong

  • The bar at the bottom says Nobody can get it yet. See the note under When. and a box under When says Nobody in this audience can get it yet — a bot can only message people who pressed Start in a chat with it, and nobody in the audience has (or nobody in the chosen list). It shows after Run simulation finds nobody, or when you press Schedule: a broadcast nobody can get cannot be scheduled. Share a link to your bot (t.me/ followed by the bot's username) so people start it. Save draft (or Send now) still saves it as a draft, with the toast Saved as a draft: nobody can get it yet; nothing is sent. Later, open the draft and press Send now: the audience is checked again and it goes to whoever can get it by then. If still nobody can, a box on the broadcast's page says Still nobody can get it: nobody in this audience has pressed Start in a chat with your bot yet. Share a link to your bot, then press Send now again. with Edit it to see who is left out in the Simulation, which opens the broadcast in the composer.
  • That account is no longer connected to this workspace. Pick another one, or connect it under Accounts. — the Telegram channel was removed; pick another under Send from.
  • Your own Telegram chat is not linked yet. Follow the steps under Link your Telegram to get tests, then try again. — link your Telegram (above).
  • You blocked the bot in Telegram. Unblock it, press Start in its chat, then try again. — the test could not reach your own chat.
  • Paused: Telegram no longer accepts the bot's token. Create a new token with @BotFather, reconnect the bot in Accounts, then press Resume. with Open Accounts — the token was revoked in @BotFather. Nothing more was sent. A test says Telegram no longer accepts this bot's token. …
  • Paused: Telegram refused the message itself, so nothing more was sent. Cancel this broadcast and create a corrected one. — for example the photo link cannot be downloaded, or a button link is not valid (Telegram's words follow under What the platform said:). Resume would only be refused the same way, so it is not offered: the box ends Resume is off: it would be refused the same way. and Cancel broadcast is the main button. Press it and create a corrected one (a started broadcast cannot be edited).
  • Paused: The account it sends from is disconnected. Reconnect it in Accounts, then press Resume. — the account was disconnected while the broadcast was sending. It pauses (nothing is lost) and carries on with the people who have not got it once you reconnect it under Accounts and press Resume. While it is disconnected the box reads Paused: [name], the account it sends from, is disconnected. Reconnect it in Accounts: Resume stays off until then. with Open Accounts, and Resume is off; once it is reconnected the box says It paused because the account was disconnected. It is connected again: press Resume to send to the people left. A disconnected draft shows a red box naming the account with Open Accounts and Send now stays off until the account is reconnected.; pressing it anyway says [name] is disconnected. Reconnect it under Accounts, then try again. An older broadcast that stopped this way before it paused instead reads Failed: The account it sent from was disconnected, so this broadcast stopped and cannot be resumed. Reconnect the account in Accounts, then create a new broadcast for the people it did not reach.
  • Editing a draft whose account is disconnected shows the red box and This draft stays read-only until its account is reconnected. Reconnect it in Accounts, then come back to edit or send it. When another account is connected you can pick it under Send from instead (the disconnected one is listed as [name] (disconnected)).
  • Someone changed this broadcast in the meantime: it is now Cancelled. The page shows where it stands. (or another status) — a teammate paused, resumed or cancelled it just before you pressed a button; the page now shows its real status and buttons. The page refreshes itself every few seconds while the broadcast is a draft, scheduled, sending or paused.
  • Paused: Your account is suspended, so nothing is sent. Once it is active again, press Resume. or Paused: This workspace is archived, so nothing is sent. Restore it under Workspaces, then press Resume. — sending waits until the account or workspace is active again; then press Resume.
  • This broadcast started sending in the meantime, so it can no longer be changed. Open it to see how it is going. — it was sent, or its time came, while you edited.
  • "A formatting tag is not closed, or closes in the wrong order" — every <b> needs its </b>, closed in the reverse order they were opened.
  • You can send 10 tests an hour. Try again in [minutes] min. — the hour's tests are used up; Send test to your Telegram comes back by itself.
  • The test was not sent. Check the account it sends from under Accounts, then try again. — Telegram refused the test; it does not count toward the 10 an hour. When Telegram gave a reason, it follows after What the platform said: in Telegram's own words.

Good to know

  • Button clicks: each button goes through a short redirect on our API domain (for example api.omnibrand.app/email/c/…) that counts the click and opens the page; each person counts once. Links inside the text are sent as written and are not counted. Switch Count button clicks off to send button links as written. Leaving the composer with something typed that is not saved - reloading, closing the tab or following a link - first asks Leave this page? What you typed here has not been saved and will be lost. Press Cancel to stay.
  • Replies to a broadcast arrive in the Inbox like any message to the bot.
  • Text you type that looks like a tag but is not one of Telegram's (for example <3) is sent as typed.
  • Up to 200,000 people per broadcast.
  • A broadcast made by Send across channels on a campaign's page (its name ends in "- Telegram") has no Edit: its people were chosen by that send, each on one channel (Campaigns).

Related

In this section: Engage

All articles