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. The account belongs to a workspace; supported administrative changes are recorded in its audit log.

Agents differ from visitors in three ways. They authenticate as a workspace member. Their role, personal access grants and channel assignments determine 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.
supervisorUses a configurable preset. With manage_agents access, can manage ordinary agents within their own departments, channel access and permission limits. Cannot grant themselves extra access.
agentHandles permitted channels and departments. Product access is set for this person; billing and privileged account controls remain restricted.

Administrators can customize accessGrants per person. A supervisor preset includes customers, knowledge, reports, bookings, Message Team and agent management. Explicit grants replace that preset. Reading a product does not automatically permit its write operations or billing changes.

Channel scoping

Beyond role, each agent has a channels[] array that controls what shows up in their queue. Possible values: chats, tickets, calls, imessage. 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 groupIds[].

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 /api/v1/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.