Skip to content

Conversations overview

Conversations are the unit of Zubby. Every interaction between a shopper and the agent - whether or not it led to a sale - is captured as a conversation record. This page explains the data model, what you can do with it, and how to find the conversations that matter.

The data model

EntityWhat it is
ConversationThe whole thread, scoped to one shopper session. Has a status (active or closed), page context, escalation state, assignee, tags, and a CSAT rating if the shopper left one.
MessageA single turn - shopper input, AI reply, or a system/tool turn. Stores the text, any tool calls the AI made, and token cost.
Tool callA function the AI invoked: search products, get order status, create ticket, etc. Recorded on the message that triggered it.
AI enrichmentIntent, sentiment, confidence score, an AI-written summary, and auto-tags - classified asynchronously after each exchange, so the queue view tells you what a thread is about without opening it.
Internal noteTeam-only commentary attached to a conversation. Never shown to the shopper.
OutcomeComputed from what actually happened: converted, lead captured, escalated to a human, knowledge gap, or browsed. Used in analytics and to surface gaps.

Conversation lifecycle

  1. Started - the shopper opened the widget and sent a first message (or arrived via a messaging channel).
  2. Active - turns are being exchanged. The AI classifies each exchange in the background; low confidence or an explicit “I want a human” escalates it.
  3. Escalated - a human is needed. The conversation is flagged, a support ticket is minted, and your team is notified. The thread itself stays open.
  4. Closed - closed from the inbox (and reopenable there). When the shopper closes the widget, they’re prompted for a CSAT rating that lands on the record.

Sessions vs. customers

A single customer can have many conversations across visits. Identity stitching links them under the same shopper profile so you can see related history. Identity can come from a verified platform login or signed integration, as well as a shopper-provided contact address. An email typed into chat is contact information; it does not alone authorize protected order access or writes. Anonymous sessions remain separate where no supported identity link exists.

Quality signals

Every conversation accumulates signals you can filter and act on:

  • Confidence - a model-enrichment signal, not measured answer accuracy. The automatic enrichment path escalates below its service threshold (currently 0.4). Knowledge-gap handoff is a separate behavior controlled by the Human handoff switch. See handoff triggers.
  • Sentiment - positive, neutral, negative, or frustrated, per message and rolled up per conversation.
  • Intent - what the shopper was trying to do (sizing, order status, returns…), useful for spotting themes.
  • CSAT - the shopper’s own rating, collected when they close the widget.
  • Knowledge gaps - questions the AI couldn’t ground in your catalog or knowledge base feed the training loop.

These signals feed the analytics dashboard and the weekly review (see Analytics).

Finding conversations

The conversations workspace has a search box (matches shopper questions, AI replies, and shopper emails) plus two filters: status (active / closed) and scope - with leads, needs human, or knowledge gaps. The unified inbox adds channel filters across web chat, email, WhatsApp, Instagram, Messenger, and SMS. A quick daily triage:

  1. Open Conversations and set scope to Needs human - these are escalations with a ticket waiting.
  2. Inspect the trigger and work through them: some shoppers asked for help, while other threads were escalated automatically or by a teammate. Reply where appropriate, then resolve the linked ticket.
  3. Switch scope to Knowledge gaps and skim - each gap you correct and verify in the knowledge base can improve a later answer. Wait for indexing and test the answer rather than assuming resolution.

Worked review: understand an escalation

Illustrative thread: a shopper asks whether a product fits a device model absent from the catalog. Open Needs human, read the transcript, source/tool output and recorded escalation reason. A knowledge-gap ticket means an answer lacked support; it does not mean the shopper explicitly requested a person or that the product is incompatible. Give a verified answer or explain the uncertainty, then add an approved compatibility source only when you have one. Use the original question as a regression check after indexing.

Privacy

Access to conversations is scoped per store and gated by team roles and capabilities. Shopper data honors GDPR requests - export and deletion flows are built in. Open a web conversation and use itsExport CSV control to download that transcript; useReports for the documented bulk exports. Handle downloaded shopper data under your access and retention policy.

API

Conversation summaries (status, intent, sentiment, AI summary, tags, escalation state) are readable via the public REST API on Pro or Enterprise with a scoped read key and cursor pagination - built for syncing into a CDP or warehouse. For pushes instead of polls, subscribe to events like conversation.escalated via outbound webhooks on Pro or Enterprise. Those deliveries are best effort with no automatic retry; retain a reconciliation path when an event is important.

Missing something, or found an error on this page?

Contact support and include the URL of this page (/docs/conversations).