Home · Blog · Reactivation of a “sleeping” database via a bot: segment, three messages, metrics

Reactivation of a “sleeping” database via a bot: segment, three messages, metrics

· updated · Command CHBT · Broadcasts, Segments

A year later, the bot’s database contains hundreds of people who once left a request or took a checklist and have remained silent since then. This is not dead weight: they already have a conversation with the bot, and it costs nothing to write to them - unlike a new advertisement. We’ll figure out how to select “sleeping” tags in CHBT, launch a wave from one mailing and one flow with “Pause” and “Condition”, what to offer them and by what numbers to understand whether it worked. And in advance - about whom the bot will not be able to return.

Who is considered “sleeping” and how to find them in CHBT

“Sleeping” is a contact that was active and then stopped, without explicitly buying or refusing. The period of silence depends on the transaction cycle: for food delivery - 30 days, for courses - 60–90, for repairs - six months. Agree on a number before the launch, otherwise the segment will include those who are simply still thinking.

Fair disclaimer: CHBT does not have a “haven’t written in N days” filter. Script conditions work by tag, variable, channel, time of day and day of week; newsletter audience - by tags. Therefore, the segment is assembled in three available ways:

  • By stage tags. If the script was staged st-lead, and the manager noted those who bought st-paid and those who refused refusal, then “dormant” are leads without the last two tags. In Contacts, the filter takes one tag at a time, so ideally such people have a status tag like waiting for a call, which was not removed from everyone.
  • By uploading CSV. The “CSV” link in “Contacts” gives the entire database with the date the contact was created. The date is rough - this is the first touch, not the last, but for the first wave it is suitable: contacts older than 60 days with and without a phone st-paid.
  • By self-segmentation. If there are no tags at all, the first newsletter will split the database itself: those who responded are awake, those who don’t are asleep. How to mark up an old database with keywords is discussed in the article about tags as a segmentation system.

The result of this step is one tag that will be used for the mailing. If there is no such tag and the database is marked only with stages, the wave will follow the stage tag, and those who bought it will have to be accepted as an error or written off from the wave manually in the card.

Wave scheme: one mailing and one script

Intuitively, I want to collect three broadcasts: “we miss you,” “here’s a discount,” “last chance.” This should not be done for two reasons. The first - the “Mailouts” section is able to select an audience by tags, but does not know how to exclude: the second newsletter will also go to those who have already responded to the first and received an offer. The second is that three identical monologues in a row are read as spam and end with the bot being blocked.

The working circuit in CHBT looks different:

  1. Message 1 - newsletter by segment tag. Her task is not to sell, but to get an answer: any word that will trigger the script.
  2. flow "Reactivation" starts on the trigger “Keywords” and only leads to those who responded. Message 2 leaves immediately - a personal question or suggestion.
  3. "Pause" for two days, then “Condition” block by tag: if a person has not made a choice - message 3, closing the series. If you did, the chain is silent.

Those who are silent receive exactly one message - this is respect for those who do not want to communicate. Those who answer get two or three, with the second and third depending on their actions. This is a chain of three messages, but sequential, not parallel. The general principle of such chains - “Pause” plus “Condition” plus tag - is discussed separately in the article about trigger chains in the bot; Here we apply it to a specific problem.

Mailings are available from the Basic plan - 650 ₽ per bot per month. The script with a pause and a condition also works on Free, but without the “Mailouts” section the wave cannot be launched.

Message 1: mailing list asking for a reply

In “Newsletters” you create a newsletter: name, text with variables, audience tags separated by commas, delayed launch. There are no buttons or images in the CHBT broadcasts - only text, so the call to action is based on a keyword or link.

Text requirements:

  • Short - three or four lines. The person doesn't remember your bot; A long message from a stranger is not read.
  • With a reason to write now: new program, new branch, changed prices. “You haven’t logged in for a long time” is not considered a reason.
  • With one simple step: "Answer da" Not “follow the link and fill out the form.” In Telegram and MAX you can give a deep link t.me/bot?start=reakt - it will launch the script using the “Deep Link” trigger without typing a word, but the word is more reliable: it works in all channels, including VKontakte.
  • With variable {{name}} - the name from the card will be substituted by itself. If there is no name, there will be an empty space in its place, so put the name where the phrase can be read without it: “{{name}}, hello!” will turn into “, hello!”, and “There is news for you, {{name}}” - into the valid “There is news for you, “.

Example for a pottery studio: “We have opened an evening stream on weekdays and are recruiting a group of up to 12 people. If you are still interested in ceramics, reply da, I’ll tell you what has changed.” Sending - via “Delayed launch” on a weekday, 11:00–13:00 or 19:00–20:00 according to the time of your audience. Queue CHBT sends no more than 20 messages per second: a thousand contacts go in about a minute or more.

flow “Reactivation”: message 2 immediately, message 3 after a pause

The script is collected in “Scripts” on “Canvas”. Blocks in order:

  1. Trigger "Keywords": word da, coincidence exact (precise) so as not to catch “yes” inside other phrases. Second trigger - “Deep link” with payload reakt, if they provided a link.
  2. "Action": "Add tag" react-2026-09. This is the “reply to the wave” mark - the response is then calculated using it.
  3. "Message" 2 without buttons: “Glad you’re in touch. During this time, an evening stream and a course for couples appeared. What’s more interesting is write the number: 1 - evening stream, 2 — course for couples, 3 - remind me in a month.” Without buttons - fundamentally: a message with buttons stops the script before pressing, and the pause will not begin. The message without buttons is sent, and the script moves on.
  4. "Pause": 2 days (172,800 seconds; the block has a “1 day” preset, your value is entered in seconds).
  5. “Condition” block: Tag field react-select, operator "not specified". Thread “yes” → message 3. Thread “otherwise” → nothing.
  6. "Message" 3: “This is the last message in the series. We are holding space in the evening stream until Sunday for those who responded last week. If relevant, write 1, if not, just don’t do anything, we won’t bother you.” End of the thread.

Select handles the second section of the same script - three "Keywords" triggers with an exact match (exact) on 1, 2, 3:

  • 1 and 2 → “Action”: “Add tag” react-select and interest tag → “Data collection” Phone with format check → “Action”: “Transaction in CRM” with the name Reactivation: {{name}}, “Notify operator” → “Message” with confirmation → “Operator”.
  • 3 → “Action”: “Add tag” react-select, “Add tag” remind-2026-10 → “Message” “Okay, we’ll remind you in October.” This tag will become a segment of the next wave.

Why does the condition look at the tag, and not at the variable: the pause saves the variables at the start, and rereads the tags from the card when it resumes. The tag placed by the “1” thread during these two days will see the condition; variable - no.

Check the chain before starting the mailing: pause 60 seconds, write “yes” to the bot from your phone and make sure that message 3 arrives if you do not answer with a number, and does not arrive if you answer. Then return two days.

What to offer: three types of offer and what doesn’t work

The content of the messages is more important than the mechanics. Three types of offers that bring people back:

  • New. What was not there when the person left: format, time, branch, product. This is the only honest reason to write to a "sleeper", and it does not require discounts.
  • Personal by interest. If the contact has int-rate, a message about the course, and not about everything at once. In the mailing list, this is done in separate launches for each interest tag with different texts - three broadcasts across three segments instead of one across the entire database.
  • Closing. Limitation on period or number of places - only in message 3 and only truthful. A deadline that gets pushed back every week kills the next wave.

What doesn't work or is harmful:

  • Discount is the first line. A person who did not buy at full price was not necessarily expecting a discount - often he simply changed his mind. The discount teaches the base to expect sales.
  • “We miss you” and other emotions from the bot. The bot is not a person, the audience senses it.
  • More than three messages per wave and waves more than once a quarter for one segment. After this, blocking begins - they are visible in the “Errors” of the newsletter and are irreversible.
  • One text for all channels without checking length: in MAX, long messages are read worse than in Telegram.

And legal: the newsletter can be sent only to those who have agreed to receive it. If there was no explicit consent in your script, add it to the current script - template “Consent to mailing list” shows the minimum wording and tag by which the audience is then selected.

Wave metrics and where to get them in the office

The wave has five numbers, and each one is taken in its own place.

MetricaWhere to watchWhat does it mean
Sent"Mailouts", mailing lineSegment size at launch
Delivered / Errors“Newsletters”, columns in the tableErrors - those who blocked the bot or deleted the account. They can't be returned
Answered“Contacts”, filter by tag react-2026-09Wave response: answered ÷ delivered
Made a choice"Contacts", filter by react-selectMessage quality 2
Applications and payments"CRM", transactions "Reactivation: ..." by stagesThe result is in money

A conventional example of how to count is a service base that has been dormant for six months: 800 in the segment → 730 delivered and 70 errors (9%) → 95 answered “yes” (13% of those delivered) → 34 wrote a number (36% of respondents) → 21 left the phone number → 8 payments. Compare the waves with each other: if the response is noticeably lower than the previous wave, the mailing went out in the wrong way or for no reason; if they answer, but make almost no choice, message 2 offers the wrong thing.

What the numbers won't show: reads. Messengers do not tell bots whether a person has opened a message, so “delivered” is the maximum that is known about the silent ones. There will be no counters for script blocks - the stage is recorded only by a tag, so tags react-2026-09 and react-select in the scheme are required, and not for beauty.

The general dashboard of the bot in “Analytics” will show a surge in incoming and operator responses on the day of the wave on a graph for 14 days - convenient for reporting to the manager, but there are no segment numbers there.

Limitations: whom the bot cannot return

Reactivation through a bot depends on the rules of messengers and the device CHBT. It's better to know your boundaries before promising results.

  • The bot writes only to those who wrote to it. Contacts from the old CRM, table or number database that do not have a conversation with the bot are not reachable by newsletter - in Telegram and MAX bot can't start a conversation first. You can only reactivate the bot's own database.
  • Those who block the bot will not receive anything. They will end up in the “Errors” of the newsletter. Only the person himself can restore contact by unblocking the bot; repeated broadcasts to him are pointless, and it is better to tag such a contact manually - block — and not included in the next waves.
  • Mailings - from the Basic plan. The Free section is closed; In addition, there is a limit of 30 conversations per month - if more than 30 different people write to the bot along with those who responded to the wave in a month, the bot will respond to each subsequent one with a phrase about the limit instead of a script.
  • The newsletter contains text only. There are no buttons, pictures or files; action - through a keyword or link.
  • The audience is without exception. A list of tags works like an "or"; a segment cannot be excluded. Hence the “one mailing + script” scheme: a second mailing using the same tag would hurt those who had already responded. If you really need a second mailing to the silent ones, the responders script should remove the segment tag using the “Delete tag” action - then it remains only with those who were silent.
  • There is no date requirement. The “sleeping” segment is collected by tags and uploading; the bot will not automatically update it.

These restrictions do not make reactivation useless - they make it fair: you are working with people who themselves once came to the bot and did not close the door.

After the wave: what to do with those who responded and those who remained silent

The wave ends not with sending message 3, but with parsing the database. Three groups, three actions.

They left the phone. Transactions “Reactivation: …” are in “CRM” in the “New” stage, conversations are in “Conversations” with the status “Operator”. Call on the same day: the person answered you first in six months, he will not wait a second time. After the conversation, the manager moves the stage and edits the tags in the card - waiting for a call removes st-paid or refusal puts.

They answered, but chose “remind me later” or fell silent after message 2. This is a warm remainder with a tag react-2026-09 without react-select. They don’t write to them for another month; the next wave a block later follows the tag remind-2026-10 with a new reason.

They were silent on the newsletter. They remain with the segment tag, without new tags. The next attempt is no earlier than three months later and always for a different reason. Those who remain silent twice are excluded from the waves: they remain in the database, but stop writing. You can’t remove a tag in your account en masse, so it’s easier to create a new tag for the next wave than to clean the old one.

And lastly, fix what caused the base to fall asleep. If the lead script does not contain a reminder every other day for those who did not leave their phone number, the next base will fall asleep the same way. One reminder within the script, delivered right away, is cheaper than any reactivation.

Wave launch checklist

  1. A segment tag has been selected and the filter in “Contacts” has checked who is included in it. Those who bought and refused are excluded from it, at least by hand.
  2. In the reactivation flow, there are “Keywords” triggers with an exact match for the word from the newsletter and for the selection numbers - otherwise the number “1” will be triggered inside the phone number.
  3. Message 2 - no buttons, otherwise the pause will not start.
  4. The "condition" after the pause checks the tag, not the variable.
  5. The chain was run with a pause of 60 seconds from the phone, then the pause was set for two days.
  6. Tags react-2026-09 and react-select on the spot - without them it is impossible to calculate the response.
  7. The “Transaction in CRM” and “Notify operator” actions are performed after collecting the phone; the manager knows that on the day of the wave, leads must be processed immediately.
  8. The newsletter was created with a “Delayed launch” for a weekday; the text is shorter than four lines and contains one action.
  9. After a week, five numbers from the metrics table are written down - they will become the basis for comparison of the next wave.

Mailings, “Canvas” and unlimited conversations are included in the Basic plan for 650 ₽ per bot per month; You can compare rates on the page “Plans” page. How mailing via a bot works in MAX - on the page “Max bot mailing”. Create a bot and collect the first wave →

More on the blog