Conversation lifecycle
Five statuses, with a clear order.
| Status | Means | Set by |
|---|---|---|
| OPEN | Active conversation, the agent might reply at any time | Auto on first inbound |
| PENDING | Waiting on the customer to reply | Agent (Set status → Pending) |
| RESOLVED | The agent has answered, awaiting confirmation | Agent or auto_resolve_idle_days |
| CLOSED | Archived, no longer in the active inbox | Agent or auto_archive_resolved_days |
| REOPENED | A customer replied after RESOLVED / CLOSED | Auto (if allowCustomerReopen) |
Auto-transitions (per-client config)
Set under Chat Settings for each client:
- autoResolveIdleDays —
Ndays with no agent or customer activity → auto-flip to RESOLVED. - autoArchiveResolvedDays —
Ndays 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