Перейти к основному содержимому

Входящие

Здесь живут разговоры с пользователями: диалоги на одной вкладке, кампании на другой. Каждый диалог говорит, кто писал, пользователь, агент или модель, и перепутать их нельзя.

The inbox in the Live environment
The inbox, Live environment.
The inbox in the Live environment, dark theme
The inbox, Live environment.

Conversations

A conversation opened to its turns
A conversation open: every turn attributed.
A conversation opened to its turns, dark theme
A conversation open: every turn attributed.

A thread is a person's messages from the Messenger, answered from here. Every turn carries who wrote it: the end user, a named agent, or the model, and the attribution is a database rule rather than a convention, so an assistant turn can never wear a person's name. Threads are open, snoozed or resolved; replying reopens what needs reopening, snooze parks a thread until a date, assignment names whose it is, and new turns stream in live while the thread is on screen.

Campaigns

The campaigns tab
The campaigns tab: every send with its status.
The campaigns tab, dark theme
The campaigns tab: every send with its status.

A campaign is one message to many people: in-app, email or webhook, targeted at everyone, a cohort or named people. A sent campaign reports its deliveries by outcome, delivered, read, failed and pending, so a send that half-landed reads as exactly that rather than as done.

Proposals

The model's suggestions review where they point rather than on a tab of their own: a reply drafted for a thread waits in that conversation, a suggestion raised by an anomaly sits under that anomaly on Home, and one about a cohort sits on the cohort itself. Each proposal states its action in a sentence with its fields editable in place, plus its rationale; a person approves, adjusts or rejects it, and the decision is recorded with who made it. Nothing a proposal suggests happens without that approval.

Where this meets the API

The concept is the Messaging pillar. On the wire: threads are conversations and conversationThread, answered through replyToConversation, setConversationStatus and assignConversation, with live turns on the conversationTurns subscription; campaigns are messages and composeMessage; proposals are aiProposals with approveProposal, editProposal and rejectProposal (GraphQL reference). The user side of every thread is the Messenger, configured on its settings screen.