Mass direct messages on Telegram: what stops a run and what the panel does about it

A private message is stopped by one of four parties: the recipient, Telegram itself, your own run ceilings, or a send that was never confirmed. Each has its own signal in the panel and its own rule on whether to retry. Below they are taken in order, with the numbers and a calculation of how many accounts a base needs.

  • Four causes of a stop and a rule for each
  • Recipient refusals are not run errors
  • Accounts needed for a base of 3,000 people
TeleTraff mailing results: 486 recipients, 452 sent, 13 failures and a table of text variants with the share delivered

In short

A Telegram mass DM run is stopped in four ways: the recipient closed private messages or charges for them, Telegram puts a pause or a restriction on the account, a run ceiling is reached, or a send stays unconfirmed. In TeleTraff each case has its own record in the results, and only what can be repeated without writing to a person twice is repeated.

TeleTraff editorial teamUpdated: Checked in the panel

A reason for every recipient

Every row in the results has a status and a reason: closed their private messages, charges for messages, accepts Premium accounts only, no such @username.

A refusal does not break the run

Recipient refusals are not counted as errors and do not bring the run closer to the «Failures in a row» stop. The run carries on with everyone else.

The account is separated from the run

If Telegram refuses an account's first messages to strangers, that account leaves the run and the others carry on. The panel does not lock the account: its other modules keep working.

Four parties that stop a message

The recipient

Closed their private messages, charges for messages from strangers, accepts only Premium accounts or deleted the account. This is the person's decision, and no pause changes it.

Telegram

Asks the account to wait a named number of seconds (FloodWait), stops its cold work (PeerFlood), or applies a spam block or a freeze. This is the state of the account, not of the recipient.

Your ceilings

The limits per run, account, hour and day, the «Failures in a row» field and the end time. These are boundaries you set before the start.

An unconfirmed send

Telegram did not confirm it accepted the message. The panel does not count it as delivered and does not send it again, so as not to write to a person twice.

How the run itself, the pauses and the texts work is covered in the guide to mailing software and in the Mailing module. This page covers only the stops and what to do about them.

The recipient: which reasons show in the results

Reason in the resultsWhat it meansWhat to do next
«closed their private messages»A privacy setting keeps strangers outNothing: a retry will not help
«charges for messages from strangers»The first message is paid for the senderNothing: a retry will not help
«accepts messages from Premium accounts only»Only Premium accounts can writeWrite from a Premium account, if there is one among the senders
«does not accept messages from strangers»Private messages are open to contacts onlyNothing: a retry will not help
«the account was deleted in Telegram»The addressee no longer existsRemove from the base
«no such @username exists in Telegram»The name does not exist or has changedTurn on «People Telegram does not know»: such names are dropped before the start

These recipients get the status «Skipped», not an error. They do not bring the run closer to a stop on «Failures in a row»: an empty field means ten failures in a row, and any successful send resets the count. A second run over the same people gives the same refusal.

The account: pause, stop, mark

  1. 01

    FloodWait: a pause from Telegram

    Telegram names the number of seconds the account has to wait. The run waits together with the account and carries on by itself. Retrying before the time is up usually lengthens the wait.

  2. 02

    PeerFlood: the account leaves the run

    Telegram refused first messages to strangers. The account leaves this run, and a clean @SpamBot answer does not bring it back. The limits guide gives a day of rest for this refusal. The panel does not lock the account: you decide when to run it again.

  3. 03

    A question to @SpamBot

    The «Ask @SpamBot about the limit» switch is off by default. When on, after the account is stopped the panel writes to @SpamBot as that account. No limits: the account rests and returns to its recipients. A limit exists: the panel records it together with Telegram's own deadline.

  4. 04

    Lifting the mark by hand

    The mark can be lifted by hand, but that lifts only the panel's own decision. Telegram's pause stays, and until it ends no run picks the account up. When the pause ends, the account returns to work by itself.

The numbers: what is known and what is not

Telegram publishes neither a number of private messages per day nor the length of a FloodWait, so the panel has no number it could promise. It has pauses by protection mode (20–24, 45–56 and 90–113 seconds) and ceilings you set. For orientation, the Telegram limits reference gives the ladder of one mailing service: the ceiling grows with the age of the account.

Account ageTo strangers per day
up to 3 days8
up to 7 days15
up to 14 days25
up to 30 days35
up to 90 days50
over 90 days80

This is an outside reference, not a TeleTraff setting. You set your own ceiling in the «A day per account» field (up to 5,000), and by default it is zero, meaning no ceiling. A pause sets the tempo, not the volume for a day.

The calculation: how many accounts a base needs

An example for crypto arbitrage: a base of 3,000 strangers from parsing and a ceiling of 30 messages a day per account. One account covers 30 people a day, so the base needs 100 account-days.

AccountsMessages per dayDays for the whole base
515020
1030010
206005

The number 30 is taken for the example: it depends on the age and history of the accounts. Part of the base will drop out for the reasons in the recipient table, so a real run is usually shorter. Accounts and their proxies are prepared in the account manager.

What stays in the report

  • A row for every recipient: recipient, first message, sender, status, steps and replies.
  • Statuses: «Completed», «Skipped», «Needs attention», «Queued», «Waiting for a reply», «Waiting for its account» and «The reply window expired».
  • «Delivered» means Telegram accepted the message. The panel does not show reads and clicks.
  • Filters by status and a CSV export.
  • Those the run did not reach because of a ceiling get a «run limit» mark, because of the end time an «expired» mark. They are free for the next run.

If Telegram did not confirm a send, the outcome stays unknown and visible in the results. The panel does not repeat such a row by itself. A new run skips the people already written to while the «People we already wrote to» memory is on.

What private-message mailing does not have

  • An automatic retry for people who closed private messages: until they change the setting, a retry gains nothing.
  • A «this many per day» number from Telegram. Telegram does not publish one.
  • Cold sending through a bot: a bot cannot write first to someone who never started it.

Messages to groups rather than to people are covered on the page about sending to several groups.

Terms on this page

Questions and answers

Why does a private-message mailing not reach some people?

Most often the recipient closed private messages, charges for messages from strangers or accepts only Premium accounts. The reason is recorded for each recipient in the results.

Are recipient refusals counted as errors?

No. They get the status «Skipped» and do not bring the run closer to a stop on the «Failures in a row» field.

What does the panel do on PeerFlood?

The account leaves this run and the others carry on. The panel does not lock the account: it works in other modules, and you decide when to put it back on mailing.

Should I turn on the question to @SpamBot?

The «Ask @SpamBot about the limit» switch is off by default. When on, after the account is stopped it finds out whether a limit exists and records Telegram's deadline.

What happens if Telegram did not confirm a send?

The message is not counted as delivered and is not sent a second time. The outcome stays unknown and visible in the results.

How many private messages a day will one account send?

Telegram does not publish that number. The panel has the «A day per account» field (up to 5,000); by default there is no ceiling and you choose the number.

What happens to recipients the run did not reach?

They get a «run limit» or «expired» mark and stay free for the next run.

Read next

More in this section

Other sections

See the reasons on your own base

Run a small batch in Mailing and open the results: every recipient gets a status and a reason.

Try it free