Guides

How to re-engage dormant bot users with automated messages in Botconsole

Getting a user to start your bot is only the first step. In messaging apps like Telegram, WhatsApp, and Instagram, users get distracted quickly. A visitor might look through your catalog, check pricing plans, or begin answering onboarding questions, and then leave before taking action.

19.08.2026 29 views
How to re-engage dormant bot users with automated messages in Botconsole

Sending manual, one-off messages to your entire subscriber list often annoys active users and leads to blocks. Automated, trigger-based messages let you reach specific users based on what they did or did not do in your bot.

Botconsole includes an Auto-messages node designed for scheduled broadcasts, re-engagement funnels, and personalized message delivery.


1. Auto-messages modes and settings

In the visual builder, the Auto-messages node appears in dark red with a timer icon. It operates in two main modes:

┌─────────────────────────────────────────────────────────────┐
│                     Auto-Messages Node                      │
├──────────────────────────────┬──────────────────────────────┤
│       1. User Timer          │      2. Global Timer         │
│  (Triggered per individual)  │   (Broadcasts & Scheduling)  │
│                              │                              │
│ • Delay from registration    │ • Send to connected channels │
│ • Delay from last activity   │ • Broadcast to user segments │
│ • Recipient filters          │ • Individual user schedules  │
│ • Repeat intervals           │ • Calendar time triggers     │
└──────────────────────────────┴──────────────────────────────┘

User timer mode

This mode triggers messages for individual subscribers based on their activity timeline:

  • Countdown baseline: Start the delay timer from the user's registration date or from the time of their last message (last_request).
  • Delay duration: Set any duration from 1 to 9999 hours or days (for example, 1 hour after viewing pricing, or 3 days of inactivity).
  • Repeats: Set repeats to 0 to send once, or choose a number of repeats with a set interval between each run.
  • User variables: Insert user details directly into message blocks, including {{user.name}}, {{user.city}}, {{user.balance}}, {{user.credits}}, and {{user.last_payment}}.
  • Audience filters: Restrict delivery by payment status (Has payment or No payment), active subscription date ({{$NOW.addDays(7).toDate()}}), recent activity window, language, or custom tags.

Global timer mode

This mode runs on a general schedule or fixed interval:

  • Connected channels and groups: Post updates automatically to linked Telegram channels and supergroups, using channel variables like {{resource.title}} and {{resource.url}}.
  • User broadcasts: Send scheduled updates to all subscribers or filtered audience segments.
  • Daily broadcast limits: Botconsole checks your plan's daily user allowance to keep broadcasts within safe delivery limits.

2. Recovering abandoned checkouts with targeted discounts

A practical way to use the User Timer is recovering users who looked at paid plans but did not complete checkout.

┌─────────────────────────────────────────────────────────────┐
│ 1. User opens pricing command                               │
│    └──► Conversion Node logs goal: "Viewed Pricing"         │
└──────────────────────────────┬──────────────────────────────┘
                               │
                (User does not pay within 1 hr)
                               │
                               ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Auto-Messages Node (User Timer)                          │
│    • Delay: 1 hour from last activity                       │
│    • Goal filter: Reached "Viewed Pricing"                  │
│    • Recipient filter: "Has payment" = "No payment"         │
└──────────────────────────────┬──────────────────────────────┘
                               │
                               ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Database / Action Block                                  │
│    • Assigns personal discount to user                      │
└──────────────────────────────┬──────────────────────────────┘
                               │
                               ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Auto-Message Sent                                        │
│    "Hi {{user.name}}, we noticed you were checking our      │
│     plans. Here is a 15% discount for the next 24 hours."   │
│    [ View Discounted Tariffs ]                              │
└─────────────────────────────────────────────────────────────┘

Setup steps:

  1. Place a Conversion node named Viewed Pricing inside your pricing command.
  2. Add an Auto-messages node set to User timer.
  3. Set the delay to 1 hour from last activity time.
  4. In the audience filters, select the reached conversion Viewed Pricing and set Has payment to No payment.
  5. Add an action or Database block to assign a discount percentage to the user.
  6. Write the message text and add an inline button linking back to your /tariffs command. Because the discount has been assigned in the database, the tariffs command will display the lower price.
  7. If the user completes the purchase, downstream nodes record the transaction as usual.

3. Announcing feature updates and tracking clicks

When you roll out new bot features, you can send an announcement to existing users and track how many people try the update:

  1. Create an Auto-messages node in Global timer mode targeting users, with Send only once to each user enabled.
  2. Add an announcement message explaining the update.
  3. Attach an inline button (such as Try new feature) that routes directly to the new command.
  4. Open the builder in Statistics mode to see the click count on the outgoing connector. This shows how many subscribers interacted with the announcement and opened the new tool.

4. Setting up individual user schedules

For bots that provide daily routines, lessons, fitness plans, or morning summaries, users often want messages delivered at a time they choose.

Botconsole handles this through Individual Schedules in Calendar mode.

┌──────────────────────────────────────────────────────────────┐
│                    User Setup in Bot                         │
│ User selects preferred time: 08:30 ("morning")               │
│ └──► Database Block creates User Schedule record             │
└──────────────────────────────┬───────────────────────────────┘
                               │
                               ▼
┌──────────────────────────────────────────────────────────────┐
│            Auto-Messages Node (Global / Calendar)            │
│ • Schedule type: "morning"                                   │
│ • Individual schedule: Enabled                               │
│ └──► Delivers to each user at their selected time            │
└──────────────────────────────────────────────────────────────┘

Implementation:

  1. In your bot's onboarding or settings flow, prompt the user to choose their preferred reminder time (such as 08:30 for a morning prompt or 20:00 for an evening summary).
  2. Use the Database Block (Source: User Schedules, Action: Create/Update) to save this schedule with a type identifier, such as morning or daily_lesson.
  3. In your Auto-messages node, select Global timer, switch to Calendar schedule type, check Individual schedule, and enter the schedule identifier (e.g., morning).
  4. You can create multiple Auto-message nodes with different schedule types (for instance, one for morning and another for evening), allowing each user to receive distinct content at different parts of the day.

5. Sending messages by user timezone

If your bot has users in different parts of the world, sending a broadcast at 10:00 UTC might reach some users in the middle of the night.

Botconsole stores a timezone field for each user in the database. You can populate and update this field in two ways:

  1. AI-driven timezone resolution: The bot asks the user for their city. When the user types their city name (such as "Tokyo", "London", or "Berlin"), an AI Dialog node resolves the name to a standard IANA timezone string (like Asia/Tokyo or Europe/London). A Database block then writes this value to the user profile.
  2. Direct selection: The user chooses their region or UTC offset from a list of buttons.

When an Auto-message runs on a schedule (such as 09:00 AM), Botconsole evaluates the recipient's stored timezone and delivers the message at 09:00 AM in that user's local time.


6. Routing user replies with the after-sending action

Automated messages do not have to be one-way notifications. The Next step setting in the Auto-messages editor controls what happens if a recipient replies to an auto-message:

  • Drag the After sending dashed connector to a Command node (such as your main menu or an AI support assistant).
  • If the user sends a text message or file after receiving the auto-message, the bot automatically runs that command.

Summary

Automated messages allow you to re-engage users without sending manual broadcasts to your entire list:

  • User timers trigger follow-ups based on specific actions, such as abandoned checkouts or prolonged inactivity.
  • Global timers deliver feature announcements and publish scheduled posts to connected channels.
  • Individual schedules and timezone detection ensure daily routines and reminders reach users at their preferred local time.
  • Canvas statistics show delivery numbers and button clicks directly inside the builder.

Create a chatbot in Botconsole

Attract twice as many clients and generate sales on autopilot through messengers with Botconsole.