Automation
Automate Telegram work in TelegramOS: tasks, campaigns and flows with built-in pacing and account-safety limits that keep sending inside Telegram's rules.
Automation is the core of the platform. You can schedule messages, build multi-step campaigns, and set up auto-reply rules. All with anti-ban pacing that protects your accounts.
Three primitives
| Primitive | Scope | Persistence |
|---|---|---|
| Task | One-shot action to a single target | Executes once, then archived |
| Campaign | Multi-step sequence across targets | Persists until all steps complete or you cancel |
| Flow | Recurring or event-triggered rule | Runs indefinitely until paused or deleted |
Task types
| Type | Description |
|---|---|
| send_dm | Send a direct message to a user |
| send_group | Send a message to a group or channel |
| join_group | Join a Telegram group by invite link |
| leave_group | Leave a Telegram group |
| react | React to a message with an emoji |
| forward | Forward a message from one chat to another |
| schedule_broadcast | Schedule a broadcast to multiple recipients |
Warm-up schedule
Every new account starts in warming and can send right away on a small hourly budget. The budget steps up with the days since warm-up started, and after day 5 the account is promoted to active automatically:
| Stage | Days | Hourly budget |
|---|---|---|
| starter | 0 | 3 |
| light | 1 | 8 |
| moderate | 2-3 | 15 |
| pre-active | 4-5 | 25 |
| active | after day 5 | 30 |
Rented accounts keep the warm-up progress they made in the pool: an account that is already active there is handed over active, and one that is still warming continues from where it is.
Skipping and setbacks.POST /api/accounts/{id}/skip-warmupends the warm-up early by moving its clock back: owned accounts any time, rented accounts after 3 days. Awarmingaccount that hits a flood-wait drops back one stage (its clock moves about 1.5 days later).
Anti-ban guardrails
Human-like pacing
Every action waits a random, human-like delay before it runs: send 3-8 s, reply 2-6 s, forward 4-10 s, auto-reply 2-8 s, join 5-15 s. The delay is 2.5× longer while the account is not active.
Campaigns also stagger their targets: the gap between one target and the next is drawn at random from 15-90 s. Each campaign cycle then repeats after its interval_minutes, shifted by a fixed per-account offset. Mass DM waits 45-120 s between messages by default.
Global 10/sec ceiling
The platform sends at most 10 messages per second across all accounts combined. This ceiling applies across all task types (DMs, groups, broadcasts).
Flood-wait detection
When Telegram returns a FLOOD_WAIT error, the runtime:
- Records the wait duration from the error response.
- Puts a flood-wait gate on the account. The account status does not change. The gate lasts the wait plus 1-5 s for
activeaccounts, the wait × 2.5 plus 30-90 s forwarmingaccounts, and the wait × 3 plus 20-60 s for trial accounts, never less than 60 s. - Puts the failed task back in the queue with a later start time instead of dropping it. The account's other queued tasks wait behind the gate.
- Stops the campaign from creating new tasks for that target for a while.
- Moves a
warmingaccount back one warm-up stage.
Example: Telegram asks for 420 s. An active account is gated for about 421-425 s, a warming account for about 1080-1140 s.
Each flood-wait in the last 7 days costs 15 health points, capped at 45.
Health-score gating
Automation execution is gated on account health scores (the bands are drawn under Accounts › Health score):
- 80-100: All tasks, campaigns, and flows execute normally.
- 50-79: New bulk-send tasks are refused. DMs, replies, and group messages are unaffected.
- 25-49: Bulk send and group join tasks are refused. DMs and replies unaffected.
- 1-24: Outbound is paused. Existing connections stay open but no new sends are attempted.
- 0: Account is suspended. Automations are not scheduled for it.
Auto-reply rules
Auto-reply rules let you define automatic responses to incoming DMs. Rules are evaluated in order, and only the first matching rule fires.
| Match type | Description | Example | |
|---|---|---|---|
| exact | Message text exactly equals the trigger | "Help" triggers reply | |
| contains | Message text contains the trigger substring | "price" in "What is the price?" triggers reply | |
| regex | Message text matches a JavaScript regex pattern | `/^(hi | hello)/i` triggers reply |
| any | Any incoming DM triggers the reply | Catch-all for out-of-office |
Each auto-reply rule has:
- Trigger: the match pattern (not used for
anytype) - Match type: one of
exact,contains,regex,any - Reply text: the message to send back (max 1000 characters)
- Cooldown: replies are spaced per chat, not per sender: 60 seconds for static rules, 12 seconds for AI/connector rules. Messages that arrive during the cooldown are folded into the pending reply, not dropped
- Enabled: toggle to activate or deactivate the rule
Acceptable use policy for automation
Automation must comply with Telegram's Terms of Service. Specifically:
- Outreach to people who have not written to you first is limited by the platform. Each account has hourly and daily send limits, lower for first contacts (10 per hour and 40 per day by default) than for replies (60 per hour and 300 per day by default). A contact is messaged by only one of your accounts unless you switch that rule off for an account. In Mass DM, a first message goes only to someone who shares a group with the sending account, and a recipient who replies with a stop word such as "stop" or "unsubscribe" is added to your suppression list and skipped by later Mass DM jobs. An account that Telegram has restricted is switched to reply-only and cannot start new conversations. Do not raise or switch off these limits to send bulk messages that the recipients did not ask for.
- Do not automate joining groups for the purpose of spamming.
- The scraper reads messages only in the groups whose links you submit, up to 200 links per job and 3000 messages per group, and extracts the contact details posted in those messages. Do not use the Service to collect personal data in any other way. You are responsible for having a lawful basis for collecting and using that data.
- Do not operate networks of accounts for coordinated inauthentic behavior.
- Do not send illegal content, malware or phishing, and do not use automation to defraud, harass or impersonate anyone.
Violations of this policy may result in account suspension and forfeiture of your subscription balance.