{
  "$id": "https://sipstack.com/schemas/aura/agent.v1.json",
  "title": "Aura Agent Export (envelope v1)",
  "description": "Portable definition of a SIPSTACK Aura voice/chat agent — settings plus the flow graph (nodes, edges, conditions, tool-calls, actions). Hand this file to an LLM to edit, then re-import it in Switchboard. Secret values are never present: credentials appear as ${credential:Name} placeholders you re-bind on import.",
  "$ref": "#/definitions/AuraAgentExport",
  "definitions": {
    "AuraAgentExport": {
      "type": "object",
      "properties": {
        "auraAgentExportVersion": {
          "type": "number",
          "const": 1
        },
        "name": {
          "type": "string",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "enum": [
            "overflow",
            "sales",
            "support",
            "general",
            "custom"
          ],
          "default": "overflow"
        },
        "voiceName": {
          "type": "string",
          "minLength": 1
        },
        "mode": {
          "type": "string",
          "enum": [
            "freeform",
            "flow"
          ]
        },
        "flowMode": {
          "type": "string",
          "enum": [
            "flexible",
            "strict"
          ]
        },
        "greeting": {
          "type": "string",
          "minLength": 1
        },
        "systemPrompt": {
          "type": "string"
        },
        "globalPrompt": {
          "type": "string"
        },
        "responseValidator": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          },
          "required": [
            "enabled"
          ],
          "additionalProperties": false
        },
        "chimeEnabled": {
          "type": "boolean"
        },
        "bargeInEnabled": {
          "type": "boolean"
        },
        "silenceTimeoutMs": {
          "type": "integer"
        },
        "maxCallDurationMs": {
          "type": "integer"
        },
        "maxTurns": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "escalationMode": {
          "type": "string",
          "enum": [
            "transfer",
            "ticket"
          ]
        },
        "variableOverrides": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "fallbackDestination": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "minLength": 1
            },
            "id": {
              "type": "string"
            },
            "number": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        "extractionPlan": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "promptOverride": {
              "type": "string"
            },
            "fields": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "text",
                      "number",
                      "boolean",
                      "enum"
                    ]
                  },
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "name",
                  "description"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "enabled",
            "fields"
          ],
          "additionalProperties": false
        },
        "postCallActions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "channel": {
                "type": "string",
                "enum": [
                  "webhook",
                  "slack",
                  "teams",
                  "email",
                  "sms"
                ]
              },
              "target": {
                "type": "string",
                "minLength": 1
              },
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "channel",
              "target"
            ],
            "additionalProperties": false
          }
        },
        "recording": {
          "type": "object",
          "properties": {
            "record": {
              "type": "boolean"
            },
            "consentMode": {
              "type": "string",
              "enum": [
                "announcement",
                "in_greeting"
              ]
            },
            "disclosureText": {
              "type": "string"
            },
            "analyze": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "flow": {
          "type": "object",
          "properties": {
            "version": {
              "type": "number",
              "const": 2
            },
            "entryNodeId": {
              "type": "string",
              "minLength": 1
            },
            "nodes": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "start"
                      }
                    },
                    "required": [
                      "id",
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "say"
                      },
                      "source": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "mode": {
                                "type": "string",
                                "const": "static"
                              },
                              "text": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "mode",
                              "text"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "mode": {
                                "type": "string",
                                "const": "llm"
                              },
                              "prompt": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "mode",
                              "prompt"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "interruptible": {
                        "type": "boolean",
                        "default": true
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "source"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "collect"
                      },
                      "variable": {
                        "type": "string",
                        "minLength": 1
                      },
                      "prompt": {
                        "type": "string"
                      },
                      "silenceTimeoutMs": {
                        "type": "integer",
                        "minimum": 500,
                        "default": 2000
                      },
                      "maxUtteranceMs": {
                        "type": "integer",
                        "minimum": 1000
                      },
                      "inputMode": {
                        "type": "string",
                        "enum": [
                          "speech",
                          "dtmf"
                        ]
                      },
                      "acknowledge": {
                        "type": "boolean"
                      },
                      "dtmf": {
                        "type": "object",
                        "properties": {
                          "maxDigits": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 32
                          },
                          "finishOnKey": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1
                          },
                          "interDigitTimeoutMs": {
                            "type": "integer",
                            "minimum": 1000,
                            "maximum": 30000
                          }
                        },
                        "additionalProperties": false
                      },
                      "highAccuracy": {
                        "type": "boolean"
                      },
                      "fieldType": {
                        "type": "string",
                        "enum": [
                          "email",
                          "phone",
                          "code",
                          "first-name",
                          "last-name",
                          "full-name",
                          "name",
                          "text"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "variable"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "verified-collect"
                      },
                      "variable": {
                        "type": "string",
                        "minLength": 1
                      },
                      "fieldType": {
                        "type": "string",
                        "enum": [
                          "email",
                          "phone",
                          "code",
                          "first-name",
                          "last-name",
                          "full-name",
                          "name",
                          "text"
                        ],
                        "default": "text"
                      },
                      "prompt": {
                        "type": "string"
                      },
                      "silenceTimeoutMs": {
                        "type": "integer",
                        "minimum": 500,
                        "default": 2000
                      },
                      "maxUtteranceMs": {
                        "type": "integer",
                        "minimum": 1000
                      },
                      "maxParseRetries": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      },
                      "maxConfirmRetries": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      },
                      "spellOnRetry": {
                        "type": "boolean",
                        "default": true
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "variable"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "branch"
                      }
                    },
                    "required": [
                      "id",
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "intent-router"
                      },
                      "intents": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "minLength": 1
                            },
                            "description": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "label"
                          ],
                          "additionalProperties": false
                        },
                        "minItems": 1,
                        "maxItems": 20
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1,
                        "default": "intent"
                      },
                      "transcriptWindow": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 20,
                        "default": 6
                      },
                      "includeVars": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "maxItems": 20
                      },
                      "confidenceThreshold": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "default": 0
                      },
                      "clarifyPrompt": {
                        "type": "string"
                      },
                      "maxClarifyRounds": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 3,
                        "default": 1
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "intents"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "converse"
                      },
                      "systemPrompt": {
                        "type": "string",
                        "minLength": 1
                      },
                      "goal": {
                        "type": "string"
                      },
                      "maxTurns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 50,
                        "default": 10
                      },
                      "maxDurationMs": {
                        "type": "integer",
                        "minimum": 1000
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1
                      },
                      "exitCondition": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "var": {
                                "type": "string",
                                "minLength": 1
                              },
                              "op": {
                                "type": "string",
                                "enum": [
                                  "eq",
                                  "neq",
                                  "contains",
                                  "regex",
                                  "gt",
                                  "lt",
                                  "gte",
                                  "lte",
                                  "exists",
                                  "notExists"
                                ]
                              },
                              "value": {
                                "type": [
                                  "string",
                                  "number",
                                  "boolean"
                                ]
                              }
                            },
                            "required": [
                              "var",
                              "op"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "llmIntent": {
                                "type": "object",
                                "properties": {
                                  "prompt": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "expect": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "required": [
                                  "prompt",
                                  "expect"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "llmIntent"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "all": {
                                "type": "array",
                                "items": {},
                                "minItems": 1
                              }
                            },
                            "required": [
                              "all"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "any": {
                                "type": "array",
                                "items": {},
                                "minItems": 1
                              }
                            },
                            "required": [
                              "any"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "not": {}
                            },
                            "required": [
                              "not"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "systemPrompt",
                      "resultVar"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "kb-answer"
                      },
                      "query": {
                        "type": "string",
                        "minLength": 1
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1
                      },
                      "topK": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "default": 3
                      },
                      "tagFilter": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "maxItems": 50
                      },
                      "fallbackText": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "query",
                      "resultVar"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "tool-call"
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "GET",
                          "POST",
                          "PUT",
                          "PATCH",
                          "DELETE"
                        ],
                        "default": "GET"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1
                      },
                      "headers": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "body": {},
                      "credentialRef": {
                        "type": "string"
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1
                      },
                      "timeoutMs": {
                        "type": "integer",
                        "minimum": 100,
                        "maximum": 30000,
                        "default": 8000
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "url",
                      "resultVar"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "transfer"
                      },
                      "target": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "hangup"
                      },
                      "reason": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "set-variable"
                      },
                      "assignments": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "target": {
                              "type": "string",
                              "minLength": 1
                            },
                            "value": {
                              "type": "string"
                            },
                            "fromVar": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "target"
                          ],
                          "additionalProperties": false
                        },
                        "minItems": 1,
                        "maxItems": 50
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "assignments"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "webhook"
                      },
                      "event": {
                        "type": "string",
                        "minLength": 1
                      },
                      "payload": {
                        "type": "object",
                        "additionalProperties": {}
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "event"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "http-action"
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "GET",
                          "POST",
                          "PUT",
                          "PATCH",
                          "DELETE"
                        ],
                        "default": "GET"
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1
                      },
                      "headers": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "body": {},
                      "credentialRef": {
                        "type": "string"
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1
                      },
                      "timeoutMs": {
                        "type": "integer",
                        "minimum": 100,
                        "maximum": 30000,
                        "default": 8000
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "url",
                      "resultVar"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "action"
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "webhook",
                          "slack",
                          "teams",
                          "email",
                          "sms"
                        ]
                      },
                      "target": {
                        "type": "string",
                        "minLength": 1
                      },
                      "body": {
                        "type": "string"
                      },
                      "resultVar": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "channel",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "escalate-ticket"
                      },
                      "emailVar": {
                        "type": "string",
                        "minLength": 1
                      },
                      "nameVar": {
                        "type": "string"
                      },
                      "phoneVar": {
                        "type": "string"
                      },
                      "orgVar": {
                        "type": "string"
                      },
                      "request": {
                        "type": "string",
                        "minLength": 1
                      },
                      "categoryVar": {
                        "type": "string"
                      },
                      "resultVar": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "emailVar",
                      "request"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "label": {
                        "type": "string"
                      },
                      "position": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number"
                          },
                          "y": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "const": "calendar-book"
                      },
                      "meetingType": {
                        "type": "string",
                        "minLength": 1
                      },
                      "resultVar": {
                        "type": "string",
                        "minLength": 1,
                        "default": "booking"
                      },
                      "emailVar": {
                        "type": "string"
                      },
                      "nameVar": {
                        "type": "string"
                      },
                      "phoneVar": {
                        "type": "string"
                      },
                      "timezoneVar": {
                        "type": "string"
                      },
                      "maxSlots": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 5,
                        "default": 3
                      },
                      "inputMode": {
                        "type": "string",
                        "enum": [
                          "speech",
                          "dtmf"
                        ]
                      },
                      "offerPrompt": {
                        "type": "string"
                      },
                      "noSlotsText": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "meetingType"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "minItems": 1
            },
            "edges": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "source": {
                    "type": "string",
                    "minLength": 1
                  },
                  "sourceHandle": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string",
                    "minLength": 1
                  },
                  "condition": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "var": {
                            "type": "string",
                            "minLength": 1
                          },
                          "op": {
                            "type": "string",
                            "enum": [
                              "eq",
                              "neq",
                              "contains",
                              "regex",
                              "gt",
                              "lt",
                              "gte",
                              "lte",
                              "exists",
                              "notExists"
                            ]
                          },
                          "value": {
                            "type": [
                              "string",
                              "number",
                              "boolean"
                            ]
                          }
                        },
                        "required": [
                          "var",
                          "op"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "llmIntent": {
                            "type": "object",
                            "properties": {
                              "prompt": {
                                "type": "string",
                                "minLength": 1
                              },
                              "expect": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "prompt",
                              "expect"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "llmIntent"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "all": {
                            "type": "array",
                            "items": {},
                            "minItems": 1
                          }
                        },
                        "required": [
                          "all"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "any": {
                            "type": "array",
                            "items": {},
                            "minItems": 1
                          }
                        },
                        "required": [
                          "any"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "not": {}
                        },
                        "required": [
                          "not"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "isDefault": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "source",
                  "target"
                ],
                "additionalProperties": false
              }
            },
            "limits": {
              "type": "object",
              "properties": {
                "maxNodeVisits": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1000,
                  "default": 200
                }
              },
              "additionalProperties": false
            },
            "eventHandlers": {
              "type": "object",
              "properties": {
                "noInput": {
                  "type": "object",
                  "properties": {
                    "target": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "target"
                  ],
                  "additionalProperties": false
                },
                "noMatch": {
                  "type": "object",
                  "properties": {
                    "maxRetries": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10,
                      "default": 3
                    },
                    "target": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "target"
                  ],
                  "additionalProperties": false
                },
                "globalEscape": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "phrases": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "minItems": 1,
                        "maxItems": 20
                      },
                      "target": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "phrases",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  "maxItems": 20
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "version",
            "entryNodeId",
            "nodes",
            "edges"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "auraAgentExportVersion",
        "name",
        "voiceName",
        "greeting"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
