# Teams

A workspace has one owner, whoever created it, and any number of members. The
owner invites them from **Team** in the inbox (under **Settings** in the rail),
by email, as one of three roles:

| | Owner | Developer | Supervisor | Viewer |
|---|---|---|---|---|
| [Inbox](https://vatio.ai/docs/channels/inbox): read every conversation, contact and chart | Yes | Yes | Yes | Yes |
| Inbox: take a conversation over, reply, flag replies, edit the business and its knowledge | Yes | Yes | Yes | No |
| Inbox's Test, Channels, Tools and Outreach; CLI and API: push, publish, secrets, tools, preview and live | Yes | Yes | No | No |
| The [daily mail](https://vatio.ai/docs/improve#the-daily-digest) with the open flags | Yes | Yes | No | No |
| Inbox's Team and Security: invite and remove members, security settings, delete the workspace | Yes | No | No | No |

There is nothing to accept. The invitation creates the account if there was
none, and the person signs in with that same email: a code by email, or Google
or GitHub with that address. **Team** shows them as pending until they first
sign in. The owner can change a member's role on the same page at any time.
Removing someone, or changing their role, takes effect on their next request.

The inbox shows each person the sections of their role. A supervisor or a
viewer has **Conversations**, **Contacts**, **Improvement**, **Analytics**,
**Knowledge** and **Business**. A developer also has **Test**, **Channels**,
**Tools** and **Outreach**, and the owner **Team** and **Security** on top.
Everyone has **Account**, their own settings, at the foot of the rail.

## Limiting someone to some agents

A workspace with more than one agent can narrow a supervisor or a viewer to
the conversations of some of them: pick the agents next to their role on
**Team**. They then see only those agents' conversations, contacts, charts and
knowledge, in every environment. Leaving every agent unticked means all of
them. A developer always sees every conversation, because the CLI and the API
already reach all of it.

## Activity

**Activity** (owner only, on the inbox's **Security** page) records who did
what in the workspace, kept for one year:

- **Sign-ins and sessions** of the owner and every member: sign-ins, failed
  attempts, signing out, closing a session, two-step verification changes.
- **Conversations**: opening one in the inbox (once per person and conversation
  every 15 minutes), searching (the number of results, never what was searched
  for), opening a contact, replying, taking a conversation over and handing it
  back, flagging a reply.
- **Team**: invitations, removals, role changes, and who opened the workspace.
- **Keys and secrets**: secrets set or deleted (by key, never the value),
  publishable tokens, server keys, webhooks.
- **Changes**: pushes, publishes, rollbacks, environments removed, business
  details, knowledge that reached live, security settings.
- **Data**: contacts exported or deleted, conversations removed by retention,
  Vatio support access opened or closed, and every time Vatio staff read
  conversations or contact details under it.

Each row says who, from which IP address and browser, and when. Nothing in it
holds conversation text or a credential.

## Security

Every workspace is treated as holding sensitive data, with nothing to turn on:
conversations only go to AI models with zero data retention
([Models and data](https://vatio.ai/docs/model)), conversation text, phone numbers and emails are
encrypted at rest, everything the team does is recorded in **Activity**, and
Vatio staff cannot read conversations or contact details unless the owner
grants them support access.

**Security** in the inbox (owner only) holds two settings, next to
[Activity](#activity), [Vatio support access](#vatio-support-access) and
deleting the workspace.

**Require two-step verification.** Everyone on the team, the owner included,
then needs [two-step verification](#two-step-verification-and-sessions) to get
in, and everyone's sessions close after 12 hours without use. The owner has to
have it on their own account before turning this on. Until a workspace
requires it, its owner sees a banner on that workspace's pages recommending it.

**Retention.** How long a conversation is kept after its last message: until
someone deletes it, or 30, 90, 180 or 365 days. Past that, the conversation is
deleted with its messages, files and tool calls, and a contact left with no
conversation is deleted too.

## Vatio support access

Vatio staff cannot open your workspace or read its conversations and contact
details. When you want Vatio to look into something, the owner opens
**Security → Vatio support access** in the inbox and gives access for
24 hours, 72 hours or 7 days. While it is open, a Vatio admin can use the inbox
and Vatio's own debugging tools on the workspace; it closes on its own, or at
once with **Close access now**.

If something is broken and you cannot be reached, a Vatio admin can open an
emergency access for up to 24 hours. It needs a written reason, and the owner
gets an email right away with who opened it, why and until when, with a link
to close it.

Both show on the inbox's **Security** page while they last, and every
opening, closing and read of a conversation under them is in **Activity**.

## When a developer joins

The invitation email says what Vatio is and links to the workspace's
**Start** page in the inbox (`inbox.vatio.ai/<workspace>/start`). It has three
things, written for that workspace:

1. **Where the agent's files are:** a note to ask you for the repository.
   Vatio keeps what was deployed, not the files it came from, so a developer
   without the repository cannot work on the agent. Give them access to it.
2. **A prompt for their coding agent.** Pasted into Claude Code, Cursor or
   Codex in that folder, it installs the CLI, signs them in with the invited
   email, checks the folder against live and explains the agent, following
   [Joining an existing workspace](https://vatio.ai/docs/#joining-an-existing-workspace).
3. **The same steps by hand**, for a terminal.

By hand, it looks like this:

```bash
git clone https://github.com/acme/backend.git
cd backend                  # the folder whose vatio.yml says workspace: acme
npm install -g @vatio-ai/cli@latest
vatio login                 # with the email the invitation went to
vatio diff --env live       # what this folder would change if published
vatio push                  # updates preview
```

Signing in with any other address is a different account, and every command
answers `workspace_forbidden`.

Preview is one per workspace, shared by everyone in it. Once the agent is
published, a push from another git branch is refused while preview holds a
version nobody has published yet, so no one replaces someone else's work
without knowing ([Working with others](https://vatio.ai/docs/deployments#working-with-others)).
Live changes with `vatio publish`, or **Publish** on the inbox's **Test**
page, once preview's tests allow it ([Publishing](https://vatio.ai/docs/deployments#publishing)).

## When a supervisor or a viewer joins

Their email links straight to the inbox, at `inbox.vatio.ai/<workspace>`.
They see conversations, contacts, knowledge, the business and what their flags
became, and nothing else: no deploy, no tools. A viewer reads the same pages with no reply box and
nothing to edit. See [Inbox](https://vatio.ai/docs/channels/inbox).

## Two-step verification and sessions

Anyone can turn on two-step verification in **Account**, at the foot of the
inbox's rail. After the emailed code, Google or GitHub, Vatio then asks for one
more thing:

- **A passkey**: a phone, a laptop's fingerprint reader or a security key. One
  passkey works on the inbox and on the sign-in at vatio.ai.
- **A code from an authenticator app**, such as Google Authenticator,
  1Password or Authy.
- **A recovery code**, one of ten shown once when the first method is added,
  for when the other two are out of reach.

Until it is on, every page of the inbox carries a banner recommending it; it
goes away the moment the account has it.

A workspace whose owner requires it (**Security**, owner only) asks it of
everyone on its team, the owner included: the inbox asks anyone without it to
turn it on in **Account**, and the CLI answers `two_factor_required`.
Their sessions also close after 12 hours without use.

**Account** also lists where you are signed in and closes any of it: each
browser signed in at vatio.ai, each inbox device and the CLI's token. A
vatio.ai browser signs out after 7 days without use and 30 days at most; an
inbox device after 90 days without use; a CLI token after 90 days without use,
and `vatio logout` revokes it on the spot.

Deleting a workspace, inviting or removing a member, minting a server key and
changing a workspace's security settings ask you to confirm it's you again if
you last did so more than 10 minutes ago.
