The inbox shows all customer conversations across all your channels — website widget, WhatsApp, and Telegram — in one place. You can monitor what the AI is handling, step in when needed, and close resolved sessions.
Session statuses
| Status | Meaning | Who responds |
|---|---|---|
ai_handled |
Bot is responding automatically | AI (no action needed from you) |
human_escalated |
Bot handed off; needs a human | Your team |
closed |
Conversation resolved | — |
Viewing sessions
Chatbot → Inbox
Sessions are listed by last activity (most recent first). Use the status filter to focus on what needs attention:
- Needs reply — sessions in
human_escalatedwhere no agent has responded yet - All open —
ai_handled+human_escalated - Closed — resolved sessions for reference
Each session shows:
- Customer contact name/identifier
- Channel (widget, WhatsApp, Telegram)
- Last message preview
- Status badge
- SLA timer (if escalated)
Viewing the conversation
Click a session to open the full message thread. Messages are in chronological order. Each message shows:
- Role (
customer,bot,agent) - Content
- Timestamp
- Model used (for bot messages) and latency
Taking over from the AI
When a session is human_escalated, the bot stops responding. You reply directly in the inbox:
- Open the session
- Type your reply in the input box
- Click Send
Your reply is sent to the customer on the same channel they used (WhatsApp, Telegram, or widget). It appears in the thread as an agent message.
NOTE
While a session is human_escalated, the AI does not respond even if the customer sends additional messages. All messages are stored, but no bot reply is generated.
SLA timer
When the bot escalates a session to human, a 15-minute SLA timer starts. If no agent replies within 15 minutes, the timer breaches and the session is flagged in the inbox with a red indicator.
The timer is cleared automatically when:
- An agent sends a reply
- The session is assigned to an agent
- The session is closed
Assigning sessions
To assign an escalated session to a specific team member:
POST /chatbot/sessions/:id/assign
Content-Type: application/json
{ "agent_id": "user_abc123" }Or via the inbox: Session → Assign → [select team member]
Assigning clears the SLA timer. The assigned agent's name appears on the session card.
Closing a session
Mark a session resolved when the conversation is complete:
- Open the session
- Click Resolve
- Optionally add a summary note
PATCH /chatbot/sessions/:id/resolve
Content-Type: application/json
{ "summary": "Customer asked about delivery time — confirmed 3-5 days." }Closed sessions are read-only. The conversation history is preserved.
Pagination
The sessions list supports pagination:
GET /chatbot/sessions?status=human_escalated&limit=20&offset=0Use offset to page through results. The response includes a total count.
Message pagination
Long conversations use cursor-based pagination. Load older messages by passing the earliest visible message ID as before:
GET /chatbot/sessions/:id/messages?limit=50&before=msg_01j...The response includes has_more: true if there are older messages to load.