On this page

#Inbox

Invite supervisors from Team in the inbox (Teams covers developers too). They sign in with a code to their email, plus a passkey or an authenticator code if their account has two-step verification, at inbox.vatio.ai/<workspace> — every conversation, replies, human takeover, ratings, and the agent's tool calls — along with analytics, what each report became, the knowledge, whose entries they can edit there, and the business the agent works for. They see that and nothing else: no deploy, no tools. Remove them from the same page and the next request they make is refused, including a socket they already had open.

Invite someone as a viewer instead and they read all of that with no reply box and nothing to edit. Either role can be narrowed to some agents' conversations (Teams), and every conversation opened, reply sent and takeover handed back is recorded in the workspace's Activity.

A supervisor can also connect the workspace's WhatsApp number, or renew its access, when the number is theirs: see When your client has the number.

There is nothing to embed and no token to mint. Being signed in to Vatio, as someone this workspace has invited, is the whole access model.

Each conversation shows the channel it came through: Widget for Vatio's widget, Web for a page built on the browser SDK, then iOS, Android, WhatsApp, Instagram and CLI. With more than one in use, the row above the list filters by channel, and scrolls sideways when they do not fit.

Replying starts human takeover, which pauses agent replies on that chat — from the inbox, or from the WhatsApp Business or Instagram app on your own account, which reaches Vatio as an echo and counts the same. Hand it back from the inbox when you are finished, or leave it: a takeover expires 8 hours after the last thing the person said, and the agent picks the conversation up again the next time the visitor writes. The clock restarts on every human reply, so a conversation somebody is actively holding never expires underneath them.

While it lasts, the conversation shows Person in the list and a banner above the thread says who is handling it and that the agent is paused. Each human reply says whether it came from the inbox, with the name of whoever wrote it, or from the channel's own app.

A conversation you open from one of those apps, writing first to someone who has never written to you, stays yours: the takeover starts when they answer, however late that is, so the answer reaches you and not the agent. Until then the chat stays out of the inbox. Whenever the agent does pick a conversation up again, it knows which earlier replies a person wrote and stays consistent with them.

To have the agent ask for a person itself, rather than waiting for one to notice, declare handoff on it.

The contact pane beside a conversation is also where the owner and developer members answer a person who asks for their data or asks to be forgotten: Download their data and Delete this contact and their data. See Retention and deletion.

A message that went out with buttons shows them under it, one under the other, as the contact saw them: the Sign in link, the button to share a number, a template's buttons, and the three answers to the rating question, with the one the contact tapped marked. The rating itself sits in the thread where the visitor gave it, with their comment if they left one.

The box above the conversation list finds a conversation the way a phone's chat app does. Type a name, an @username, an email or part of a number and the people who match come first; below them, every message that says it, newest first, with who said it and when. Picking a message opens that person's thread scrolled to it, however far back it is.

Case and accents don't matter (envio finds "Envío"), and several words find the messages that have all of them. It searches the environment and channel the list is showing, and only what the thread shows: never tool results or discarded drafts. Messages are stored encrypted, so each search reads through the most recent 10,000; when it stops short, Search older messages carries on from there.

#Business

The Business page is what the agent knows about the business it works for, set by the people who run it rather than by the developer: its name, a description (what it does, where it is, how to reach it), and its opening hours — a time zone and shifts per day, or someone always available. The agent uses them from the moment they are saved, in every environment, and gives customers the hours when they ask. The page also shows, read-only, the conditions the agent hands a conversation over on.

Its Brand card is how the business looks to visitors: the logo (the agent's avatar in the widget and on the chat page), the brand color the widget uses as its accent, and the "about" the widget shows before anyone writes.

#Analytics

Analytics is how the agent is doing over the last 7, 30 or 90 days, for the environment being viewed:

  • Conversations, with the change against the previous period, and how many asked for a person.
  • Reports not solved yet, and how many were reported and solved in the period.
  • The share of visitor ratings that were good, with the 👍 😐 👎 counts.
  • Conversations per day, stacked by channel.
  • The latest open flags and the latest visitor comments, each linking to its conversation.

Eval replays are not counted: they are Vatio testing the agent, not visitors.

#Report a reply

On any reply the agent wrote, Report this reply asks for what should have happened: a different answer, an action, a tool the agent should have used, a handover to a person. That note is a test from then on, whether the reply was on live or on preview: every new version of the agent is asked the same question and checked against it. Nobody marks a report as solved.

The report's state shows on the reply itself, in the conversation:

StateMeans
OpenThe agent visitors talk to still answers it wrong
Fixed · not published yetThe next version answers it the way you asked; it is not live yet
Resolved · a1b2c3dLive answers it the way you asked, since the version named

Until the agent's first publish there is no live, so preview is the agent: a report is resolved as soon as preview answers it right. If a resolved one is still wrong, rewrite your note in the conversation: a new note is a new request, and the report is open again. A report without a note cannot be tested.

#Continuous improvement

Continuous improvement, in the inbox's menu, is every report the team made and what is left to do about them.

At the top, What's next says it in one line: how many reports are open, with the command to hand the developer, /vatio:vatio-improve, which they run in Claude Code inside the agent's repository and which takes every open report at once; how many fixes are waiting to be published; that a fix broke something that already worked, so it cannot be published; or that everything is resolved. Under it, when the last test ran and how many reports passed, and for the owner and developers a link to Test, whose Run tests replays them on preview.

Reports are listed under Pending (open, fixed but not published yet, or broken again), Resolved and All. Each shows its note and the result of its latest test, with the judge's reason. See details opens the visitor's message, the reply that was reported, what the agent answered in the test and the version that fixed it. See conversation opens the thread. Remove deletes a report and its test, for everyone but read-only members.

The workspace's developers get the same command by mail every morning there are new reports. See Improve your agent from flags.

Last updated:

Latest CLI version: 0.79.0 · Changelog · The whole contract as Markdown: /docs/docs.md · or vatio docs