Updates an existing disposition. All fields in the request body are optional — only fields you include are changed.This endpoint has two distinct behaviors depending on whether agent_id is included in the request body.
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 placeReturns 200 OK:
Case 2: Disposition is shared → Copy-on-writeA 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:
{ "message": "Disposition copy created and linked to agent", "id": "9ab12c34-5678-4321-b3fc-7d852f33caf1"}
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.
curl --request PUT \ --url 'https://api.bolna.dev/dispositions/{disposition_id}' \ --header 'Authorization: Bearer {api_key}' \ --header 'Content-Type: application/json' \ --data '{ "agent_id": "{agent_id}", "question": "What was the final outcome? Did the customer agree to a demo or a follow-up call?", "objective_options": [ { "value": "demo", "condition": "Customer agreed to a product demo" }, { "value": "follow_up", "condition": "Customer agreed to a follow-up call" }, { "value": "declined", "condition": "Customer declined both options" } ] }'