message.comDevelopers

What is an agent?

An agent is a member of your support team who picks up conversations and resolves them. In message.com every human teammate is represented as one agent record, regardless of which channels they cover.

Definition

Agents are the workforce side of the two-sided marketplace inside a workspace. On one side a visitor opens a conversation. On the other side an agent claims it from the queue, replies, and marks it solved. Everything an agent does is auditable, scoped to a workspace, and tied to a single login.

Agents differ from visitors in three ways. They authenticate with a password rather than a browser cookie. They have a role that grants permissions. They appear in reports as the "assigned" party rather than the "contacting" party.

Roles

Every agent has a role field with one of three values:

RoleCapabilities
adminFull workspace control. Manages billing, integrations, security, all departments, all conversations.
supervisorManages assigned departments only. Sees team reports, force-transfers, edits agent assignments inside scope.
agentAnswers conversations in assigned departments. Sees their own performance reports. Cannot edit team or billing.

Channel scoping

Beyond role, each agent has a channels[] array that controls what shows up in their queue. Possible values: chats, tickets, calls. An agent with channels: ["chats", "tickets"] never sees phone calls in the inbox even if their role would otherwise permit it.

Admins implicitly have all channels. Channel scoping only narrows non-admin roles. This lets you hire a phone-only agent or a chat-only agent without giving them visibility into every channel.

Departments

Agents belong to one or more departments. Routing decisions filter conversations by department first, then by channel, then by availability. The Agents API exposes membership through departmentIds[].

Presence and availability

Agents have an availability status: available, away, or offline. Only available agents receive routed conversations. Status is exposed in real time via Socket.io on the agent namespace.

Authentication

Agents authenticate with email + password through POST /auth/login, receive a workspace JWT, and use it as a bearer token on every API call. See REST authentication for the full handshake.

What it is not

An agent is not a contact. A contact is a customer on the receiving end of the conversation. The same person can be both a contact in your workspace (if they email support) and an agent in someone else's workspace (if they answer support for their own company). The records do not stitch across workspaces.