Documentation / Broadcasts

Broadcasts & segments

A broadcast sends one message to many subscribers at once — optionally filtered to a segment, optionally at a future time. Open a bot in the console and choose Broadcasts.

Segments

A segment is a saved filter over a bot's audience — built from attributes your flows collect (via the Set-attribute and Question nodes), subscription dates, and activity. Segments are reusable: build once, target every campaign, and the membership recomputes as subscribers change.

Segments also power the Segment node in flows, so a subscriber entering a segment can trigger automation — a welcome drip for new signups, a win-back flow for the inactive.

Don't have segments yet? A broadcast without a segment simply goes to the whole audience of that bot.

Composing and scheduling

A broadcast is a name, a message (text with optional buttons — a URL button makes a fine call-to-action), and an optional segment. Send it immediately or schedule it for a specific time — useful for time zones and launches. Scheduled broadcasts sit in the list with their due time until the moment comes.

Each line includes a monthly broadcast allowance (shown on the pricing page and in your Billing usage meters); sends beyond it are rejected with a clear message rather than failing silently.

How delivery is paced

Telegram caps bulk sending at roughly 30 messages per second. Meshwire queues one delivery row per recipient and drains the queue in background passes at 25 messages per second — safely under the ceiling — with at most 200 recipients handled per campaign per pass, so one giant campaign can't starve the others. When Telegram answers "slow down", the pass stops immediately and resumes on the next tick from exactly where it left off: nobody is skipped, nobody is double-sent.

Reading the results

OutcomeMeaning
DeliveredTelegram accepted the message for that subscriber.
BlockedThe subscriber blocked the bot, deleted their account, or the chat no longer exists. They are excluded from future sends automatically.
FailedA temporary error — retried on later passes. If Telegram says the campaign is going too fast, sending pauses and resumes at a safe pace rather than dropping anyone.

A broadcast's status moves from queued to sending to completed (or failed if nothing could be delivered). The per-pass counters update as delivery progresses, and a broadcast.completed event fires to your webhooks with the final stats.

Go deeper

Segments, languages and honest delivery

Broadcasts go to segments — tags your flows maintain automatically (booked, waitlist members, tier members, candidates by role) or filters you define. Everyone in the audience gets the message in their own language when the broadcast provides translations, with your base text as the fallback.\nDelivery reports are honest per recipient: sent, failed with the reason, or skipped because the subscriber blocked the bot — blocked subscribers leave the audience counts so future sends do not burn quota on people who will never receive anything.\nScheduling is first-class: queue a broadcast for a future time and cancel it before it leaves, which is the difference between a scheduled message and a mistake on a timer.