> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. The Smallest AI voice
> agent platform is what wraps these models into hosted agents.

# post-conversation

POST 

Fired **after** the call ends. Contains the full transcript, call
metadata, recording URL, and all agent variables that were in scope
during the conversation.

**Delivery.** Sent as an HTTP POST with a 30 second timeout. Non-2xx
responses and network errors mark the delivery as failed; there are
no retries. Verify the `X-Signature` header before trusting the body.
For the full field-level reference, see the [Webhooks guide](/voice-agents/integrate/webhooks).


Reference: https://docs.smallest.ai/api-reference/voice-agents/webhooks/webhook-event-post-conversation

## Request

### Headers

- `X-Signature` (string, required) — Hex-encoded HMAC-SHA256 of the raw request body, keyed by the webhook's signing secret. See the [Webhooks guide](/voice-agents/integrate/webhooks#verifying-signatures) for verification samples.

### Payload

- `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` (WebhookEventPostConversationMetadata, required)

## Types

### WebhookEventPostConversationMetadata

- `agentId` (string, required)
- `eventType` (enum, required)
  - Allowed values: `post-conversation`
- `conversationType` (string, required)
- `callId` (string, required)
- `recordingUrl` (string, required) — Composite call recording location. Treat as a stable identifier; call `GET /recordings/{callId}?channel=mono` with your API key to fetch a fresh short-lived presigned S3 URL for the audio.
- `callData` (WebhookEventCallData, required) — Call-level metadata shared by `post-conversation` and `analytics-completed` events. In `analytics-completed`, the `callDirection` field may be absent.
- `transcript` (list of WebhookEventTranscriptTurn, required) — Ordered list of transcript turns.
- `variables` (map from string to any, required) — Flat key-value map of all agent variables in scope during the call. **This object is fully dynamic.** Keys and values are entirely determined by the agent's configuration; they are not fixed by the platform. New keys can appear at any time. Store as JSON and iterate keys — do not hard-code column mappings. Common platform keys include `agent_name`, `customer_name`, `current_date`, `default_language`; domain-specific keys (e.g. `due_amount`, `bank_name`) come from your agent's prompt configuration.

### WebhookEventCallData

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` (float, required) — Total call duration in **seconds** (float).
- `callStatus` (enum, required) — Terminal status.
  - Allowed values: `completed`, `no_answer`, `failed`, `cancelled`
- `answerTime` (datetime, required) — ISO 8601 timestamp when the call was answered (UTC).
- `endTime` (datetime, required) — ISO 8601 timestamp when the call ended (UTC).
- `callDirection` (enum, optional) — Call direction. Present on `post-conversation`; may be absent on `analytics-completed`.
  - Allowed values: `telephony_outbound`, `telephony_inbound`

### WebhookEventTranscriptTurn

One speaking turn in a `post-conversation` transcript.

- `role` (enum, required) — Speaker role.
  - Allowed values: `agent`, `user`
- `content` (string, required) — The spoken text for this turn.
- `timestamp` (datetime, required) — ISO 8601 timestamp of when this turn began (UTC).