Skip to main content
PUT
/
dispositions
/
{disposition_id}
cURL
curl --request PUT \
  --url https://api.bolna.ai/dispositions/{disposition_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "Next Step Agreed",
  "question": "<string>",
  "category": "Conversion",
  "system_prompt": "<string>",
  "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",
      "sub_options": "<array>"
    }
  ]
}
'
{
  "message": "Disposition updated successfully",
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

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.

Scoped vs. Unscoped Mode

The API checks whether the disposition is exclusive to the specified agent (i.e., not shared with other agents):
  • Case 1: Disposition is exclusive to this agent → Edit in place. Returns 200 OK.
  • Case 2: Disposition is shared → Copy-on-write. A new private copy is created for this agent, and the agent is re-linked to the copy. The original disposition is unchanged. Returns 201 Created.
A 201 response means a new disposition ID was created. If you’re storing the disposition ID (e.g., in your own database), update your reference to the new ID returned in the response. The original disposition_id now belongs to other agents; your agent uses the new copy.

Unscoped mode — no agent_id

  • Admins can update any disposition in place.
  • Non-admin users can only update dispositions they own.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

disposition_id
string<uuid>
required

The ID of the disposition to update.

Body

application/json

Fields to update on the disposition.

Request body for updating a disposition. All fields are optional — only included fields are changed.

agent_id
string<uuid>

If provided, enables scoped (copy-on-write) mode.

name
string

New display name.

Example:

"Next Step Agreed"

question
string

Updated LLM evaluation prompt.

category
string

New category label.

Example:

"Conversion"

system_prompt
string

Updated LLM system context.

model
string

Updated LLM model.

Example:

"gpt-4.1-mini"

is_subjective
boolean

Enable or disable free-text response.

is_objective
boolean

Enable or disable pre-defined value selection.

subjective_type
enum<string>

Format constraint for free-text responses.

Available options:
text,
timestamp,
numeric,
boolean,
email,
regex
subjective_type_config
object

Configuration for the regex subjective type.

objective_options
object[]

Updated list of pre-defined options.

Response

Disposition updated in place

Standard response for create/update/delete operations on a single disposition.

message
string
Example:

"Disposition created successfully"

id
string<uuid>
Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"