> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Using extractions in Bolna dashboard

> Learn how to create and manage extraction templates in the Bolna dashboard to capture structured data from call transcripts.

## What are extractions?

Extractions allow you to automatically capture structured data from call transcripts. Organize extractions into categories and define custom questions to extract specific information like lead quality, appointment details, customer sentiment, and more.

<Frame caption="Extractions card with a category and one extraction template">
  <img src="https://mintcdn.com/bolna-54a2d4fe/vlPn4lzPQ372t9yX/images/extractions/analytics-tab-extractions.png?fit=max&auto=format&n=vlPn4lzPQ372t9yX&q=85&s=e43972221efa0be18c2aafa2b16f476f" alt="Extractions card with Extraction Library and Test buttons, a Call Summary toggle switched on, a Lead Qualification category with a GPT 4.1 Mini model selector and an Add Extraction button, a Lead Quality extraction row with edit and delete icons, and a New Category button" width="1834" height="746" data-path="images/extractions/analytics-tab-extractions.png" />
</Frame>

<Note>
  Configuring extractions via the API instead of the dashboard? The new Extractions feature is powered by the [Dispositions API](/docs/api-reference/dispositions/overview).
</Note>

***

## Getting started with extractions

### Step 1: Access the Extractions tab

Navigate to the **Extractions** tab in your agent configuration to find the **Extractions** section.

<Frame caption="Extractions card on an agent with no categories yet">
  <img src="https://mintcdn.com/bolna-54a2d4fe/vlPn4lzPQ372t9yX/images/extractions/empty-state.png?fit=max&auto=format&n=vlPn4lzPQ372t9yX&q=85&s=70e07036ae84ee55bb1a8a223315fa55" alt="Empty Extractions card with Extraction Library and Test buttons, a Call Summary toggle and a New Category button" width="1834" height="440" data-path="images/extractions/empty-state.png" />
</Frame>

***

## Creating categories

Categories help you organize related extractions together. For example, "Agent Handover", "Visit Details", or "Lead Qualification".

<Steps>
  <Step title="Click New Category">
    Start by creating a category to organize your extractions.
  </Step>

  <Step title="Enter Category Name and Model">
    Choose a descriptive name like "Agent Handover" or "Visit Details", and pick the LLM model for the category. The model applies to every extraction in the category — each category is evaluated in a single LLM pass.
  </Step>

  <Step title="Click Create Category">
    Your category is now ready for extractions.
  </Step>
</Steps>

<Frame caption="New Category dialog with the name and model fields">
  <img src="https://mintcdn.com/bolna-54a2d4fe/K8nkTcLHvQdEi_0R/images/extractions/create-category.png?fit=max&auto=format&n=K8nkTcLHvQdEi_0R&q=85&s=3561a08e13d616511cd92ac8103795e8" alt="New Category modal with a Name field, a Model selector set to GPT 4.1 Mini, a note that all extractions in a category run in one LLM pass on this model, and Cancel and Create Category buttons" width="2880" height="1800" data-path="images/extractions/create-category.png" />
</Frame>

***

## Creating extractions

Within each category, you can create multiple extraction templates to capture different data points.

<Frame caption="New extraction form with pre-defined answers">
  <img src="https://mintcdn.com/bolna-54a2d4fe/K8nkTcLHvQdEi_0R/images/extractions/new-extraction.png?fit=max&auto=format&n=K8nkTcLHvQdEi_0R&q=85&s=536be758d4edaae709f51588478d4165" alt="New Extraction in Lead Qualification modal with Name and Extraction Prompt fields, Free Text and Pre-defined answer type checkboxes, and two Possible Answers rows hot_lead and not_qualified each with a condition, plus Cancel and Save Extraction buttons" width="2880" height="1800" data-path="images/extractions/new-extraction.png" />
</Frame>

### Extraction fields

<AccordionGroup>
  <Accordion title="Name" icon="tag">
    A descriptive name for the extraction (e.g., "Call Outcome", "Customer Sentiment", "Agent Handover Needed").

    This name will appear in your extraction results and webhooks.
  </Accordion>

  <Accordion title="Extraction Prompt" icon="message">
    Instructions that guide the LLM on what to extract from the transcript.

    **Example prompts:**

    ```
    What was the outcome of the call? Was the customer satisfied?
    Did the agent answer all questions?
    ```

    ```
    Determine whether an agent handover is required based on the
    customer's statements.
    ```

    <Tip>
      You can use variables like `{{name}}`, `{{candidate_name}}`, `{{email}}` to reference call-specific data from recipient\_data.
    </Tip>
  </Accordion>

  <Accordion title="Answer Type" icon="list">
    Choose how the LLM should structure its response:

    **Free Text**

    * LLM generates a custom answer based on conversation context
    * Best for open-ended questions and detailed responses
    * Example: "Describe the customer's main concern"

    **Pre-defined**

    * LLM selects from predefined options you configure
    * Best for categorical data and structured responses
    * Example: Lead quality (hot/warm/cold), Yes/No questions

    Both boxes can be ticked — the result then carries a free-text `subjective` value *and* a pre-defined `objective` value.
  </Accordion>

  <Accordion title="Expected Format" icon="ruler">
    When creating extractions with Free Text enabled, you can constrain the response format using the **Expected Format** dropdown:

    | Format | Description | Example Value |
    | - | - | - |
    | **Text** (default) | Any free-form text | `"Customer was satisfied with the demo"` |
    | **Timestamp** | ISO 8601 date/time | `"2026-04-08T14:30:00"` |
    | **Numeric** | Integer or decimal number | `"42"`, `"3.14"` |
    | **Boolean** | Exactly `true` or `false` | `"true"` |
    | **Email** | Valid email address | `"user@example.com"` |
    | **Custom Regex** | Matches a custom regex pattern | `"1234567890"` |

    When **Custom Regex** is selected, two additional fields appear:

    * **Pattern (required)** — The regex the response must match (e.g., `^\d{10}$`)
    * **Description (optional)** — Human-readable label (e.g., "10-digit phone number")

    Responses are automatically validated against the expected format. Invalid responses are flagged but preserved — the original response is still returned so no data is lost.
  </Accordion>

  <Accordion title="Model" icon="microchip">
    The LLM model is set on the category and applies to every extraction in it — each category is evaluated in a single LLM pass.

    Default: `gpt-4.1-mini` (recommended for most use cases)
  </Accordion>
</AccordionGroup>

***

## Answer types explained

### Free text extractions

Use free text when you want the LLM to generate custom responses based on the conversation.

**Best for:**

* Summarizing customer concerns
* Extracting reasons or explanations
* Capturing qualitative feedback
* Open-ended questions

**Example:**

* Name: "Customer Concern"
* Prompt: "Summarize the main issue the customer raised during the call"
* Answer Type: Free Text

***

### Pre-defined extractions

Use pre-defined options when you want structured, categorical responses.

<Frame caption="Edit Extraction Template with pre-defined answers">
  <img src="https://mintcdn.com/bolna-54a2d4fe/K8nkTcLHvQdEi_0R/images/extractions/edit-extraction.png?fit=max&auto=format&n=K8nkTcLHvQdEi_0R&q=85&s=aa2cfdb4f29cc623043abe081c52eed0" alt="Edit Extraction Template modal for Lead Quality with its extraction prompt, an unchecked Free Text box, a checked Pre-defined box and Possible Answers rows hot_lead and not_qualified, each with a condition, a Sub-option button and a delete icon, plus Cancel and Save Changes buttons" width="2880" height="1800" data-path="images/extractions/edit-extraction.png" />
</Frame>

**Best for:**

* Yes/No questions
* Status classifications
* Lead scoring
* Outcome categorization

#### Configuring pre-defined answers

Each answer option consists of:

1. **Answer Value** - The value to return (e.g., "Yes", "No", "hot", "warm", "cold")
2. **Condition** - Instructions for when to select this answer

Use **Sub-option** to nest a follow-up answer under an option (for example a reason under a `No`), the arrows to reorder options, and **Add Answer** to append a new one.

**Example: Agent Handover Detection**

**Answer 1:**

* Value: `Yes`
* Condition: `yield if any one of the triggers for handover are satisfied`

**Answer 2:**

* Value: `No`
* Condition: `yield if none of the triggers for handover are satisfied`

<Tip>
  Conditions support variables like `{{name}}`, `{{candidate_name}}` for dynamic evaluation based on recipient data.
</Tip>

***

## Managing extractions

### Edit an extraction

1. Click the **edit icon** (pencil) on any extraction card
2. Modify the name, prompt, answer type, or model
3. Click **Save Changes**

### Delete an extraction

1. Click the **delete icon** (trash) on any extraction card
2. Confirm deletion

***

## Test and read results

<CardGroup cols={2}>
  <Card title="Test extractions" icon="flask" href="/docs/prompting/testing-extractions">
    Run extractions against sample or real transcripts and refine prompts before going live.
  </Card>

  <Card title="Output format & results" icon="brackets-curly" href="/docs/prompting/extraction-output">
    The JSON shape of every extraction result and how to read it from the API, webhooks and dashboard.
  </Card>
</CardGroup>

***

## Reusing extractions from the library

Click **Extraction Library** in the Extractions card to add an existing extraction to a category instead of writing one from scratch.

* **My Extractions** — every extraction already defined across your workspace's agents, grouped by category, with a **Used in** list showing which agents use it
* **Library** — Bolna's ready-made templates grouped by industry (All Industries, Ed Tech, and more)

Select an entry to preview its category, answer type and prompt, choose the target category at the bottom, then click **Add extraction**.

<Frame caption="Extraction Library showing extractions already used in the workspace">
  <img src="https://mintcdn.com/bolna-54a2d4fe/K8nkTcLHvQdEi_0R/images/extractions/extraction-library.png?fit=max&auto=format&n=K8nkTcLHvQdEi_0R&q=85&s=2ffccf4bca7fc3d5bc5a5965515c928c" alt="Extraction Library panel with a search box, My Extractions and Library tabs, a list of workspace extractions grouped by category, and a detail pane showing the selected extraction's category, answer type Timestamp, prompt and Used in list, with a category selector and Add extraction button" width="2880" height="1800" data-path="images/extractions/extraction-library.png" />
</Frame>

<Frame caption="Library tab with Bolna's ready-made extraction templates">
  <img src="https://mintcdn.com/bolna-54a2d4fe/K8nkTcLHvQdEi_0R/images/extractions/extraction-library-browse.png?fit=max&auto=format&n=K8nkTcLHvQdEi_0R&q=85&s=113fbd125556600a1407dda609443a7e" alt="Extraction Library panel on the Library tab listing templates grouped by All Industries and Ed Tech, with a detail pane for Customer Name showing answer type Free text, a what this extracts summary and the full prompt" width="2880" height="1800" data-path="images/extractions/extraction-library-browse.png" />
</Frame>

***

## Working with categories

### Rename a category

Click the **edit icon** next to the category name to rename it.

### Delete a category

Click the **delete icon** next to the category name. This will remove the category and all extractions within it.

<Warning>
  Deleting a category is permanent and cannot be undone. All extractions in the category will be deleted.
</Warning>

### Add extractions to a category

Click **Add Extraction to \[Category Name]** button at the bottom of each category section.

## Call summary

The call summary is an agent-level toggle (`call_summary_enabled`), off by default. When on, Bolna runs a dedicated platform summary pass after each call and writes the result in two places:

* the execution's `summary` field
* `extracted_data` under `General > Call Summary`, with only a `subjective` value

The Call Summary entry is not a regular extraction: the `objective`, `confidence`, `reasoning_*`, and `validation` fields do not apply to it, and it is not configured through dispositions or categories. Agents with the toggle off produce no call summary. Enable it from the agent's settings in the dashboard or by setting `call_summary_enabled` via the [agent APIs](/docs/api-reference/agent/overview).

## Common use cases

| Use Case | What to extract | What it enables |
| - | - | - |
| **Agent Handover** | Did the caller ask for a human? | Route to a live agent in real time without manual review |
| **Lead Scoring** | Budget, timeline, decision-maker | Push hot leads to your CRM or Slack before the rep hangs up |
| **Appointment Sync** | Confirmed date, time, location | Write bookings to Google Calendar or Cal.com automatically |
| **Churn Prevention** | Sentiment, unresolved complaints | Flag unhappy customers and trigger a follow-up workflow |
| **Compliance Auditing** | Disclaimer read, consent given | Structured Yes/No record across thousands of calls |
| **Call Intelligence** | Objections, outcomes, cancellation reasons | Spot trends and measure what's working without reading transcripts |

***

## Best practices

1. **Write specific prompts :** Clearly define what to capture and how to interpret the conversation. Avoid vague or multi-part instructions.
2. **Pick the right answer type :** Use Pre-defined for categorical data like Yes/No or status fields, and Free Text for open-ended responses.
3. **Keep extractions focused :** Split complex logic into multiple simple extractions rather than one long prompt.
4. **Test before deploying :** Run your extractions against real or sample transcripts to catch issues early.

***

## Next steps

<CardGroup cols={2}>
  <Card title="Extractions API" icon="code" href="/docs/api-reference/dispositions/overview">
    Access extractions programmatically
  </Card>

  <Card title="Webhooks" icon="webhook" href="/docs/post-call/polling-call-status-webhooks">
    Receive extraction data in real-time
  </Card>

  <Card title="Call history" icon="clock-rotate-left" href="/docs/agent-setup/call-history">
    View extraction results for past calls
  </Card>

  <Card title="Extractions tab" icon="chart-line" href="/docs/agent-setup/analytics-tab">
    Configure other post-call tasks
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.