> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudhumans.com/llms.txt
> Use this file to discover all available pages before exploring further.

# cloud_chat_agent_metrics

> The headline support metrics for a single agent on a single day. Every duration is a sum, not an average — divide by the matching count column to get an average.

The headline support metrics for a single agent on a single day. Every duration is a sum, not an average — divide by the matching count column to get an average.

<Columns cols={3}>
  <Card title="One row is">
    one agent, one day
  </Card>

  <Card title="Delivery">
    Rewritten daily
  </Card>

  <Card title="Columns">
    25
  </Card>
</Columns>

## Where it lands

```text theme={null}
s3://<YOUR_BUCKET>/v1/datamart_cloudchat_saas/cloud_chat_agent_metrics/snapshot_date=<DATE>/
```

The partition delivered today holds the whole table. Read the latest
`snapshot_date=` partition only, and check for `_SUCCESS` before you do, as
described in [bucket layout](/data-export/bucket-layout#how-to-tell-if-a-partition-is-ready).

## Columns

<ResponseField name="cloud_chat_agent_metrics_sk" type="bigint">
  Internal warehouse key. Not stable between deliveries — the row is identified by `agent_id` plus `metric_date`.
</ResponseField>

<ResponseField name="customer_id" type="varchar(36)">
  Identifier of the workspace the agent belongs to.
</ResponseField>

<ResponseField name="tenant_id" type="varchar(256)">
  Id of the tenant. `NULL` for rows with no tenant mapping.
</ResponseField>

<ResponseField name="tenant_name" type="varchar(256)">
  Name of the tenant. `NULL` for rows with no tenant mapping.
</ResponseField>

<ResponseField name="agent_id" type="bigint">
  **Join key.** The agent. Matches `assignee_id` on [`cloud_chat_conversations`](/data-export/catalog/cloud-chat/cloud_chat_conversations).
</ResponseField>

<ResponseField name="agent_name" type="varchar(255)">
  Name of the agent.
</ResponseField>

<ResponseField name="metric_date" type="date">
  The day the metrics cover, in the operation's local calendar. Together with `agent_id` this is the grain of the table.
</ResponseField>

<ResponseField name="tickets_created_assigned" type="bigint">
  Conversations created that day and assigned to this agent.
</ResponseField>

<ResponseField name="tickets_resolved_assigned" type="bigint">
  Conversations this agent resolved that day. Not a subset of `tickets_created_assigned`: a conversation can be created one day and resolved the next.
</ResponseField>

<ResponseField name="sum_minutes_to_solve" type="double precision">
  Total wall-clock minutes to resolution across `tickets_resolved_assigned`. Divide by that count for an average.
</ResponseField>

<ResponseField name="sum_working_minutes_to_solve" type="double precision">
  The same total, counting only working hours.
</ResponseField>

<ResponseField name="sum_minutes_in_service" type="double precision">
  Total minutes conversations were actively handled.
</ResponseField>

<ResponseField name="sum_working_minutes_in_service" type="double precision">
  The same total, within working hours.
</ResponseField>

<ResponseField name="sum_minutes_waiting" type="double precision">
  Total minutes customers spent waiting on this agent.
</ResponseField>

<ResponseField name="sum_working_minutes_waiting" type="double precision">
  The same total, within working hours.
</ResponseField>

<ResponseField name="tickets_resolved_with_recontact_24h" type="bigint">
  Of the conversations resolved that day, how many the customer came back about within 24 hours. A resolution quality signal.
</ResponseField>

<ResponseField name="csat_responses" type="bigint">
  Survey responses received on this agent's conversations.
</ResponseField>

<ResponseField name="csat_positive_responses" type="bigint">
  How many of those were positive. Divide by `csat_responses` for a satisfaction rate.
</ResponseField>

<ResponseField name="first_reply_tickets_count" type="bigint">
  Conversations where this agent sent the first reply. The denominator for `sum_first_reply_minutes`.
</ResponseField>

<ResponseField name="sum_first_reply_minutes" type="numeric">
  Total minutes to first reply across those conversations.
</ResponseField>

<ResponseField name="first_reply_after_handoff_tickets_count" type="bigint">
  Conversations where this agent sent the first reply after an AI agent handed the conversation over.
</ResponseField>

<ResponseField name="sum_first_reply_after_handoff_minutes" type="numeric">
  Total minutes to first reply on those conversations.
</ResponseField>

<ResponseField name="sum_working_first_reply_after_handoff_minutes" type="numeric">
  The same total, within working hours.
</ResponseField>

<ResponseField name="etl_updated_at" type="timestamp">
  When the datamart last wrote this row.
</ResponseField>

<ResponseField name="snapshot_date" type="date">
  Partition column. Date of the delivery that wrote this file, in `YYYY-MM-DD`.
</ResponseField>
