An extraction template lists the fields you want pulled out of every call transcript, such as buying intent, budget, callback time or whether an issue was resolved. After the call, an LLM reads the transcript and fills each field. Start from a preset or build your own, then use the results in workflows, webhooks, CRM updates and analytics.
Field types#
| Type | Use it for | Example |
|---|---|---|
string |
Free text | call_summary, budget_range |
number |
Scores and amounts | lead_score |
boolean |
Yes or no | follow_up_required, issue_resolved |
enum |
One value from a list you define | buying_intent: high, medium, low |
date |
Dates and times | callback_date |
array |
Several values | products_mentioned |
Each field has a name (used in workflows as {{field_name}}), a label, a type, a description that tells the LLM what to look for, and allowed values for enum fields.
Presets#
| Preset | Example fields |
|---|---|
| Sales Lead Qualification | buying_intent, lead_score, budget_range, purchase_timeline, decision_maker |
| Outbound Sales Call Analysis | call_outcome, product_interest, decision_maker_reached, next_steps |
| Customer Support Analysis | issue_resolved, satisfaction_score, issue_category, resolution_summary, escalation_needed |
| Complaint Handling | complaint_type, severity, resolution_status, root_cause, csat_score |
| Real Estate Lead Qualification | property_interest, buying_intent, budget_range, location_preference, site_visit_scheduled |
| Solar Lead Qualification | interest_level, home_ownership, roof_space, monthly_bill_amount, objections |
| Appointment Booking | booking_status, appointment_type, preferred_date, confirmed_datetime |
| Debt Collection | payment_intent, promise_to_pay, ptp_date, ptp_amount, objection_type |
| NPS Survey | nps_score, promoter_category, feedback_category, verbatim_feedback |
| HR Exit Interview | consent_given, primary_exit_reason, preventable, willing_to_rejoin |
| Healthcare Appointment | appointment_status, appointment_type, urgency_level, scheduled_datetime |
Create a template#
- Open the agent and go to the post-call or extraction settings.
- Choose a preset, or start empty.
- Add or edit fields. Write each description as an instruction ("Set to true only if the caller agreed to a callback").
- Optionally add extra instructions and the language for extraction.
- Save. The template runs on every new call for that agent.
- Open a recent call and click Regenerate to test it on a real transcript.
Example#
{
"fields": [
{ "name": "buying_intent", "label": "Buying intent", "type": "enum",
"enumValues": ["high", "medium", "low"],
"description": "How ready the caller is to buy, based on what they said." },
{ "name": "budget_range", "label": "Budget", "type": "string",
"description": "The budget the caller stated, in their words." },
{ "name": "follow_up_required", "label": "Follow-up required", "type": "boolean",
"description": "True if the caller asked to be contacted again." }
]
}
Where results go#
- The call detail page and call history columns
call.extractedandcall.analyzedwebhook events- Workflows on the Data extracted trigger, where each field is available as
{{field_name}} - Extraction analytics
FAQs#
Which model runs extraction? A Gemini or OpenAI model, set on the template. The default is a fast, low-temperature model so results are consistent.
What if the caller never mentioned a field? The field is left empty. Do not ask the LLM to guess; say "leave empty if not mentioned" in the description.
Can I change a template after calls have run? Yes. New calls use the new template. Use Regenerate to re-run older calls.
Does extraction run on calls with no transcript? No. Calls that never connected have nothing to extract.