Skip to main content
Every member of a workspace has exactly one role. The role decides what they see and what they can do, and it is checked on the server on every request — hiding a button is a courtesy, not the protection.

The four roles

Owner

Owns and pays for the workspace. The only role that moves money, reveals credentials in plaintext, destroys numbers permanently, and changes who is inside.

Admin

Runs the day to day. Everything except money, plaintext credentials and irreversible destruction.

Agent

Serves customers. Lives in Chat and Labels: reads conversations, sends messages, handles calls.

Analyst

Looks at the numbers. Deliberately cannot open conversations — see below.

What each role can do

Why the Analyst cannot read conversations

This is the one line in the table that surprises people, and it is the point of the role. An analyst who can open every customer conversation has read the personal data of every customer you have — names, phone numbers, documents, complaints, whatever people type into WhatsApp. The Analyst role exists precisely so that someone can look at volume, delivery rates and cost without that exposure. If your analyst also needs to read conversations, the honest answer is that they are an Agent.

Scoping someone to specific numbers

Agents and Analysts can be limited to a subset of the workspace’s numbers. Someone scoped to two numbers sees only those two in the selector, and requests touching a third are refused by the server, not just hidden. Owners and Admins are always workspace-wide. Their work — connecting numbers, buying capacity, rotating keys — is not something a per-number limit can express, and pretending otherwise would show a restriction the server does not enforce.

Roles and the API

Machine credentials do not have roles. An API key or an OAuth token carries scopes, and what it can reach is decided by those — not by a workspace role. One consequence is worth stating plainly: writing to the member list is never allowed with a classic API key, only with OAuth, because an x-api-key request has no user behind it. See the workspace API.