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.
- Open your chatbot in Studio
- Double-click the Starting Step node
- 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.
| Duration | Best For |
|---|---|
| 5 minutes | Quick forms, lead capture bots |
| 10-15 minutes | General support bots |
| 30-60 minutes | Complex flows where users might need time |
| 2-6 hours | Low-urgency bots, async conversations |
| 12-24 hours | Bots 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.
| Setting | Description | Default |
|---|---|---|
| Reminder Message | The nudge message sent before closing | "Are you still there? This conversation will be closed shortly if there is no response." |
| Wait After Reminder | How 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.
| Setting | Description | Default |
|---|---|---|
| Inactivity End Message | Final message sent on auto-close | "This conversation has been closed due to inactivity. Send a message anytime to start again." |
| Set Status on Auto-Close | Conversation 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 Type | Covered |
|---|---|
| Text Input | Yes |
| Button / Quick Reply | Yes |
| Date Picker | Yes |
| Email Input | Yes |
| Number Input | Yes |
| Phone Input | Yes |
| Website Input | Yes |
| Password Input | Yes |
| File Upload | Yes |
| Location | Yes |
| Audio Input | Yes |
| Carousel | Yes |
| End Conversation | Yes |
| 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
- Confirm the Conversation Inactivity Timeout toggle is set to Yes in the Starting Step
- Verify you clicked Submit in the modal and then saved the bot with Save Changes
- Wait at least one minute after the timeout duration, as the system checks for expired timers periodically
- 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
- Check if a Set Status on Auto-Close is configured. Without a status, the conversation remains in its current state
- 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
- The bot restarts from the Starting Step when the user sends a new message after auto-close
- If the bot has trigger keywords configured, the user may need to send the correct keyword to re-trigger the flow
Next Steps
- Conversation End Block - Manually end conversations with a restart button
- Bot Working Hours - Schedule when your chatbot is active
- Studio Overview - Explore all block types and flow builder features
Conversation End Block - Gracefully Terminate Bot Interactions
Use the Conversation End block to close chatbot flows, set conversation status, assign agents or departments, and let customers restart the conversation.
API Block - Call External APIs from Your Chatbot Flow
Call any REST API from your ChatMaxima chatbot flow. Configure URL, method, headers, authentication, body, and map JSON response fields to variables.