The chat is the main interface: you ask, the team acts. It is not the only one.
The channels
| Channel | Where | |---|---| | Web | The dashboard chat | | WhatsApp | Through the platform's WhatsApp integration | | Voice | Spoken, through the voice endpoint | | MCP | Your own client — Claude, ChatGPT, Cursor, Claude Code |
They share one memory and one credit balance. A fact learned on WhatsApp is known in the dashboard; see Memory.
A REST channel with sk_ keys existed and was removed. If you find
a reference to it, it describes code that no longer exists. The MCP
server is the programmatic surface now.
Conversations
A conversation holds its messages, its branches and its context. It belongs to an organization, and the tenant check that guards a new message is the same one that guards reading the history, not a similar one written twice.
If the connection drops mid-answer
A generation that was streaming when your connection died can be resumed: the stream is replayed from where it stopped.
Two properties of that path are worth stating, because they are the ones a user would worry about.
It cannot bill you twice. There is no model call and no ledger write on the resume path: it reads recorded bytes and writes them out. A resumed answer is a replay of one already paid for.
It cannot cross a tenant. Resuming goes through the same ownership check as posting. A conversation that fails it gets "nothing to resume" rather than an error that would confirm the id exists.
Every channel reserves before it streams
A metered channel reserves credits rather than reading the balance and hoping.
Reading first is a read-then-allow: several simultaneous turns read the same balance and each one can spend all of it, which leaves the organization one full overdraft per extra turn. Instead a reservation takes a per-organization lock, re-reads the balance underneath it, and writes a hold, so the next turn already sees a reduced balance.
This is why the guardrails in Credits & metering hold under concurrency and not only in a single-turn demo.
Attachments
A file attached in the chat is stored on Vercel Blob at a public URL and purged after 30 days. The purge bounds the exposure; it does not make the object private in the meantime. See Data & privacy.