Every endpoint on this page requires either a Clerk-issued JWT (
Authorization: Bearer <token>) or
an organization API key (x-api-key: pk_…). Anonymous calls return 401 Unauthorized. See
Authentication for the full setup.| Toggle | What it returns | Where it appears |
|---|---|---|
| Intent Recognition | Best-fit intent against your custom list | analysis.intent.* |
| Resolution Analysis | Whether the call achieved its objective | analysis.resolution.* |
| Sentiment | Score and label per call | analysis.sentiment.* |
| Data Extraction | Structured fields you defined | analysis.extractedData.<name> |
analysis block of the session.ended webhook and in GET /api/v1/chat/sessions/{id}.
Intent Recognition
Classifies the purpose of the conversation against a list of intents you define under Custom Intent (comma-separated). Example for a delivery-confirmation use case:Best-fit intent across the whole call.
Confidence score,
0 – 1.Short LLM-generated rationale for the classification.
Best-fit on the trigger message (less useful for voice).
Resolution Analysis
Classifies whether the call achieved its objective, against a resolution definition you provide. Click + Add Resolution Definition and describe in plain language what counts as resolved. Example resolution definition:Call is resolved if the customer confirmed a delivery slot for the order. If a slot was discussed but not finalised, markThe payload then carries:PARTIALLY_RESOLVED. If the customer refused or the call dropped, markUNRESOLVED.
RESOLVED / PARTIALLY_RESOLVED / UNRESOLVED / NOT_APPLICABLE.0 – 1 confidence in the verdict.The checklist points met during the call.
Quoted turns from the transcript supporting the verdict.
Short rationale.
Sentiment
Returns a score and label per call:POSITIVE / NEUTRAL / NEGATIVE.-1.0 – +1.0.ISO-639-1 code; useful when callers may switch language mid-conversation.
Data Extraction
Define a structured schema and Agntix will pull the values out of the transcript. Click + Add Data Extraction and define one schema entry at a time. Each entry asks for:- Name — the JSON key that will appear under
analysis.extractedData.<name>in the webhook / session API. - Description — a one-line hint that tells the analysis model what to look for. Treat this like a mini-prompt: the more precise, the better the extraction.
- Type —
String,Number,Boolean, orEnum(forEnumyou’ll also be asked for the allowed values).
| Name | Description | Type |
|---|---|---|
slotConfirmed | True if the customer agreed to a specific delivery slot. | Boolean |
preferredDay | The day the customer chose for delivery. | String |
preferredTimeWindow | Time window the customer preferred. | Enum (Morning, Afternoon, Evening) |
callbackRequested | True if the customer asked to be called back later. | Boolean |
callOutcome | Short categorical outcome. | Enum (Confirmed, Rescheduled, Unavailable, WrongNumber) |
analysis.extractedData.<name> in the webhook and the session detail API:
Combined analysis block
When all four toggles are on, the full analysis block looks like this:
Next steps
Webhook events
See the full
session.ended payload that carries the analysis block.Get Session
Pull the same
analysis block via REST when you need it on demand.