ChatMaxima Docs
Studio

Inactivity Timeout - Auto-Close Idle Conversations

Automatically close bot conversations when users stop responding. Configure timeout duration, reminder messages, and conversation status on auto-close.

Overview

When a user stops responding mid-conversation, the bot normally waits indefinitely for their next message. The Inactivity Timeout feature solves this by automatically closing idle conversations after a configurable period of inactivity.

This is useful when users abandon a conversation at any point in the flow, whether at block 3 of 20 or after the bot sends its final message. Without this feature, stale conversations pile up in your inbox, agents see outdated "in-progress" chats, and returning users get confused by a flow that picks up where they left off days ago.

With inactivity timeout enabled, the bot detects silence, optionally sends a reminder ("Are you still there?"), and then closes the conversation. When the user messages again later, the bot starts fresh from the beginning.

Where to Find It

Inactivity timeout is configured in the Starting Step (trigger node) of your chatbot flow.

  1. Open your chatbot in Studio
  2. Double-click the Starting Step node
  3. Scroll down past Bot Working Hours to find Conversation Inactivity Timeout

How It Works

The timeout works at every point in the flow where the bot waits for user input. This includes text input blocks, button blocks, date pickers, file uploads, MaxIA response block, carousel selections, and the End Conversation block.

Every time the bot sends a message and waits for a response, it starts an internal timer. If the user responds, the timer resets. If the user stays silent past the configured duration, the bot takes action.

Single-Phase (No Reminder)

Bot sends message ──▶ Waits for response ──▶ User silent

                                          Timer expires


                                      Send end message
                                      Close conversation

Two-Phase (With Reminder)

Bot sends message ──▶ Waits for response ──▶ User silent

                                       Timer expires (Phase 1)


                                      Send reminder message
                                      ("Are you still there?")

                                       Wait reminder duration

                                          Still no response?

                                          YES ────┤──── NO
                                           │           │
                                           ▼           ▼
                                    Send end msg   Timer cancelled
                                    Close convo    Bot continues

At any point, if the user responds, all pending timers are cancelled and the bot continues normally. The timer resets with every new message the bot sends.

Configuration

Step 1: Enable Inactivity Timeout

Toggle Conversation Inactivity Timeout from No to Yes. This reveals the timeout settings.

Step 2: Set the Duration

Choose how long the bot should wait before taking action.

DurationBest For
5 minutesQuick forms, lead capture bots
10-15 minutesGeneral support bots
30-60 minutesComplex flows where users might need time
2-6 hoursLow-urgency bots, async conversations
12-24 hoursBots where users might return the same day

Note: The maximum timeout is 24 hours. This keeps the feature within the WhatsApp messaging window and ensures conversations do not stay idle for too long.

Step 3: Configure Reminder (Optional)

Toggle Send Reminder Before Closing to Yes to enable two-phase closing.

SettingDescriptionDefault
Reminder MessageThe nudge message sent before closing"Are you still there? This conversation will be closed shortly if there is no response."
Wait After ReminderHow long to wait after the reminder before closing (2-30 min)5 minutes

The reminder gives users a chance to continue the conversation before it is auto-closed. If they respond to the reminder, the bot continues from where it left off.

Step 4: Set the End Message

Configure the message sent when the conversation is closed due to inactivity.

SettingDescriptionDefault
Inactivity End MessageFinal message sent on auto-close"This conversation has been closed due to inactivity. Send a message anytime to start again."
Set Status on Auto-CloseConversation status to set (e.g., Resolved, Closed)None

Step 5: Submit and Save

Click Submit in the modal, then save your bot flow using Save Changes in the top bar.

What Happens When a User Returns

When a user sends a message after their conversation was auto-closed due to inactivity, the bot restarts from the beginning. The user gets a fresh start as if they are messaging for the first time. This is the expected behavior since the previous flow context is no longer relevant.

Which Blocks Support Inactivity Timeout

The timer is active at every point where the bot pauses and waits for user input:

Block TypeCovered
Text InputYes
Button / Quick ReplyYes
Date PickerYes
Email InputYes
Number InputYes
Phone InputYes
Website InputYes
Password InputYes
File UploadYes
LocationYes
Audio InputYes
CarouselYes
End ConversationYes
MaxIA (AI Assistant)Yes

Blocks that do not wait for input (text messages, conditions, API calls, webhooks, set variable, etc.) do not trigger the timer since the bot processes them instantly and moves on.

Interaction with Other Features

Bot Working Hours

Inactivity timeout works independently of bot working hours. If the bot is configured to only run during certain hours, the timeout timer still counts down based on when the last message was sent, not based on working hours.

Smart Delay / Timeout Blocks

These are separate features. Smart delays pause the flow for a set duration before continuing to the next block. Inactivity timeout monitors whether the user has stopped responding. Both can coexist in the same bot without conflict.

End Conversation Block

If your flow already has an End Conversation block, the inactivity timeout adds an additional safety net. Even if the user never reaches the End Conversation block (because they abandoned mid-flow), the timeout will close the conversation.

Common Use Cases

Lead Capture Bot

Users often fill in 2-3 fields and then leave. Set a 10-minute timeout so the partial lead is closed and marked with a status your team can filter on.

  • Duration: 10 minutes
  • Reminder: No (short flow, reminder adds friction)
  • Status: "Incomplete Lead"

AI Support Bot (MaxIA)

Users ask a question, get an answer, and leave without saying goodbye. The bot waits forever for the next question.

  • Duration: 30 minutes
  • Reminder: Yes ("Need anything else? This chat will close shortly.")
  • Reminder Wait: 5 minutes
  • Status: "Resolved"

Appointment Booking Bot

Users might need time to check their calendar. Give them a longer window but still close eventually.

  • Duration: 2 hours
  • Reminder: Yes ("Still looking for a time? Let me know if you need help.")
  • Reminder Wait: 15 minutes
  • Status: "Pending"

Existing Bots

Enabling inactivity timeout is opt-in only. Existing bots are not affected. The feature only activates when you explicitly enable it in the Starting Step and save the bot.

Troubleshooting

Timeout is not firing

  1. Confirm the Conversation Inactivity Timeout toggle is set to Yes in the Starting Step
  2. Verify you clicked Submit in the modal and then saved the bot with Save Changes
  3. Wait at least one minute after the timeout duration, as the system checks for expired timers periodically
  4. The timer only starts when the bot sends a message and waits for input. If the bot is still processing blocks, no timer is planted

User gets the end message but conversation does not close

  1. Check if a Set Status on Auto-Close is configured. Without a status, the conversation remains in its current state
  2. The end message is sent, but the conversation status only changes if you selected a status in the configuration

User returns but bot does not restart

  1. The bot restarts from the Starting Step when the user sends a new message after auto-close
  2. If the bot has trigger keywords configured, the user may need to send the correct keyword to re-trigger the flow

Next Steps