Skip to main content

Observability

Post-call analysis

Structured outcomes extracted from a conversation.

What post-call analysis does

After a call ends, Finn reads the transcript and fills in structured fields you defined. You get answers like "did they book?", "what budget did they mention?", "did they agree to a follow-up?" without listening to the recording.

A transcript records what was said. Post-call analysis records what happened. At 1,000 calls a week nobody reads 1,000 transcripts, but anyone can read "62% booked, 18% disqualified, 20% need follow-up". Configure this before you launch anything serious.

Where to configure it

Fields are defined in the dashboard, not the API. Go to View All Finn → your Finn → EditPost-Call Analysis. You will see the fields already defined (empty for a new Finn) and an Add Field button.

There is no documented endpoint for creating or editing analysis fields. Reading extracted values is covered under call logs and webhooks.

How extraction runs

  1. The call completes and the full transcript is assembled.
  2. An AI pass reads the transcript and answers each question you defined.
  3. Answers are written to the call record and shown in analytics.
  4. The call.analyzed webhook event fires with the fields in its payload.

Nothing triggers this. Every completed call is analyzed within a minute or two of hangup. If you poll the call record immediately after the call ends, the analysis fields may not be populated yet. Wait for call.analyzed instead of polling. See webhook events.

Defining a field

PartWhat it doesExample
Field nameInternal key used in analytics and exports. Use snake_case.appointment_booked
Question to AIWhat you want the AI to determine from the transcript. Phrase as a natural question."Did the caller successfully book an appointment?"
Answer typeThe value type the AI is constrained to return.Yes/No

Answer types

TypeValue you getUse for
Yes / Notrue or falseDid a specific thing happen
EnumOne of N choices you definedKnown buckets: intent, sentiment, urgency
Free textQuoted or inferred textOpen captures: pain points, names, callback times
NumberNumeric valueScores, quantities, prices mentioned
DateDate or date+timeRequested appointment, issue start date

What goes wrong

Vague success criteria. "Was the call successful?" has no fixed meaning, so the AI invents one. Ask "Did the caller agree to a follow-up?" instead.

Combined questions. "Did they book and what time?" produces messy or empty answers. Split into booked (yes/no) and booking_time (date).

Free text where an enum belongs. A free-text intent field returns "booking", "Book", "wants appointment", "appointment booking" as distinct values. You cannot chart that. Use an enum with fixed values: book / reschedule / cancel / question / complaint / other.

Non-yes/no phrasing on a yes/no field. "How did X go?" is not a yes/no question. Ask "Did X happen?".

Too many fields. Start with 3-5 fields you make decisions on. You can add more later.

Editing fields after launch

ChangeEffect
Add a fieldPopulated only for calls completed after the field was added. Older calls stay blank.
Edit a field's questionFuture calls use the new question. Past calls keep their old value and are not re-extracted.
Remove a fieldExtraction stops. Historical values remain in the data unless you delete the call records.

Backfilling a new field across historical calls is not self-serve. Contact support to request a one-off re-analysis pass.

Where results appear

Deployment Analytics shows aggregate distributions per field: yes/no as a true-vs-false bar chart, enum as a stacked bar, number as a histogram plus median, free text as a word cloud plus five samples, date as a timeline distribution.

Per-call sidebar. Click any call to open the Data Extractor Sidebar. Every field is listed with its extracted value. Click a value to see the AI's reasoning and the transcript snippet it used.

Exports. CSV includes every field as a column. PDF reports show top-line distributions.

Webhooks. The call.analyzed event carries all fields. Use it to push results into a warehouse, CRM, or alerting system. See webhook events and webhook security.

Accuracy limits

The AI is not always right. Four things to know:

  • Confidence scores. Every extracted value carries one. Low-confidence values are flagged in the sidebar, and you can filter exports to high-confidence rows only.
  • Failed extractions. If the transcript lacks the information, the field is marked "extraction failed" rather than guessed. Most common cause: the call ended before the topic came up. A field failing disproportionately points at the question wording or the agent's script, not the extractor.
  • Hallucination protection. Free-text fields are constrained to exact transcript quotes where possible.
  • Manual override. You can edit an extracted value from the sidebar. Edits are flagged as human-corrected in exports.

Cost and limits

Post-call analysis is included in every plan. No per-field charge, no per-call surcharge. The soft cap is 50 fields per Finn. Contact support for a higher limit.