Inbox

Managing sessions

How to use the unified inbox to monitor conversations, take over from AI, and close sessions.

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_escalated where no agent has responded yet
  • All openai_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:

  1. Open the session
  2. Type your reply in the input box
  3. 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:

  1. Open the session
  2. Click Resolve
  3. 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=0

Use 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.

Chatbot · InboxEdit on GitHub