Partially update an evaluator. Same field shape as create — see scenarios_create for details.
API Key Authentication. It should be included in the header of each request.
A unique integer value identifying this scenario.
ID of the agent. Either agent or project must be provided.
ID of the project. Either agent or project must be provided.
Alternative to agent ID - the assistant ID to use for this scenario
Example: "asst_1234567890"
Name of the scenario
80The personality of the evaluator
Type of scenario to create:
instruction: Standard instruction-based scenario where the instructions field contains plain textconditional_actions: Conditional action-based scenario where the instructions field contains a JSON structureDefault: instruction
instruction - Instructionconditional_actions - Conditional Actionsinstruction, conditional_actions Scenario Instructions - the format depends on the scenario_type:
For scenario_type="instruction":
Provide plain text instructions that describe the scenario behavior.
Example: "You are a customer calling to inquire about your order status. Be polite and provide order number 12345 when asked."
For scenario_type="conditional_actions": Provide a JSON-formatted string (stringified) with the following structure:
{
"role": "A friendly customer calling about an appointment",
"conditions": [
{
"id": 0,
"condition": "FIRST_MESSAGE",
"action": "Hi there, I need to check on my appointment <break time=\"1.5s\" /> [laughter]",
"type": "standard",
"fixed_message": true
},
{
"id": 1,
"condition": "contains \"appointment\" OR contains \"schedule\" OR contains \"help\"",
"action": "Yes, I have an appointment scheduled for tomorrow [laughter] [laughter]",
"type": "standard",
"fixed_message": true
},
{
"id": 2,
"condition": "contains \"confirm\" OR contains \"thank\" OR contains \"anything else\"",
"action": "No that's all, thank you so much <break time=\"1.0s\" /> [laughter]",
"type": "standard",
"fixed_message": true
},
{
"id": 3,
"condition": 2,
"action": "<endcall />",
"type": "action_followup",
"fixed_message": true
}
]
}
Important: The JSON must be stringified (use JSON.dumps in Python or JSON.stringify in JavaScript) before sending.
Structure Details:
role (string): Personality/role description for the scenario actor
conditions (array): Ordered list of conditional actions that define the conversation flow
Each condition object has:
id (integer): Unique sequential identifier (0, 1, 2, 3...)
condition (string | integer): The trigger that activates this action
"FIRST_MESSAGE" - Triggers at conversation start (use for id: 0)"contains \"keyword\"" - Triggers when agent's response contains keyword(s)OR for multiple keywords: "contains \"word1\" OR contains \"word2\"AND for all keywords: "contains \"word1\" AND contains \"word2\"2) - References another condition's id for sequential followup actionsaction (string): What the scenario actor says or does
<break time="1.5s" /> or <break time="1.0s" />[laughter], [sigh], etc. (can repeat like [laughter] [laughter])<endcall /> to end the calltype (string): Either "standard" (normal response) or "action_followup" (triggers after another condition)
fixed_message (boolean): Set to true for fixed responses, false for dynamic
Usage Tips:
id: 0 and condition: "FIRST_MESSAGE"<endcall /> for clean call termination"Great <break time=\"1.5s\" /> [laughter] [laughter]"Structured conditional-actions payload — preferred over posting a stringified JSON via instructions for scenario_type="conditional_actions". When supplied, the backend converts this object to a JSON string and stores it in the scenario's instructions field automatically.
Use either conditional_actions (structured) OR instructions (stringified JSON) — not both.
Expected Outcome Prompt
Example: "The user should be able to complete the order"
List of metric IDs to associate with this evaluator
Example: [123, 456, 789]
List of tags to associate with the evaluator
Example: ["tag1", "tag2", "tag3"]
List of tool IDs to use for evaluator
[
"TOOL_DTMF",
"TOOL_END_CALL",
"TOOL_END_CALL_ONLY_ON_TRANSFER"
]
The test profile ID to use for the evaluator
The phone number ID to use for the evaluator (works for both inbound and outbound)
(Deprecated) The inbound phone number ID to use for the evaluator. Use phone_number instead, which works for both inbound and outbound.
Dot-separated folder path to assign the evaluator to (e.g. "Sales.Inbound")
Name of the evaluator
Agent ID
Example: 2142
ID of the personality
Name of the personality
Name of the agent associated with this scenario
Example: "Customer Support Agent"
List of tags of the evaluators
Example: ["tag1", "tag2", "tag3"]
List of tool IDs to associate with this scenario
Example: ["TOOL_DTMF", "TOOL_END_CALL"]
List of run IDs
Example: [123, 456, 789]
List of metric IDs
Example: [123, 456, 789]
List of metric names
Example: ["Metric 1", "Metric 2", "Metric 3"]
Phone number eg: +17776666333
Phone number used for outbound calls in this scenario
Example: "+1234567890"
First message of the evaluator
(Deprecated) Phone number used for inbound calls in this scenario. Use outbound_phone_number_data instead.
After CEK-6517, both phone_number and inbound_phone_number fields are synced, so outbound_phone_number_data contains the unified phone number for both inbound and outbound calls.
Example: {"id": 123, "number": "+1234567890", "phone_number_id": "abc123"}
Scenario Instructions - format depends on scenario_type:
instruction type: Plain text instructionsconditional_actions type: JSON string with role and conditions array. Each condition has id, condition trigger (FIRST_MESSAGE, contains operators, or id reference), action (text with optional <break time="1.5s" /> and [laughter] tags), type (standard/action_followup), and fixed_message flagSimulation Description
Information fields of the evaluator Example:
{
"user_name": "John Doe",
"user_email": "john.doe@example.com",
}
Expected outcome prompt of the evaluator
Example: "The user should be able to complete the order"
Language of the scenario
af - Afrikaansar - Arabicbn - Bengalibg - Bulgarianzh - Chinese Simplifiedcs - Czechda - Danishnl - Dutchen - Englishet - Estonianfi - Finnishfr - Frenchde - Germanel - Greekgu - Gujaratihi - Hindihe - Hebrewhu - Hungarianid - Indonesianit - Italianja - Japanesekn - Kannadako - Koreanms - Malayml - Malayalammr - Marathimulti - Multilingualno - Norwegianpl - Polishpa - Punjabipt - Portuguesero - Romanianru - Russiansk - Slovakes - Spanishsv - Swedishth - Thaitr - Turkishta - Tamilte - Teluguuk - Ukrainianvi - Vietnameseaf, ar, bn, bg, zh, cs, da, nl, en, et, fi, fr, de, el, gu, hi, he, hu, id, it, ja, kn, ko, ms, ml, mr, multi, no, pl, pa, pt, ro, ru, sk, es, sv, th, tr, ta, te, uk, vi Type of scenario:
instruction: Standard instruction-based scenario (plain text instructions)conditional_actions: Conditional action-based scenario (JSON with role, conditions, SSML tags, emotion markers)real_world_smart: Real world smart scenarioreal_world_fixed: Real world fixed scenarioType of predefined suite (e.g., infrastructure)
undefined - Undefinedinfrastructure - Infrastructureundefined, infrastructure Whether this is a predefined scenario (template)
Details of the test profile associated with this scenario Example:
{
"id": "<integer>",
"agent_id": "<integer>",
"name": "<string>",
"information": {
"user_name": "<string>",
"user_email": "<string>",
"order_id": "<string>",
},
}
Generated values for the agent's dynamic variables for this scenario. Keys are variable names; values are the generated values.
Path of the folder this scenario belongs to
Max call duration in seconds for this scenario. If not provided or set to null, the scenario will use the project's max_call_duration setting.
Valid range: 10-3600 seconds (10 seconds to 60 minutes)
Example: 600 (10 minutes)