Skip to Content
📚 Documentation is in active development — pages marked TODO will fill out over the next few weeks.
InboxConversation lifecycle

Conversation lifecycle

Five statuses, with a clear order.

StatusMeansSet by
OPENActive conversation, the agent might reply at any timeAuto on first inbound
PENDINGWaiting on the customer to replyAgent (Set status → Pending)
RESOLVEDThe agent has answered, awaiting confirmationAgent or auto_resolve_idle_days
CLOSEDArchived, no longer in the active inboxAgent or auto_archive_resolved_days
REOPENEDA customer replied after RESOLVED / CLOSEDAuto (if allowCustomerReopen)

Auto-transitions (per-client config)

Set under Chat Settings for each client:

  • autoResolveIdleDaysN days with no agent or customer activity → auto-flip to RESOLVED.
  • autoArchiveResolvedDaysN days after RESOLVED with no new activity → CLOSED.
  • allowCustomerReopen — when false, a CLOSED conversation does NOT auto-reopen on a new inbound. The customer’s message creates a brand-new conversation.

Why these exist

A queue can’t reasonably have 5,000 OPEN conversations — they pile up. The auto-resolve

  • auto-archive timers keep the inbox lean while still giving the agent a window to follow up.

In reports

The reports surface tracks how long each conversation spent in each status. First-response time = firstReply.createdAt - conversation.createdAt. Resolution time = RESOLVED.at - conversation.createdAt.

Last updated on