Documentation Index
Fetch the complete documentation index at: https://docs.nixflex.com/llms.txt
Use this file to discover all available pages before exploring further.
After every call, Nixflex runs an analysis pass over the transcript. You get a summary, the caller’s sentiment, whether the call succeeded, and any custom data you’ve defined — automatically.
No setup required for the defaults. Everything is generated by a second Claude call after the conversation ends.
What you get out of the box
Every call record has these fields populated automatically:
| Field | Type | Description |
|---|
call_summary | string | 2–4 sentence summary of what happened |
caller_sentiment | enum | happy, neutral, or frustrated |
call_successful | boolean | Did the agent achieve its goal? |
extracted_data | object | Custom fields you configured (see below) |
Example response from GET /v1/calls/:id:
{
"call_id": "CA1234567890",
"call_summary": "Caller booked a check-up appointment for Tuesday 8th March at 2pm. Confirmed contact details and texted address.",
"caller_sentiment": "happy",
"call_successful": true,
"extracted_data": {
"caller_name": "Sarah Johnson",
"email": "sarah@example.com",
"appointment_date": "2026-03-08",
"appointment_time": "14:00"
}
}
Beyond the defaults, you define fields you want pulled from each call. Add an extraction_schema to the agent:
{
"extraction_schema": {
"caller_name": "The caller's full name if mentioned",
"email": "Email address if provided",
"appointment_date": "Booked date in YYYY-MM-DD format",
"appointment_time": "Booked time in 24-hour HH:MM format",
"service_requested": "Type of service (check-up, cleaning, whitening, etc.)",
"callback_requested": "true if the caller asked us to call them back"
}
}
For each call, Claude reads the transcript and fills in whatever it can. Missing fields come back as null — Claude won’t invent data.
When analysis runs
- Inbound and outbound calls — both directions, always
- All calls over 5 seconds — calls that ended in voicemail or instant hangup are skipped to save cost
- Asynchronously, after the call ends — usually within 5–10 seconds
By the time your webhook fires, all analysis fields are populated.
Querying for outcomes
The dashboard’s Call History page is one way. The API lets you filter calls by analysis results:
# All successful calls today
curl "https://api.nixflex.com/v1/calls?call_successful=true&since=2026-05-17" \
-H "Authorization: Bearer KEY_ID:KEY_SECRET"
# All frustrated callers
curl "https://api.nixflex.com/v1/calls?caller_sentiment=frustrated" \
-H "Authorization: Bearer KEY_ID:KEY_SECRET"
Useful for:
- Quality assurance — review frustrated calls
- Lead routing — flag successful sales calls for follow-up
- Reporting — aggregate sentiment over time
- Data exports — populate your CRM with extracted fields
Cost
Post-call analysis adds roughly $0.001 to the cost of each call (one Claude Haiku call over the transcript). It’s included in the per-minute pricing — you don’t pay extra.
To skip extraction for an agent (rare; e.g. very high call volume where you only need the call recording):
curl -X PUT https://api.nixflex.com/v1/agents/agent_xxx \
-d '{"enable_post_call_analysis": false}'
The transcript and recording are still saved; just the AI fields are skipped.
Reading analysis programmatically
Each call object includes the analysis inline. There’s no separate endpoint to fetch it. See Get call for the full schema.