2.10.1 Inbox — Conversations and Threads
The Inbox module provides a centralized, structured environment for managing conversations across channels and sources. At its foundation lies a conversation model that prioritizes clarity, continuity, and auditability. Messages are not treated as isolated events but as part of persistent conversational threads, enabling teams to follow context over time and collaborate without fragmentation.
The Inbox is designed to scale from individual operators to multi-team organizations, maintaining consistency in how conversations are grouped, displayed, and acted upon, regardless of their origin.
Conversation Model
A conversation represents a logical container for related messages exchanged with a single external or internal counterpart. Each conversation is uniquely identifiable and persists independently of individual messages or sessions.
Core characteristics of a conversation include:
A stable identifier that survives reconnects, retries, and channel interruptions
A defined scope (external contact, system source, or internal user)
A lifecycle state (active, pending, resolved, archived)
This model ensures that communication history remains coherent even when messages arrive asynchronously or through different technical pathways.
Message Threads
Within each conversation, messages are organized into threads. A thread represents a chronological sequence of messages that share a common contextual intent. This distinction allows the Inbox to support complex interaction patterns such as follow-ups, delayed replies, or system-generated responses without breaking readability.
Threading enables:
Clear temporal ordering of messages
Grouping of related replies and events
Separation of automated messages from human interaction
Threads are rendered linearly by default, while still retaining structural metadata for analytics, automation, and moderation workflows.
Message Types and Sources
The Inbox supports multiple message types within the same conversation context. These may include:
User-generated messages
Automated system messages
Integration-driven events
Status or delivery updates
Each message carries explicit source attribution, allowing operators to immediately distinguish between human input, automation, and third-party integrations. This distinction is critical for trust, traceability, and correct response handling.
State Management and Resolution
Conversations progress through well-defined states that reflect their operational status. Common states include:
Open — active conversation requiring attention
Pending — awaiting external response or system action
Resolved — completed interaction with no further action required
Archived — retained for reference or compliance purposes
State transitions are intentional and auditable, ensuring that no conversation is lost or silently discarded. Resolution does not delete data; it signals closure while preserving full history.
Collaboration and Assignment
In team environments, conversations can be assigned to specific users or groups. Assignment metadata is stored alongside the conversation rather than the message level, ensuring continuity even when multiple operators contribute over time.
Collaboration features include:
Explicit ownership and reassignment
Visibility into who last interacted with a conversation
Internal notes or annotations separated from external messages
This structure prevents duplicated effort and supports accountability across teams.
Ordering, Visibility, and Prioritization
The Inbox surfaces conversations based on activity, priority, and state rather than raw message volume. Sorting and filtering mechanisms ensure that critical conversations remain visible while resolved or inactive threads are deprioritized.
Unread indicators, timestamps, and activity markers are derived from thread-level events, not individual message noise, resulting in a calmer and more actionable interface.
Data Integrity and Auditability
All conversation and message data is stored immutably once written. Edits, deletions, or redactions—where permitted—are tracked explicitly to maintain a reliable audit trail.
This design supports:
Compliance and regulatory review
Internal quality assurance
Long-term analytics and reporting
No interaction is ever implicitly overwritten or lost.