Skip to main content

What are extraction categories?

Extractions is the Bolna feature that automatically captures structured data from call transcripts after every call. A category is a named set of dispositions evaluated together in a single LLM pass — one category means one LLM call per conversation. Each disposition is a single question inside its category.
The category owns the model used for its pass: every disposition in the category is evaluated by the category’s model in one call. A category belongs to the agent it was created for, and that agent runs every disposition the category holds.

Endpoints

Dispositions are created and placed into categories through the Dispositions API: pass category_id (preferred) or a category name on create or update — at most one of the two per payload. A category name that does not match one of the agent’s categories creates a fresh category.

Category object

Supported models

A category’s model must be one of: Any other value is rejected with a 422 error. GET /dispositions/models returns the same list. A category created implicitly by a category name on a disposition takes that disposition’s model, falling back to gpt-4.1-mini.

Azure OpenAI models

An azure/ model runs on Bolna’s Azure OpenAI resource, like every other model on this list. To run a category on your own Azure resource instead, connect your Azure account and set the category’s managed_by to "user". When a category runs on your Azure resource:
  • Deployment names: your resource needs a deployment named after the model without the azure/ prefix, for example gpt-4.1-mini for azure/gpt-4.1-mini. Bolna does not use the deployment name saved on the connection.
  • API version: extractions use the Azure OpenAI Responses API, which needs API version 2025-03-01-preview or later. If the version saved on your connection is older, extractions use 2025-04-01-preview. Your agents’ calls keep the saved version.
  • Region: the Responses API and each model are available only in some Azure regions. Check Azure OpenAI model availability for your resource’s region.
If a deployment is missing or your key is rejected, the category’s extractions come back empty for that call. Your agents’ calls are not affected.

Lifecycle rules

  • Move a disposition between categories: update the disposition with the new category_id (see Update Disposition). There is no separate move endpoint.
  • Renaming a category rewrites the category label on all of its dispositions in the same transaction, so extraction results stay grouped consistently.
  • Deleting a category deletes its dispositions. The category owns them. Historical call execution results are not affected.
  • Empty categories are removed automatically: when a move or delete removes a category’s last disposition, the category itself is deleted.
  • Category names are per agent. Two agents can each have a category named Sales; these are independent categories.
  • An update must change something. PATCH accepts name, model, or both, but an empty body is rejected with a 422 error.
For a full walkthrough of the Extractions feature, answer types, output format, and best practices, see the Using Extractions guide.