Design inbox dispositions — label sets, AI judge assignment, outcome distribution
A conversation disposition is the single outcome label a closed conversation carries — “Resolved”, “Refund issued”, “Escalated to billing”. Labels come from a disposition set: a named list of up to 50 labels scoped to one conversation type. Agents stamp a label at close time; when they close without stamping, the AI judge assigns one. The console reference documents every tab; this guide is the practice side — how to design the taxonomy, run the AI lane, and keep it honest as usage grows.How a conversation disposition differs from a voice disposition tag
A conversation holds one label from one set, applied at close. A voice call can carry several overlapping disposition tags stamps during wrap-up. Those tags live under Voice → Disposition Tags — a separate catalog with its own console and taxonomy. If you are modeling call outcomes (answered, voicemail, callback), that surface is the right one; the voice guide is Define and use disposition tags. Everything below is inbox-side: chat, email, social messaging, and SMS-style inbound threads.Where the console lives
Inbox → Settings → Dispositions, owner/admin only. Three tabs: Label sets (create/edit), Distribution (30-day outcome split), and Lifecycle rules (which state transitions a disposed conversation may take). The tab-level walkthrough of each surface is the console reference; this guide focuses on how to design the labels and read the stats. A tenant can hold up to 20 sets; each set covers one conversation type (inbox, voice, or any).
Design your label set
Start with a small, flat set rather than a deep hierarchy. The AI judge assigns labels by matching the closed thread against each label’s description; flat, distinctly-described labels give it unambiguous candidates. A nested tree (“Support → Billing → Refund”) creates labels the judge cannot tell apart, inflating the override rate until someone rewrites the descriptions. Two shapes work:- Core set — workspace-wide outcomes:
resolved,refunded,escalated,no-reply,spam. Enough for most support teams. - Team-specific set — a second set for a team with distinct outcomes (e.g. Sales:
qualified,demo-booked,not-interested) while the core set still catches general support traffic.
resolved only, with refunded/escalated treated as their own outcomes.
Create a label set
Open Inbox → Settings → Dispositions → Label sets and click Create disposition set.- Name — what the set answers for (“Support outcomes”, “Sales results”).
- Conversation type —
inbox,voice, orany. Immutable after creation; useanywhen both voice and digital closes share the set. - Labels — each row carries a display text, a slug id (auto-derived from the text until you hand-edit it), an optional color, and an optional description. The description is the AI judge’s guidance channel: “when should the judge pick this label.”
Screen reference: the creation dialog shows the set name at top, the conversation-type and default controls below, and one card per label row — color swatch, display text, slug id, and the AI-guidance description.
Manual stamping
Agents stamp a disposition at close:- Open the conversation and click close.
- In the close dialog, pick a label from the default set for that conversation type (if no set is default, the picker shows applicable sets).
- Confirm.
refunded in one fire. Macro setup is covered in Macros and canned responses.
AI judge auto-assignment
When an agent closes without stamping, the AI judge reads the closed thread and assigns a label plus a confidence score, provided a default set exists for the conversation’s type. If no default set exists, the AI lane skips silently (the close succeeds; distribution just shows fewer AI-auto labels). Re-opening then re-closing replaces the prior assignment. The judge never blocks the close path. The override loop is the quality channel:- An agent or supervisor re-stamps a conversation the AI had labeled. The override rate tile on Distribution counts that change.
- The re-stamp is a manual assignment; the override is recorded, but the taxonomy itself does not change. The supervisor decides on the next naming split or description rewrite — the AI lane trains the team’s editorial judgment, it does not re-write the set on its own.
- A rising override rate means the label descriptions overlap or a label is a catch-all; tighten the descriptions first, split second.
Screen reference: the Distribution panel starts with the Filter-by-set dropdown and window caption, then the four summary tiles, then a card of per-label bars showing share-of-total.
Outcome-distribution panel
The Distribution tab shows the last 30 days of disposed conversations. Filter to one set or view all sets. Four tiles summarize the window; per-label bars show each label’s share. Reading it:- Spot the catch-all. If
resolvedis 70% of the split while the queue reports vague closes, agents (or the judge) are using it as a default dump. Tighten its description and re-check after a week. - Per-agent skew. Filter by set and compare the distribution before/after a taxonomy split; one agent driving most of a label’s volume shows where the coaching or the macro chain should land.
- Decide split vs. retire. A label that is always a catch-all for two distinct outcomes should split into two labels. A label nobody picks after the descriptions settle should retire.
Hygiene rules
- Retirement preserves stamps. Removing a label from a set does not rewrite history — conversations stamped with that label keep their recorded outcome. The label simply stops appearing in the close picker and AI guidance. Filter the distribution before retiring to confirm the label’s remaining slice is historic, not active.
- Renaming keeps reporting continuous. A label has an immutable slug id and a mutable display text. Rename the display text (
Refund issued→Refund approved) and all existing stamps follow the new text; the slug id is what stats group by. Do not “fix” a name by adding a new slug and retiring the old one — that splits one outcome across two ids and fragments the distribution.
Worked example — support workspace splits a catch-all
A support workspace runs with the AI judge on. The core set has eight labels; three dominate —resolved (55%), billing (18%), escalated (12%).
- The supervisor filters Distribution to the default set. The
billingbar reads 18% but, drilled by agent, two agents account for most of it; drilling into samples, some are refund requests and some are billing-product questions. - The team edits the set:
billingsplits intobilling-refund(“when the customer asks for a refund or disputes a charge”) andbilling-inquiry(“when the customer asks about a plan, invoice, or payment method”). The oldbillingid is retired; existing stamps on it stay on their recorded rows. - Descriptions are rewritten so the judge’s candidates do not overlap.
- Two weeks later the distribution is re-checked: the combined
billing-refund + billing-inquiryshare matches the oldbillingslice, the override rate has dropped, and the judge now lands refund requests on the refund lane instead of the generic billing lane.
API overview
Disposition sets, distribution stats, and lifecycle rules are available over the inbox API — list/create/edit sets, read distribution with optionalfrom/to/taxonomy_id, and CRUD lifecycle rules. The console and API stay in parity so tenant automation reads the same taxonomy the dashboard shows. For the full endpoint contract, see the inbox API reference — this guide intentionally does not re-document the endpoints; it covers the taxonomy design.
See also
- Inbox dispositions — console reference — full tab walkthrough plus lifecycle-rule semantics.
- Macros and canned responses — stamp a disposition as one macro step.
- Define and use voice disposition tags — the separate call-side taxonomy.