---
title: "analytics-completed"
method: POST
path: "/webhook-events/analytics-completed"
tags: ["Webhooks"]
---

# analytics-completed

`POST /webhook-events/analytics-completed`

Fired **after** Atoms finishes running the configured disposition and
success metrics on the transcript. Arrives some time after
`post-conversation`.

For the full field-level reference, see the [Webhooks guide](/atoms/atoms-platform/features/webhooks).

## Request body

- WebhookEventAnalyticsCompleted — Common envelope shared by every webhook event Atoms delivers to your endpoint. The `metadata` field's shape varies by event type — see the per-event schemas (`WebhookEventPreConversation`, `WebhookEventPostConversation`, `WebhookEventAnalyticsCompleted`).
  - `url` string, required — The webhook URL endpoint that received the event.
  - `description` string, required — Human-readable label configured on the webhook (e.g. "Debt Collection Agent's Endpoint").
  - `event` string, required — Event identifier in the form `{agentId}.{eventType}`.
  - `id` string, required — Unique webhook delivery ID (separate from `metadata.callId`).
  - `metadata` object, required
    - `agentId` string, required
    - `eventType` 'analytics-completed', required
    - `conversationType` string, required
    - `callId` string, required
    - `analytics` object, required
      - `summary` string, required — LLM-generated plain-text summary of the call.
      - `dispositionMetrics` WebhookEventAnalyticsMetric[], required
        - `identifier` string, required — Machine-readable metric name (e.g. `turn_taking_balance`, `escalation_needed`).
        - `value` union, required — The evaluated result. Type depends on `dispositionMetricType`.
          - integer
          - string
          - boolean
        - `confidence` number, float, required — Confidence score (0–1).
        - `reasoning` string, required — LLM-generated explanation for the assigned value.
        - `dispositionMetricPrompt` string, required — The prompt/question that was used to evaluate this metric.
        - `dispositionMetricType` 'STRING' | 'BOOLEAN' | 'INTEGER' | 'ENUM' | 'DATETIME', required — Data type of `value`.
      - `successMetrics` WebhookEventAnalyticsMetric[], required — Same schema as `dispositionMetrics`. May be empty.
        - `identifier` string, required — Machine-readable metric name (e.g. `turn_taking_balance`, `escalation_needed`).
        - `value` union, required — The evaluated result. Type depends on `dispositionMetricType`.
          - integer
          - string
          - boolean
        - `confidence` number, float, required — Confidence score (0–1).
        - `reasoning` string, required — LLM-generated explanation for the assigned value.
        - `dispositionMetricPrompt` string, required — The prompt/question that was used to evaluate this metric.
        - `dispositionMetricType` 'STRING' | 'BOOLEAN' | 'INTEGER' | 'ENUM' | 'DATETIME', required — Data type of `value`.
    - `callData` WebhookEventCallData, required — Call-level metadata shared by `post-conversation` and `analytics-completed` events. In `analytics-completed`, the `callDirection` field may be absent.
      - `fromNumber` string, required — Originating phone number in E.164 format.
      - `toNumber` string, required — Destination phone number in E.164 format.
      - `callDuration` number, float, required — Total call duration in **seconds** (float).
      - `callStatus` 'completed' | 'no_answer' | 'failed' | 'cancelled', required — Terminal status.
      - `callDirection` 'telephony_outbound' | 'telephony_inbound' — Call direction. Present on `post-conversation`; may be absent on `analytics-completed`.
      - `answerTime` string, date-time, required — ISO 8601 timestamp when the call was answered (UTC).
      - `endTime` string, date-time, required — ISO 8601 timestamp when the call ended (UTC).

## Response `2XX`

Your endpoint should return a 2XX status to acknowledge receipt.

## Changes

- **2026-05-26** `0001c2ca9897` — 3 breaking, 6 info
  - removed the enum value `busy` of the request property `allOf[subschema #2]/metadata/callData/callStatus`
  - removed the enum value `canceled` of the request property `allOf[subschema #2]/metadata/callData/callStatus`
  - removed the enum value `no-answer` of the request property `allOf[subschema #2]/metadata/callData/callStatus`
  - added the new `DATETIME` enum value to the request property `allOf[subschema #2]/metadata/analytics/dispositionMetrics/items/dispositionMetricType`
  - …5 more
- **2026-05-11** `2790c9edc50e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/smallest-inc/apis/agent-management-api/changes/webhook-events/analytics-completed/post.md)

---

[API](https://skmtc.dev/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.dev/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/revisions/ea4ea58d7c4e/schema)
