Skip to main content

What are Dispositions?

Dispositions are LLM-powered post-call classifiers that automatically label call outcomes from transcripts. Each disposition asks a question against the transcript after a call ends and returns either a Free Text response (subjective), a Pre-defined value selected from options you configure (objective), or both.

Key Features

  • Scoped to agents: Dispositions are linked to specific agents and evaluated only for calls from those agents
  • Two answer types: Free Text (is_subjective) and Pre-defined (is_objective), configurable independently or together
  • Bulk creation: Create and link multiple dispositions to an agent atomically in a single request
  • Copy-on-write updates: Editing a shared disposition via a scoped agent automatically creates a private copy, keeping other agents unaffected
  • Model selection: Choose the LLM model used for evaluation per disposition

Endpoints

GET    /dispositions/                           List dispositions
GET    /dispositions/{disposition_id}           Get a single disposition
POST   /dispositions/                           Create a disposition
POST   /dispositions/bulk                       Bulk-create dispositions for an agent
PUT    /dispositions/{disposition_id}           Update a disposition (copy-on-write aware)
DELETE /dispositions/{disposition_id}           Delete a disposition
POST   /v2/agent/{agent_id}/dispositions/test   Test all dispositions for an agent against a transcript

Disposition Object

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "name": "Call Outcome",
  "question": "What was the outcome of the call?",
  "system_prompt": "You are analyzing a sales call transcript.",
  "category": "Lead Quality",
  "model": "gpt-4.1-mini",
  "is_subjective": true,
  "is_objective": true,
  "objective_options": [
    { "value": "interested", "condition": "Customer expressed genuine interest and agreed to a next step" },
    { "value": "not_interested", "condition": "Customer declined all proposals" },
    { "value": "follow_up", "condition": "Customer asked to be contacted again later" }
  ],
  "agent_ids": ["agt_abc123"],
  "created_by": "user_abc123",
  "created_at": "2026-03-01T10:00:00Z",
  "updated_at": "2026-03-15T14:30:00Z"
}

Field Reference

FieldTypeDescription
idUUIDUnique identifier
namestringDisplay name shown in results
questionstringThe prompt sent to the LLM to evaluate the transcript
system_promptstringSystem context for the LLM (optional)
categorystringGrouping label (default: "General")
modelstringLLM used for evaluation (default: "gpt-4.1-mini")
is_subjectiveboolEnable Free Text response
is_objectiveboolEnable Pre-defined value selection
objective_optionsarray | nullRequired when is_objective is true
agent_idsarrayList of agent IDs this disposition is linked to
created_bystringID of the user who created this disposition

ObjectiveOption Schema

{
  "value": "interested",
  "condition": "Customer expressed genuine interest and agreed to a next step",
  "sub_options": []
}
sub_options is optional and supports the same recursive ObjectiveOption structure for hierarchical classifications.
For a full walkthrough of disposition concepts, answer types, output format, and best practices, see the Using Dispositions guide.