Skip to content

Scenario Studio ​

The scenario is the product: a versioned document describing the whole conversation, edited on a drag-and-drop canvas and executed node by node for every call.

Two editors, one rule ​

  • v2 canvas (/scenarios/{id}/v2) — the primary designer: seventeen node types, retry lanes, sub-flows, global handlers, undo/redo, node templates.
  • v1 editor (/scenarios/{id}) — kept so old documents stay readable. Nothing is migrated behind your back: Convert to v2 is explicit, saves the translation as a new version, and leaves the v1 history untouched (ADR-0019).

The list opens each scenario in the editor its latest version belongs to. New scenarios start in the v2 canvas.

The edit lock ​

Opening a scenario takes the edit lock (ADR-0042). If somebody else holds it, the canvas opens read-only with a banner naming them — a studio admin can take over. The lock heartbeats while your tab is open and is a precondition on every save: a save without it answers 409 and the studio tells you who has it now, instead of losing your changes silently.

Designing on the canvas ​

  • Add nodes from the toolbar palette (grouped: Conversation, Understanding, Logic, Integration, Ending) or drag them onto the canvas. Node templates from the library insert a configured node in one click.
  • Wire rules by dragging from a node's handle to the next node. Each rule has two lanes: next advances the flow; retry re-enters the same node (timeouts, unfinished answers), bounded by Re-prompts allowed and Times this node may run.
  • The property panel edits the selected node: prompts, capture options (DTMF/speech, timeouts, barge-in), slots to fill, LLM options, and every rule — cases, variable conditions, operator, and where it goes.
  • Sub-flows are tabs across the header: MAIN plus every sub-scenario; a SCENARIO_CALL node runs one and comes back. Global handlers (error, hangup) live beside every flow's canvas.
  • Annotations — Group and Memo — are canvas-only geometry: they round-trip through save and never affect execution.
  • Shortcuts: Ctrl+S save · Ctrl+Z / Ctrl+Shift+Z undo/redo · Ctrl+D duplicate · Del delete · Esc deselect.

The seventeen node types ​

GroupTypesNotes
ConversationBEGIN · GUIDE (Say) · DIALOGUE (Ask)DIALOGUE speaks, listens, and fills slots
UnderstandingNLU · LLM · LLM_PLUSmodel turns — classify, extract, or reason in rounds
LogicBRANCH · FORK · JOIN · TAG · PERSIST · SCENARIO_CALL · RETURNBRANCH routes on variable conditions
IntegrationAPIruns a definition from the project library; the api holds the credential
EndingTRANSFER · CLOSING · ENDTRANSFER hands the caller to a 3CX agent

Validate, save, publish ​

Validate runs the api's checks and pins every finding to the node it is about (unreachable node, empty prompt, rule going nowhere). Save creates an immutable new version — the api refuses invalid documents, so the studio validates first and shows you the findings instead of a generic error. Publish puts the latest version live for new calls; it is always a separate, explicit step.

History lists every version: preview any v2 version read-only, or Restore — which appends that snapshot as a new latest version. History is never rewritten.

Variables ​

Declared per scenario, filled from contact columns (campaigns), caller input (slots), or API results, and rendered into prompts as . The left panel shows where each variable is used.

PLXY AI Call Center — built as five separated projects and one shared schema.