Skip to main content
After a call ends, AI analysis can evaluate the transcript. It can rate caller sentiment, decide whether the call met a success criterion, and extract structured fields such as a callback number, order ID, or yes/no answer. The result is available in History, the public API, and MCP.

What analysis produces

For each analyzed call the result can include:
  • Sentiment — positive, neutral, or negative (overall caller sentiment).
  • Success — true / false (or null when success evaluation is off), plus a short reason explaining the verdict.
  • Data — a map of the structured fields you defined, keyed by field name.
  • Analysis time — when the result was produced.
Use sentiment and success filters in History or GET /api/v1/calls?sentiment=&success= to find matching calls quickly.
Analysis runs after the call and never affects the live conversation. If analysis is unavailable, the call and its transcript remain unchanged and no result is shown.

Configuring analysis

Open Assistant Settings → Advanced → Analysis & QA and turn on the parts you need. Sentiment is enabled by default. To disable extraction, remove its fields; disable Sentiment and Success as well to turn off analysis.
Post-call analysis controls and the separate beta QA scorecard section

Assistant Settings → Advanced → Analysis & QA: configure User Sentiment, Call Successful and Extracted fields. AI QA scorecards appear separately when Beta features are enabled.

1

Sentiment

Enabled by default. Turn it off if you don’t need per-call sentiment.
2

Success criterion

Enable Success and describe, in plain language, what a successful call looks like — e.g. “The caller booked an appointment” or “The caller confirmed their delivery address.” The result contains a boolean plus a reason.
3

Structured fields

Add up to 30 fields with a unique name, a type and a description (up to 500 characters). Every field is attempted; missing scalar values remain empty rather than being invented.

Structured extraction types

  • Text, Number, Yes / No return a string, a number or a boolean.
  • Choice (enum) uses your allowed values. Allow multiple values returns all matches as an array; off returns one value. Under When nothing matches, choose an allowed value to save as the fallback. Without a fallback, an unmatched single choice is empty and multiple choice is an empty array.
  • Object defines fixed fields (up to 20). Every key is present; unavailable values are empty. Child fields support Text, Number, Yes / No and Choice, including optional allowed values for Text.
  • List defines the same fixed fields for each item. The AI returns one object per entry it finds, up to 100 items, or an empty array when none are found.
  • JSON lets the AI choose the structure. Use Object or List when your webhook needs fixed keys. Free-form JSON is limited to 16,000 characters and 8 nesting levels.
The same settings apply to voice, chat, messaging and email analysis. In History, objects and arrays appear as formatted JSON. Webhooks, API responses and MCP retain their native JSON types. This API configuration illustrates all new options:

Example configuration

A resulting calls.analysis looks like:

Using analysis results

  • History filters — filter the call list by sentiment and success to find, say, all negative calls that did not succeed.
  • Public API — every call in GET /api/v1/calls and GET /api/v1/calls/{id} carries analysis, sentiment, and success. Filter the list with ?sentiment=negative and ?success=false.
  • MCP — the same call fields are exposed through the MCP list_calls / get_call tools.
Re-running analysis on a past call — History → Re-evaluate — overwrites the stored sentiment, success, and extracted fields with a fresh result. It costs extra credits at the workspace’s History re-evaluate rate; current rates are on the Usage page.

AI QA scorecards

AI QA scorecards (Beta) score every finished call against your own quality checklist — a separate, complementary result from the sentiment/success/fields analysis above. Configure it in the same Analysis & QA tab as post-call analysis.
1

Turn scorecards on

Off by default. The card is only shown once Beta features are switched on for the workspace under Settings → Workspace, and enabling it needs a plan that includes AI QA scorecards.
2

Set a pass threshold

An overall score from 0–100; a call passes once it meets or exceeds this value.
3

Add up to 20 criteria

Each criterion has a name, a weight (how much it counts toward the overall score), and a source:
  • LLM judge — the AI reviewer reads the transcript and scores the criterion from a free-text description you write. Costs an extra evaluation per criterion.
  • Reuse success — reuses this call’s Analysis success flag (yes = 1, no = 0), at no extra cost.
  • Reuse sentiment — reuses this call’s Analysis sentiment (positive = 1, neutral = 0.5, negative = 0), at no extra cost.
Results appear in History, on the call’s detail view. Configure scorecards the same way as analysis — through the assistant editor, PATCH /api/v1/assistants/{id}, or the MCP update_assistant tool.
This is different from the cohort-level AI Quality Assurance tool, which runs a QA pack you choose against a batch of past calls on demand. Scorecards run automatically, per call, as it finishes.

Configuring via the API

Use PATCH /api/v1/assistants/{id} or the MCP update_assistant tool to update the same analysis options programmatically. An empty configuration keeps default sentiment analysis enabled. See the API reference for the request schema.

Turn a real call into a simulation test

On a finished call in History, use Create Simulation Test. Famulor prepares a persona, script, and success criteria from the transcript and analysis, then opens the assistant’s Simulations panel for review. The same action is available as:
  • POST /api/v1/assistants/{id}/tests/from-call with { "call_id": "…" } (assistants:write; Simulations must be included in the plan)
  • MCP tool create_assistant_test_from_call
Clicking a transcript line in History jumps the recording to that moment.