Skip to main content
GET
Team performance
This report answers “how is my team doing?”. It returns one row per teammate with what that person did in the period. For what is waiting right now, use Inbox summary.

Choose the period

period in the response echoes the exact bounds used, in UTC.

What each number means

Escalations and assigned leads use the lead’s current owner. If a lead changed hands, its history moves with it.

Who is listed

  • Every active teammate, even with zeros.
  • Former members, partners, and Nexor support staff only when they did something in the period.
  • unattributed counts messages that no teammate can take credit for: business_app_messages were sent from the WhatsApp Business App through Coexistence, and other_human_messages were sent by a person who is not a current teammate.

Filter by task

Add workflow_id to count only leads active in that task (workflow in the API), and the messages and escalations on those leads.

Before you start

  • MCP keys need reports:read. Full-access REST keys need nothing else.
  • Errors return a stable code in error, such as invalid_date_range or workflow_not_found. Map the code to your own copy.
  • An AI connected to the Nexor MCP server reads the same report with the get_team_performance tool.

Authorizations

X-API-Key
string
header
required

API key for authentication. Keys are prefixed with nxr_live_.

Query Parameters

workflow_id
string<uuid>

Task ID (workflow in the API). Counts only leads active in this task, and messages and escalations on those leads. A malformed ID returns 400 invalid_workflow_id, and a task outside this account returns 404 workflow_not_found.

date_from
string<date-time>

Start of the period, inclusive. Defaults to 30 days before date_to. Accepts YYYY-MM-DD (read as midnight UTC) or an ISO 8601 date-time.

date_to
string<date-time>

End of the period, exclusive. Defaults to now. Accepts YYYY-MM-DD (read as midnight UTC) or an ISO 8601 date-time. The period must be positive and at most 92 days, or the request returns 400 invalid_date_range.

Response

One row per teammate for the period.

success
enum<boolean>
required
Available options:
true
period
object
required
workflow_id
string<uuid> | null
required

The task filter, or null for every task.

members
object[]
required

One row per teammate, sorted by human_messages, then leads_assigned_now, then name.

unattributed
object
required
Last modified on September 29, 2026