diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json
index a270759b..6d7c1a96 100644
--- a/fern/apis/api/openapi.json
+++ b/fern/apis/api/openapi.json
@@ -306,46 +306,61 @@
]
}
},
- "/assistant": {
- "post": {
- "operationId": "AssistantController_create",
- "summary": "Create Assistant",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CreateAssistantDTO"
- }
+ "/chat": {
+ "get": {
+ "operationId": "ChatController_listChats",
+ "summary": "List Chats",
+ "parameters": [
+ {
+ "name": "assistantId",
+ "required": false,
+ "in": "query",
+ "description": "This is the unique identifier for the assistant that will be used for the chat.",
+ "schema": {
+ "type": "string"
}
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Assistant"
- }
- }
+ },
+ {
+ "name": "workflowId",
+ "required": false,
+ "in": "query",
+ "description": "This is the unique identifier for the workflow that will be used for the chat.",
+ "schema": {
+ "type": "string"
}
- }
- },
- "tags": [
- "Assistants"
- ],
- "security": [
+ },
{
- "bearer": []
- }
- ]
- },
- "get": {
- "operationId": "AssistantController_findAll",
- "summary": "List Assistants",
- "parameters": [
+ "name": "sessionId",
+ "required": false,
+ "in": "query",
+ "description": "This is the unique identifier for the session that will be used for the chat.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "required": false,
+ "in": "query",
+ "description": "This is the page number to return. Defaults to 1.",
+ "schema": {
+ "minimum": 1,
+ "type": "number"
+ }
+ },
+ {
+ "name": "sortOrder",
+ "required": false,
+ "in": "query",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "schema": {
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
+ "type": "string"
+ }
+ },
{
"name": "limit",
"required": false,
@@ -444,63 +459,79 @@
"content": {
"application/json": {
"schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Assistant"
- }
+ "$ref": "#/components/schemas/ChatPaginatedResponse"
}
}
}
}
},
"tags": [
- "Assistants"
+ "Chats"
],
"security": [
{
"bearer": []
}
]
- }
- },
- "/assistant/{id}": {
- "get": {
- "operationId": "AssistantController_findOne",
- "summary": "Get Assistant",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
+ },
+ "post": {
+ "operationId": "ChatController_createChat",
+ "summary": "Create Chat",
+ "description": "Creates a new chat. Requires at least one of: assistantId/assistant, sessionId, or previousChatId. Note: sessionId and previousChatId are mutually exclusive.",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateChatDTO"
+ }
}
}
- ],
+ },
"responses": {
"200": {
+ "description": "Chat response - either non-streaming chat or streaming",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/Chat"
+ },
+ {
+ "$ref": "#/components/schemas/CreateChatStreamResponse"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "201": {
"description": "",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Assistant"
+ "type": "object"
}
}
}
}
},
"tags": [
- "Assistants"
+ "Chats"
],
"security": [
{
"bearer": []
}
]
- },
- "patch": {
- "operationId": "AssistantController_update",
- "summary": "Update Assistant",
+ }
+ },
+ "/chat/{id}": {
+ "get": {
+ "operationId": "ChatController_getChat",
+ "summary": "Get Chat",
"parameters": [
{
"name": "id",
@@ -511,30 +542,20 @@
}
}
],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/UpdateAssistantDTO"
- }
- }
- }
- },
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Assistant"
+ "$ref": "#/components/schemas/Chat"
}
}
}
}
},
"tags": [
- "Assistants"
+ "Chats"
],
"security": [
{
@@ -543,8 +564,8 @@
]
},
"delete": {
- "operationId": "AssistantController_remove",
- "summary": "Delete Assistant",
+ "operationId": "ChatController_deleteChat",
+ "summary": "Delete Chat",
"parameters": [
{
"name": "id",
@@ -561,14 +582,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Assistant"
+ "$ref": "#/components/schemas/Chat"
}
}
}
}
},
"tags": [
- "Assistants"
+ "Chats"
],
"security": [
{
@@ -577,98 +598,98 @@
]
}
},
- "/phone-number": {
+ "/chat/responses": {
"post": {
- "operationId": "PhoneNumberController_create",
- "summary": "Create Phone Number",
+ "operationId": "ChatController_createOpenAIChat",
+ "summary": "Create Chat (OpenAI Compatible)",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/CreateByoPhoneNumberDTO",
- "twilio": "#/components/schemas/CreateTwilioPhoneNumberDTO",
- "vonage": "#/components/schemas/CreateVonagePhoneNumberDTO",
- "vapi": "#/components/schemas/CreateVapiPhoneNumberDTO",
- "telnyx": "#/components/schemas/CreateTelnyxPhoneNumberDTO"
- }
- }
+ "$ref": "#/components/schemas/OpenAIResponsesRequest"
}
}
}
},
"responses": {
- "201": {
- "description": "",
+ "200": {
+ "description": "OpenAI Responses API format - either non-streaming or streaming",
"content": {
"application/json": {
"schema": {
- "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/ByoPhoneNumber",
- "title": "ByoPhoneNumber"
+ "$ref": "#/components/schemas/ResponseObject"
},
{
- "$ref": "#/components/schemas/TwilioPhoneNumber",
- "title": "TwilioPhoneNumber"
+ "$ref": "#/components/schemas/ResponseTextDeltaEvent"
},
{
- "$ref": "#/components/schemas/VonagePhoneNumber",
- "title": "VonagePhoneNumber"
+ "$ref": "#/components/schemas/ResponseTextDoneEvent"
},
{
- "$ref": "#/components/schemas/VapiPhoneNumber",
- "title": "VapiPhoneNumber"
+ "$ref": "#/components/schemas/ResponseCompletedEvent"
},
{
- "$ref": "#/components/schemas/TelnyxPhoneNumber",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
- "twilio": "#/components/schemas/TwilioPhoneNumber",
- "vonage": "#/components/schemas/VonagePhoneNumber",
- "vapi": "#/components/schemas/VapiPhoneNumber",
- "telnyx": "#/components/schemas/TelnyxPhoneNumber"
+ "$ref": "#/components/schemas/ResponseErrorEvent"
}
- }
+ ]
+ }
+ }
+ }
+ },
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
}
}
}
}
},
"tags": [
- "Phone Numbers"
+ "Chats"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/session": {
+ "post": {
+ "operationId": "SessionController_create",
+ "summary": "Create Session",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateSessionDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Session"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Sessions"
],
"security": [
{
@@ -677,9 +698,59 @@
]
},
"get": {
- "operationId": "PhoneNumberController_findAll",
- "summary": "List Phone Numbers",
+ "operationId": "SessionController_findAllPaginated",
+ "summary": "List Sessions",
"parameters": [
+ {
+ "name": "name",
+ "required": false,
+ "in": "query",
+ "description": "This is the name of the session to filter by.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "assistantId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the assistant to filter sessions by.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "workflowId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the workflow to filter sessions by.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "required": false,
+ "in": "query",
+ "description": "This is the page number to return. Defaults to 1.",
+ "schema": {
+ "minimum": 1,
+ "type": "number"
+ }
+ },
+ {
+ "name": "sortOrder",
+ "required": false,
+ "in": "query",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "schema": {
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
+ "type": "string"
+ }
+ },
{
"name": "limit",
"required": false,
@@ -778,49 +849,14 @@
"content": {
"application/json": {
"schema": {
- "type": "array",
- "items": {
- "title": "PhoneNumber",
- "oneOf": [
- {
- "$ref": "#/components/schemas/ByoPhoneNumber",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TwilioPhoneNumber",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VonagePhoneNumber",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VapiPhoneNumber",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TelnyxPhoneNumber",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
- "twilio": "#/components/schemas/TwilioPhoneNumber",
- "vonage": "#/components/schemas/VonagePhoneNumber",
- "vapi": "#/components/schemas/VapiPhoneNumber",
- "telnyx": "#/components/schemas/TelnyxPhoneNumber"
- }
- }
- }
+ "$ref": "#/components/schemas/SessionPaginatedResponse"
}
}
}
}
},
"tags": [
- "Phone Numbers"
+ "Sessions"
],
"security": [
{
@@ -829,10 +865,10 @@
]
}
},
- "/phone-number/{id}": {
+ "/session/{id}": {
"get": {
- "operationId": "PhoneNumberController_findOne",
- "summary": "Get Phone Number",
+ "operationId": "SessionController_findOne",
+ "summary": "Get Session",
"parameters": [
{
"name": "id",
@@ -849,46 +885,14 @@
"content": {
"application/json": {
"schema": {
- "title": "PhoneNumber",
- "oneOf": [
- {
- "$ref": "#/components/schemas/ByoPhoneNumber",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TwilioPhoneNumber",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VonagePhoneNumber",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VapiPhoneNumber",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TelnyxPhoneNumber",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
- "twilio": "#/components/schemas/TwilioPhoneNumber",
- "vonage": "#/components/schemas/VonagePhoneNumber",
- "vapi": "#/components/schemas/VapiPhoneNumber",
- "telnyx": "#/components/schemas/TelnyxPhoneNumber"
- }
- }
+ "$ref": "#/components/schemas/Session"
}
}
}
}
},
"tags": [
- "Phone Numbers"
+ "Sessions"
],
"security": [
{
@@ -897,8 +901,8 @@
]
},
"patch": {
- "operationId": "PhoneNumberController_update",
- "summary": "Update Phone Number",
+ "operationId": "SessionController_update",
+ "summary": "Update Session",
"parameters": [
{
"name": "id",
@@ -914,38 +918,7 @@
"content": {
"application/json": {
"schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/UpdateByoPhoneNumberDTO",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/UpdateTwilioPhoneNumberDTO",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/UpdateVonagePhoneNumberDTO",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/UpdateVapiPhoneNumberDTO",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/UpdateTelnyxPhoneNumberDTO",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/UpdateByoPhoneNumberDTO",
- "twilio": "#/components/schemas/UpdateTwilioPhoneNumberDTO",
- "vonage": "#/components/schemas/UpdateVonagePhoneNumberDTO",
- "vapi": "#/components/schemas/UpdateVapiPhoneNumberDTO",
- "telnyx": "#/components/schemas/UpdateTelnyxPhoneNumberDTO"
- }
- }
+ "$ref": "#/components/schemas/UpdateSessionDTO"
}
}
}
@@ -956,46 +929,14 @@
"content": {
"application/json": {
"schema": {
- "title": "PhoneNumber",
- "oneOf": [
- {
- "$ref": "#/components/schemas/ByoPhoneNumber",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TwilioPhoneNumber",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VonagePhoneNumber",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VapiPhoneNumber",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TelnyxPhoneNumber",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
- "twilio": "#/components/schemas/TwilioPhoneNumber",
- "vonage": "#/components/schemas/VonagePhoneNumber",
- "vapi": "#/components/schemas/VapiPhoneNumber",
- "telnyx": "#/components/schemas/TelnyxPhoneNumber"
- }
- }
+ "$ref": "#/components/schemas/Session"
}
}
}
}
},
"tags": [
- "Phone Numbers"
+ "Sessions"
],
"security": [
{
@@ -1004,8 +945,8 @@
]
},
"delete": {
- "operationId": "PhoneNumberController_remove",
- "summary": "Delete Phone Number",
+ "operationId": "SessionController_remove",
+ "summary": "Delete Session",
"parameters": [
{
"name": "id",
@@ -1022,46 +963,14 @@
"content": {
"application/json": {
"schema": {
- "title": "PhoneNumber",
- "oneOf": [
- {
- "$ref": "#/components/schemas/ByoPhoneNumber",
- "title": "ByoPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TwilioPhoneNumber",
- "title": "TwilioPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VonagePhoneNumber",
- "title": "VonagePhoneNumber"
- },
- {
- "$ref": "#/components/schemas/VapiPhoneNumber",
- "title": "VapiPhoneNumber"
- },
- {
- "$ref": "#/components/schemas/TelnyxPhoneNumber",
- "title": "TelnyxPhoneNumber"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
- "twilio": "#/components/schemas/TwilioPhoneNumber",
- "vonage": "#/components/schemas/VonagePhoneNumber",
- "vapi": "#/components/schemas/VapiPhoneNumber",
- "telnyx": "#/components/schemas/TelnyxPhoneNumber"
- }
- }
+ "$ref": "#/components/schemas/Session"
}
}
}
}
},
"tags": [
- "Phone Numbers"
+ "Sessions"
],
"security": [
{
@@ -1070,108 +979,17 @@
]
}
},
- "/tool": {
+ "/assistant": {
"post": {
- "operationId": "ToolController_create",
- "summary": "Create Tool",
+ "operationId": "AssistantController_create",
+ "summary": "Create Assistant",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateOutputToolDTO",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/CreateBashToolDTO",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/CreateComputerToolDTO",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/CreateTextEditorToolDTO",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
- },
- {
- "$ref": "#/components/schemas/CreateSmsSendToolDTO",
- "title": "SmsSendTool"
- },
- {
- "$ref": "#/components/schemas/CreateMcpToolDTO",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/CreateDtmfToolDTO",
- "endCall": "#/components/schemas/CreateEndCallToolDTO",
- "function": "#/components/schemas/CreateFunctionToolDTO",
- "ghl": "#/components/schemas/CreateGhlToolDTO",
- "make": "#/components/schemas/CreateMakeToolDTO",
- "transferCall": "#/components/schemas/CreateTransferCallToolDTO",
- "output": "#/components/schemas/CreateOutputToolDTO",
- "bash": "#/components/schemas/CreateBashToolDTO",
- "computer": "#/components/schemas/CreateComputerToolDTO",
- "textEditor": "#/components/schemas/CreateTextEditorToolDTO",
- "query": "#/components/schemas/CreateQueryToolDTO",
- "google.calendar.event.create": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "google.sheets.row.append": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "google.calendar.availability.check": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "slack.message.send": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "sms": "#/components/schemas/CreateSmsSendToolDTO",
- "mcp": "#/components/schemas/CreateMcpToolDTO"
- }
- }
+ "$ref": "#/components/schemas/CreateAssistantDTO"
}
}
}
@@ -1182,105 +1000,14 @@
"content": {
"application/json": {
"schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/DtmfTool",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/EndCallTool",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/FunctionTool",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/GhlTool",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/MakeTool",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/TransferCallTool",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/OutputTool",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/BashTool",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/ComputerTool",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/TextEditorTool",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/QueryTool",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/SlackSendMessageTool",
- "title": "SlackSendMessageTool"
- },
- {
- "$ref": "#/components/schemas/SmsSendTool",
- "title": "SmsSendTool"
- },
- {
- "$ref": "#/components/schemas/McpTool",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/DtmfTool",
- "endCall": "#/components/schemas/EndCallTool",
- "function": "#/components/schemas/FunctionTool",
- "ghl": "#/components/schemas/GhlTool",
- "make": "#/components/schemas/MakeTool",
- "transferCall": "#/components/schemas/TransferCallTool",
- "output": "#/components/schemas/OutputTool",
- "bash": "#/components/schemas/BashTool",
- "computer": "#/components/schemas/ComputerTool",
- "textEditor": "#/components/schemas/TextEditorTool",
- "query": "#/components/schemas/QueryTool",
- "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
- "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
- "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "slack.message.send": "#/components/schemas/SlackSendMessageTool",
- "sms": "#/components/schemas/SmsSendTool",
- "mcp": "#/components/schemas/McpTool"
- }
- }
+ "$ref": "#/components/schemas/Assistant"
}
}
}
}
},
"tags": [
- "Tools"
+ "Assistants"
],
"security": [
{
@@ -1289,8 +1016,8 @@
]
},
"get": {
- "operationId": "ToolController_findAll",
- "summary": "List Tools",
+ "operationId": "AssistantController_findAll",
+ "summary": "List Assistants",
"parameters": [
{
"name": "limit",
@@ -1392,98 +1119,7 @@
"schema": {
"type": "array",
"items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/DtmfTool",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/EndCallTool",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/FunctionTool",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/GhlTool",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/MakeTool",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/TransferCallTool",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/OutputTool",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/BashTool",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/ComputerTool",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/TextEditorTool",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/QueryTool",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/SlackSendMessageTool",
- "title": "SlackSendMessageTool"
- },
- {
- "$ref": "#/components/schemas/SmsSendTool",
- "title": "SmsSendTool"
- },
- {
- "$ref": "#/components/schemas/McpTool",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/DtmfTool",
- "endCall": "#/components/schemas/EndCallTool",
- "function": "#/components/schemas/FunctionTool",
- "ghl": "#/components/schemas/GhlTool",
- "make": "#/components/schemas/MakeTool",
- "transferCall": "#/components/schemas/TransferCallTool",
- "output": "#/components/schemas/OutputTool",
- "bash": "#/components/schemas/BashTool",
- "computer": "#/components/schemas/ComputerTool",
- "textEditor": "#/components/schemas/TextEditorTool",
- "query": "#/components/schemas/QueryTool",
- "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
- "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
- "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "slack.message.send": "#/components/schemas/SlackSendMessageTool",
- "sms": "#/components/schemas/SmsSendTool",
- "mcp": "#/components/schemas/McpTool"
- }
- }
+ "$ref": "#/components/schemas/Assistant"
}
}
}
@@ -1491,7 +1127,7 @@
}
},
"tags": [
- "Tools"
+ "Assistants"
],
"security": [
{
@@ -1500,10 +1136,10 @@
]
}
},
- "/tool/{id}": {
+ "/assistant/{id}": {
"get": {
- "operationId": "ToolController_findOne",
- "summary": "Get Tool",
+ "operationId": "AssistantController_findOne",
+ "summary": "Get Assistant",
"parameters": [
{
"name": "id",
@@ -1520,105 +1156,14 @@
"content": {
"application/json": {
"schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/DtmfTool",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/EndCallTool",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/FunctionTool",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/GhlTool",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/MakeTool",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/TransferCallTool",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/OutputTool",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/BashTool",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/ComputerTool",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/TextEditorTool",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/QueryTool",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/SlackSendMessageTool",
- "title": "SlackSendMessageTool"
- },
- {
- "$ref": "#/components/schemas/SmsSendTool",
- "title": "SmsSendTool"
- },
- {
- "$ref": "#/components/schemas/McpTool",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/DtmfTool",
- "endCall": "#/components/schemas/EndCallTool",
- "function": "#/components/schemas/FunctionTool",
- "ghl": "#/components/schemas/GhlTool",
- "make": "#/components/schemas/MakeTool",
- "transferCall": "#/components/schemas/TransferCallTool",
- "output": "#/components/schemas/OutputTool",
- "bash": "#/components/schemas/BashTool",
- "computer": "#/components/schemas/ComputerTool",
- "textEditor": "#/components/schemas/TextEditorTool",
- "query": "#/components/schemas/QueryTool",
- "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
- "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
- "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "slack.message.send": "#/components/schemas/SlackSendMessageTool",
- "sms": "#/components/schemas/SmsSendTool",
- "mcp": "#/components/schemas/McpTool"
- }
- }
+ "$ref": "#/components/schemas/Assistant"
}
}
}
}
},
"tags": [
- "Tools"
+ "Assistants"
],
"security": [
{
@@ -1627,8 +1172,52 @@
]
},
"patch": {
- "operationId": "ToolController_update",
- "summary": "Update Tool",
+ "operationId": "AssistantController_update",
+ "summary": "Update Assistant",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateAssistantDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Assistant"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Assistants"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "AssistantController_remove",
+ "summary": "Delete Assistant",
"parameters": [
{
"name": "id",
@@ -1639,6 +1228,33 @@
}
}
],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Assistant"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Assistants"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/phone-number": {
+ "post": {
+ "operationId": "PhoneNumberController_create",
+ "summary": "Create Phone Number",
+ "parameters": [],
"requestBody": {
"required": true,
"content": {
@@ -1646,94 +1262,34 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/UpdateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/UpdateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/UpdateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/UpdateGhlToolDTO",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/UpdateMakeToolDTO",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/UpdateTransferCallToolDTO",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/UpdateOutputToolDTO",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/UpdateBashToolDTO",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/UpdateComputerToolDTO",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/UpdateTextEditorToolDTO",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/UpdateQueryToolDTO",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/UpdateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/UpdateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/UpdateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
},
{
- "$ref": "#/components/schemas/UpdateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
},
{
- "$ref": "#/components/schemas/UpdateSmsSendToolDTO",
- "title": "SmsSendTool"
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
},
{
- "$ref": "#/components/schemas/UpdateMcpToolDTO",
- "title": "McpTool"
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
- "propertyName": "type",
+ "propertyName": "provider",
"mapping": {
- "dtmf": "#/components/schemas/UpdateDtmfToolDTO",
- "endCall": "#/components/schemas/UpdateEndCallToolDTO",
- "function": "#/components/schemas/UpdateFunctionToolDTO",
- "ghl": "#/components/schemas/UpdateGhlToolDTO",
- "make": "#/components/schemas/UpdateMakeToolDTO",
- "transferCall": "#/components/schemas/UpdateTransferCallToolDTO",
- "output": "#/components/schemas/UpdateOutputToolDTO",
- "bash": "#/components/schemas/UpdateBashToolDTO",
- "computer": "#/components/schemas/UpdateComputerToolDTO",
- "textEditor": "#/components/schemas/UpdateTextEditorToolDTO",
- "query": "#/components/schemas/UpdateQueryToolDTO",
- "google.calendar.event.create": "#/components/schemas/UpdateGoogleCalendarCreateEventToolDTO",
- "google.sheets.row.append": "#/components/schemas/UpdateGoogleSheetsRowAppendToolDTO",
- "google.calendar.availability.check": "#/components/schemas/UpdateGoogleCalendarCheckAvailabilityToolDTO",
- "slack.message.send": "#/components/schemas/UpdateSlackSendMessageToolDTO",
- "sms": "#/components/schemas/UpdateSmsSendToolDTO",
- "mcp": "#/components/schemas/UpdateMcpToolDTO"
+ "byo-phone-number": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "twilio": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "vonage": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "vapi": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "telnyx": "#/components/schemas/CreateTelnyxPhoneNumberDTO"
}
}
}
@@ -1741,477 +1297,42 @@
}
},
"responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/DtmfTool",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/EndCallTool",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/FunctionTool",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/GhlTool",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/MakeTool",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/TransferCallTool",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/OutputTool",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/BashTool",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/ComputerTool",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/TextEditorTool",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/QueryTool",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/SlackSendMessageTool",
- "title": "SlackSendMessageTool"
- },
- {
- "$ref": "#/components/schemas/SmsSendTool",
- "title": "SmsSendTool"
- },
- {
- "$ref": "#/components/schemas/McpTool",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/DtmfTool",
- "endCall": "#/components/schemas/EndCallTool",
- "function": "#/components/schemas/FunctionTool",
- "ghl": "#/components/schemas/GhlTool",
- "make": "#/components/schemas/MakeTool",
- "transferCall": "#/components/schemas/TransferCallTool",
- "output": "#/components/schemas/OutputTool",
- "bash": "#/components/schemas/BashTool",
- "computer": "#/components/schemas/ComputerTool",
- "textEditor": "#/components/schemas/TextEditorTool",
- "query": "#/components/schemas/QueryTool",
- "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
- "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
- "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "slack.message.send": "#/components/schemas/SlackSendMessageTool",
- "sms": "#/components/schemas/SmsSendTool",
- "mcp": "#/components/schemas/McpTool"
- }
- }
- }
- }
- }
- }
- },
- "tags": [
- "Tools"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "delete": {
- "operationId": "ToolController_remove",
- "summary": "Delete Tool",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
+ "201": {
"description": "",
"content": {
"application/json": {
"schema": {
+ "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/DtmfTool",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/EndCallTool",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/FunctionTool",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/GhlTool",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/MakeTool",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/TransferCallTool",
- "title": "TransferCallTool"
- },
- {
- "$ref": "#/components/schemas/OutputTool",
- "title": "OutputTool"
- },
- {
- "$ref": "#/components/schemas/BashTool",
- "title": "BashTool"
- },
- {
- "$ref": "#/components/schemas/ComputerTool",
- "title": "ComputerTool"
- },
- {
- "$ref": "#/components/schemas/TextEditorTool",
- "title": "TextEditorTool"
- },
- {
- "$ref": "#/components/schemas/QueryTool",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/ByoPhoneNumber",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/SlackSendMessageTool",
- "title": "SlackSendMessageTool"
+ "$ref": "#/components/schemas/TwilioPhoneNumber",
+ "title": "TwilioPhoneNumber"
},
{
- "$ref": "#/components/schemas/SmsSendTool",
- "title": "SmsSendTool"
+ "$ref": "#/components/schemas/VonagePhoneNumber",
+ "title": "VonagePhoneNumber"
},
{
- "$ref": "#/components/schemas/McpTool",
- "title": "McpTool"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "dtmf": "#/components/schemas/DtmfTool",
- "endCall": "#/components/schemas/EndCallTool",
- "function": "#/components/schemas/FunctionTool",
- "ghl": "#/components/schemas/GhlTool",
- "make": "#/components/schemas/MakeTool",
- "transferCall": "#/components/schemas/TransferCallTool",
- "output": "#/components/schemas/OutputTool",
- "bash": "#/components/schemas/BashTool",
- "computer": "#/components/schemas/ComputerTool",
- "textEditor": "#/components/schemas/TextEditorTool",
- "query": "#/components/schemas/QueryTool",
- "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
- "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
- "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
- "slack.message.send": "#/components/schemas/SlackSendMessageTool",
- "sms": "#/components/schemas/SmsSendTool",
- "mcp": "#/components/schemas/McpTool"
- }
- }
- }
- }
- }
- }
- },
- "tags": [
- "Tools"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/file": {
- "post": {
- "operationId": "FileController_create",
- "summary": "Upload File",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "multipart/form-data": {
- "schema": {
- "$ref": "#/components/schemas/CreateFileDTO"
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "File uploaded successfully",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- },
- "400": {
- "description": "Invalid file"
- }
- },
- "tags": [
- "Files"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "get": {
- "operationId": "FileController_findAll",
- "summary": "List Files",
- "parameters": [],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- }
- }
- },
- "tags": [
- "Files"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/file/{id}": {
- "get": {
- "operationId": "FileController_findOne",
- "summary": "Get File",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- }
- },
- "tags": [
- "Files"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "patch": {
- "operationId": "FileController_update",
- "summary": "Update File",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/UpdateFileDTO"
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- }
- },
- "tags": [
- "Files"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "delete": {
- "operationId": "FileController_remove",
- "summary": "Delete File",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/File"
- }
- }
- }
- }
- },
- "tags": [
- "Files"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/knowledge-base": {
- "post": {
- "operationId": "KnowledgeBaseController_create",
- "summary": "Create Knowledge Base",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateTrieveKnowledgeBaseDTO",
- "title": "TrieveKnowledgeBaseDTO"
- },
- {
- "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
- "title": "CustomKnowledgeBaseDTO"
- }
- ],
- "discriminator": {
- "propertyName": "provider",
- "mapping": {
- "trieve": "#/components/schemas/CreateTrieveKnowledgeBaseDTO",
- "custom-knowledge-base": "#/components/schemas/CreateCustomKnowledgeBaseDTO"
- }
- }
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/TrieveKnowledgeBase",
- "title": "TrieveKnowledgeBase"
+ "$ref": "#/components/schemas/VapiPhoneNumber",
+ "title": "VapiPhoneNumber"
},
{
- "$ref": "#/components/schemas/CustomKnowledgeBase",
- "title": "CustomKnowledgeBase"
+ "$ref": "#/components/schemas/TelnyxPhoneNumber",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/TrieveKnowledgeBase",
- "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
+ "twilio": "#/components/schemas/TwilioPhoneNumber",
+ "vonage": "#/components/schemas/VonagePhoneNumber",
+ "vapi": "#/components/schemas/VapiPhoneNumber",
+ "telnyx": "#/components/schemas/TelnyxPhoneNumber"
}
}
}
@@ -2220,7 +1341,7 @@
}
},
"tags": [
- "Knowledge Base"
+ "Phone Numbers"
],
"security": [
{
@@ -2229,8 +1350,8 @@
]
},
"get": {
- "operationId": "KnowledgeBaseController_findAll",
- "summary": "List Knowledge Bases",
+ "operationId": "PhoneNumberController_findAll",
+ "summary": "List Phone Numbers",
"parameters": [
{
"name": "limit",
@@ -2332,21 +1453,37 @@
"schema": {
"type": "array",
"items": {
+ "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/TrieveKnowledgeBase",
- "title": "TrieveKnowledgeBase"
+ "$ref": "#/components/schemas/ByoPhoneNumber",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/CustomKnowledgeBase",
- "title": "CustomKnowledgeBase"
+ "$ref": "#/components/schemas/TwilioPhoneNumber",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VonagePhoneNumber",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VapiPhoneNumber",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/TelnyxPhoneNumber",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/TrieveKnowledgeBase",
- "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
+ "twilio": "#/components/schemas/TwilioPhoneNumber",
+ "vonage": "#/components/schemas/VonagePhoneNumber",
+ "vapi": "#/components/schemas/VapiPhoneNumber",
+ "telnyx": "#/components/schemas/TelnyxPhoneNumber"
}
}
}
@@ -2356,7 +1493,7 @@
}
},
"tags": [
- "Knowledge Base"
+ "Phone Numbers"
],
"security": [
{
@@ -2365,10 +1502,10 @@
]
}
},
- "/knowledge-base/{id}": {
+ "/phone-number/{id}": {
"get": {
- "operationId": "KnowledgeBaseController_findOne",
- "summary": "Get Knowledge Base",
+ "operationId": "PhoneNumberController_findOne",
+ "summary": "Get Phone Number",
"parameters": [
{
"name": "id",
@@ -2385,21 +1522,37 @@
"content": {
"application/json": {
"schema": {
+ "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/TrieveKnowledgeBase",
- "title": "TrieveKnowledgeBase"
+ "$ref": "#/components/schemas/ByoPhoneNumber",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/CustomKnowledgeBase",
- "title": "CustomKnowledgeBase"
- }
- ],
+ "$ref": "#/components/schemas/TwilioPhoneNumber",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VonagePhoneNumber",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VapiPhoneNumber",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/TelnyxPhoneNumber",
+ "title": "TelnyxPhoneNumber"
+ }
+ ],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/TrieveKnowledgeBase",
- "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
+ "twilio": "#/components/schemas/TwilioPhoneNumber",
+ "vonage": "#/components/schemas/VonagePhoneNumber",
+ "vapi": "#/components/schemas/VapiPhoneNumber",
+ "telnyx": "#/components/schemas/TelnyxPhoneNumber"
}
}
}
@@ -2408,7 +1561,7 @@
}
},
"tags": [
- "Knowledge Base"
+ "Phone Numbers"
],
"security": [
{
@@ -2417,8 +1570,8 @@
]
},
"patch": {
- "operationId": "KnowledgeBaseController_update",
- "summary": "Update Knowledge Base",
+ "operationId": "PhoneNumberController_update",
+ "summary": "Update Phone Number",
"parameters": [
{
"name": "id",
@@ -2436,19 +1589,34 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/UpdateTrieveKnowledgeBaseDTO",
- "title": "UpdateTrieveKnowledgeBaseDTO"
+ "$ref": "#/components/schemas/UpdateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/UpdateCustomKnowledgeBaseDTO",
- "title": "UpdateCustomKnowledgeBaseDTO"
+ "$ref": "#/components/schemas/UpdateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/UpdateTrieveKnowledgeBaseDTO",
- "custom-knowledge-base": "#/components/schemas/UpdateCustomKnowledgeBaseDTO"
+ "byo-phone-number": "#/components/schemas/UpdateByoPhoneNumberDTO",
+ "twilio": "#/components/schemas/UpdateTwilioPhoneNumberDTO",
+ "vonage": "#/components/schemas/UpdateVonagePhoneNumberDTO",
+ "vapi": "#/components/schemas/UpdateVapiPhoneNumberDTO",
+ "telnyx": "#/components/schemas/UpdateTelnyxPhoneNumberDTO"
}
}
}
@@ -2461,21 +1629,37 @@
"content": {
"application/json": {
"schema": {
+ "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/TrieveKnowledgeBase",
- "title": "TrieveKnowledgeBase"
+ "$ref": "#/components/schemas/ByoPhoneNumber",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/CustomKnowledgeBase",
- "title": "CustomKnowledgeBase"
+ "$ref": "#/components/schemas/TwilioPhoneNumber",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VonagePhoneNumber",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VapiPhoneNumber",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/TelnyxPhoneNumber",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/TrieveKnowledgeBase",
- "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
+ "twilio": "#/components/schemas/TwilioPhoneNumber",
+ "vonage": "#/components/schemas/VonagePhoneNumber",
+ "vapi": "#/components/schemas/VapiPhoneNumber",
+ "telnyx": "#/components/schemas/TelnyxPhoneNumber"
}
}
}
@@ -2484,7 +1668,7 @@
}
},
"tags": [
- "Knowledge Base"
+ "Phone Numbers"
],
"security": [
{
@@ -2493,8 +1677,8 @@
]
},
"delete": {
- "operationId": "KnowledgeBaseController_remove",
- "summary": "Delete Knowledge Base",
+ "operationId": "PhoneNumberController_remove",
+ "summary": "Delete Phone Number",
"parameters": [
{
"name": "id",
@@ -2511,21 +1695,37 @@
"content": {
"application/json": {
"schema": {
+ "title": "PhoneNumber",
"oneOf": [
{
- "$ref": "#/components/schemas/TrieveKnowledgeBase",
- "title": "TrieveKnowledgeBase"
+ "$ref": "#/components/schemas/ByoPhoneNumber",
+ "title": "ByoPhoneNumber"
},
{
- "$ref": "#/components/schemas/CustomKnowledgeBase",
- "title": "CustomKnowledgeBase"
+ "$ref": "#/components/schemas/TwilioPhoneNumber",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VonagePhoneNumber",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/VapiPhoneNumber",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/TelnyxPhoneNumber",
+ "title": "TelnyxPhoneNumber"
}
],
"discriminator": {
"propertyName": "provider",
"mapping": {
- "trieve": "#/components/schemas/TrieveKnowledgeBase",
- "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ "byo-phone-number": "#/components/schemas/ByoPhoneNumber",
+ "twilio": "#/components/schemas/TwilioPhoneNumber",
+ "vonage": "#/components/schemas/VonagePhoneNumber",
+ "vapi": "#/components/schemas/VapiPhoneNumber",
+ "telnyx": "#/components/schemas/TelnyxPhoneNumber"
}
}
}
@@ -2534,7 +1734,7 @@
}
},
"tags": [
- "Knowledge Base"
+ "Phone Numbers"
],
"security": [
{
@@ -2543,214 +1743,257 @@
]
}
},
- "/workflow": {
- "get": {
- "operationId": "WorkflowController_findAll",
- "summary": "Get Workflows",
- "parameters": [],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Workflow"
- }
- }
- }
- }
- }
- },
- "tags": [
- "Workflow"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
+ "/tool": {
"post": {
- "operationId": "WorkflowController_create",
- "summary": "Create Workflow",
+ "operationId": "ToolController_create",
+ "summary": "Create Tool",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/CreateWorkflowDTO"
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Workflow"
- }
- }
- }
- }
- },
- "tags": [
- "Workflow"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/workflow/{id}": {
- "get": {
- "operationId": "WorkflowController_findOne",
- "summary": "Get Workflow",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Workflow"
- }
- }
- }
- }
- },
- "tags": [
- "Workflow"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "delete": {
- "operationId": "WorkflowController_delete",
- "summary": "Delete Workflow",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Workflow"
- }
- }
- }
- }
- },
- "tags": [
- "Workflow"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "patch": {
- "operationId": "WorkflowController_update",
- "summary": "Update Workflow",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/UpdateWorkflowDTO"
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Workflow"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGhlToolDTO",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMakeToolDTO",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateOutputToolDTO",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/CreateDtmfToolDTO",
+ "endCall": "#/components/schemas/CreateEndCallToolDTO",
+ "function": "#/components/schemas/CreateFunctionToolDTO",
+ "ghl": "#/components/schemas/CreateGhlToolDTO",
+ "make": "#/components/schemas/CreateMakeToolDTO",
+ "transferCall": "#/components/schemas/CreateTransferCallToolDTO",
+ "output": "#/components/schemas/CreateOutputToolDTO",
+ "bash": "#/components/schemas/CreateBashToolDTO",
+ "computer": "#/components/schemas/CreateComputerToolDTO",
+ "textEditor": "#/components/schemas/CreateTextEditorToolDTO",
+ "query": "#/components/schemas/CreateQueryToolDTO",
+ "google.calendar.event.create": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "google.sheets.row.append": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "google.calendar.availability.check": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "slack.message.send": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "sms": "#/components/schemas/CreateSmsToolDTO",
+ "mcp": "#/components/schemas/CreateMcpToolDTO",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "gohighlevel.calendar.event.create": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "gohighlevel.contact.create": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "gohighlevel.contact.get": "#/components/schemas/CreateGoHighLevelContactGetToolDTO"
+ }
}
}
}
}
},
- "tags": [
- "Workflow"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/squad": {
- "post": {
- "operationId": "SquadController_create",
- "summary": "Create Squad",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CreateSquadDTO"
- }
- }
- }
- },
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Squad"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/DtmfTool",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/EndCallTool",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionTool",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/GhlTool",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/MakeTool",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/TransferCallTool",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/OutputTool",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/BashTool",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/ComputerTool",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/TextEditorTool",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/QueryTool",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/SlackSendMessageTool",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/SmsTool",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/McpTool",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateTool",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetTool",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/DtmfTool",
+ "endCall": "#/components/schemas/EndCallTool",
+ "function": "#/components/schemas/FunctionTool",
+ "ghl": "#/components/schemas/GhlTool",
+ "make": "#/components/schemas/MakeTool",
+ "transferCall": "#/components/schemas/TransferCallTool",
+ "output": "#/components/schemas/OutputTool",
+ "bash": "#/components/schemas/BashTool",
+ "computer": "#/components/schemas/ComputerTool",
+ "textEditor": "#/components/schemas/TextEditorTool",
+ "query": "#/components/schemas/QueryTool",
+ "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "slack.message.send": "#/components/schemas/SlackSendMessageTool",
+ "sms": "#/components/schemas/SmsTool",
+ "mcp": "#/components/schemas/McpTool",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "gohighlevel.calendar.event.create": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "gohighlevel.contact.create": "#/components/schemas/GoHighLevelContactCreateTool",
+ "gohighlevel.contact.get": "#/components/schemas/GoHighLevelContactGetTool"
+ }
+ }
}
}
}
}
},
"tags": [
- "Squads"
+ "Tools"
],
"security": [
{
@@ -2759,8 +2002,8 @@
]
},
"get": {
- "operationId": "SquadController_findAll",
- "summary": "List Squads",
+ "operationId": "ToolController_findAll",
+ "summary": "List Tools",
"parameters": [
{
"name": "limit",
@@ -2862,15 +2105,126 @@
"schema": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Squad"
- }
- }
- }
- }
- }
- },
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/DtmfTool",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/EndCallTool",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionTool",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/GhlTool",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/MakeTool",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/TransferCallTool",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/OutputTool",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/BashTool",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/ComputerTool",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/TextEditorTool",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/QueryTool",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/SlackSendMessageTool",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/SmsTool",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/McpTool",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateTool",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetTool",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/DtmfTool",
+ "endCall": "#/components/schemas/EndCallTool",
+ "function": "#/components/schemas/FunctionTool",
+ "ghl": "#/components/schemas/GhlTool",
+ "make": "#/components/schemas/MakeTool",
+ "transferCall": "#/components/schemas/TransferCallTool",
+ "output": "#/components/schemas/OutputTool",
+ "bash": "#/components/schemas/BashTool",
+ "computer": "#/components/schemas/ComputerTool",
+ "textEditor": "#/components/schemas/TextEditorTool",
+ "query": "#/components/schemas/QueryTool",
+ "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "slack.message.send": "#/components/schemas/SlackSendMessageTool",
+ "sms": "#/components/schemas/SmsTool",
+ "mcp": "#/components/schemas/McpTool",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "gohighlevel.calendar.event.create": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "gohighlevel.contact.create": "#/components/schemas/GoHighLevelContactCreateTool",
+ "gohighlevel.contact.get": "#/components/schemas/GoHighLevelContactGetTool"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"tags": [
- "Squads"
+ "Tools"
],
"security": [
{
@@ -2879,10 +2233,10 @@
]
}
},
- "/squad/{id}": {
+ "/tool/{id}": {
"get": {
- "operationId": "SquadController_findOne",
- "summary": "Get Squad",
+ "operationId": "ToolController_findOne",
+ "summary": "Get Tool",
"parameters": [
{
"name": "id",
@@ -2899,14 +2253,125 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Squad"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/DtmfTool",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/EndCallTool",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionTool",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/GhlTool",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/MakeTool",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/TransferCallTool",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/OutputTool",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/BashTool",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/ComputerTool",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/TextEditorTool",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/QueryTool",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/SlackSendMessageTool",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/SmsTool",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/McpTool",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateTool",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetTool",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/DtmfTool",
+ "endCall": "#/components/schemas/EndCallTool",
+ "function": "#/components/schemas/FunctionTool",
+ "ghl": "#/components/schemas/GhlTool",
+ "make": "#/components/schemas/MakeTool",
+ "transferCall": "#/components/schemas/TransferCallTool",
+ "output": "#/components/schemas/OutputTool",
+ "bash": "#/components/schemas/BashTool",
+ "computer": "#/components/schemas/ComputerTool",
+ "textEditor": "#/components/schemas/TextEditorTool",
+ "query": "#/components/schemas/QueryTool",
+ "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "slack.message.send": "#/components/schemas/SlackSendMessageTool",
+ "sms": "#/components/schemas/SmsTool",
+ "mcp": "#/components/schemas/McpTool",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "gohighlevel.calendar.event.create": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "gohighlevel.contact.create": "#/components/schemas/GoHighLevelContactCreateTool",
+ "gohighlevel.contact.get": "#/components/schemas/GoHighLevelContactGetTool"
+ }
+ }
}
}
}
}
},
"tags": [
- "Squads"
+ "Tools"
],
"security": [
{
@@ -2915,8 +2380,8 @@
]
},
"patch": {
- "operationId": "SquadController_update",
- "summary": "Update Squad",
+ "operationId": "ToolController_update",
+ "summary": "Update Tool",
"parameters": [
{
"name": "id",
@@ -2932,7 +2397,118 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/UpdateSquadDTO"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UpdateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGhlToolDTO",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateMakeToolDTO",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateTransferCallToolDTO",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateOutputToolDTO",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateComputerToolDTO",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateSmsToolDTO",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/UpdateDtmfToolDTO",
+ "endCall": "#/components/schemas/UpdateEndCallToolDTO",
+ "function": "#/components/schemas/UpdateFunctionToolDTO",
+ "ghl": "#/components/schemas/UpdateGhlToolDTO",
+ "make": "#/components/schemas/UpdateMakeToolDTO",
+ "transferCall": "#/components/schemas/UpdateTransferCallToolDTO",
+ "output": "#/components/schemas/UpdateOutputToolDTO",
+ "bash": "#/components/schemas/UpdateBashToolDTO",
+ "computer": "#/components/schemas/UpdateComputerToolDTO",
+ "textEditor": "#/components/schemas/UpdateTextEditorToolDTO",
+ "query": "#/components/schemas/UpdateQueryToolDTO",
+ "google.calendar.event.create": "#/components/schemas/UpdateGoogleCalendarCreateEventToolDTO",
+ "google.sheets.row.append": "#/components/schemas/UpdateGoogleSheetsRowAppendToolDTO",
+ "google.calendar.availability.check": "#/components/schemas/UpdateGoogleCalendarCheckAvailabilityToolDTO",
+ "slack.message.send": "#/components/schemas/UpdateSlackSendMessageToolDTO",
+ "sms": "#/components/schemas/UpdateSmsToolDTO",
+ "mcp": "#/components/schemas/UpdateMcpToolDTO",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/UpdateGoHighLevelCalendarAvailabilityToolDTO",
+ "gohighlevel.calendar.event.create": "#/components/schemas/UpdateGoHighLevelCalendarEventCreateToolDTO",
+ "gohighlevel.contact.create": "#/components/schemas/UpdateGoHighLevelContactCreateToolDTO",
+ "gohighlevel.contact.get": "#/components/schemas/UpdateGoHighLevelContactGetToolDTO"
+ }
+ }
}
}
}
@@ -2943,14 +2519,125 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Squad"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/DtmfTool",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/EndCallTool",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionTool",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/GhlTool",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/MakeTool",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/TransferCallTool",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/OutputTool",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/BashTool",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/ComputerTool",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/TextEditorTool",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/QueryTool",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/SlackSendMessageTool",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/SmsTool",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/McpTool",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateTool",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetTool",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/DtmfTool",
+ "endCall": "#/components/schemas/EndCallTool",
+ "function": "#/components/schemas/FunctionTool",
+ "ghl": "#/components/schemas/GhlTool",
+ "make": "#/components/schemas/MakeTool",
+ "transferCall": "#/components/schemas/TransferCallTool",
+ "output": "#/components/schemas/OutputTool",
+ "bash": "#/components/schemas/BashTool",
+ "computer": "#/components/schemas/ComputerTool",
+ "textEditor": "#/components/schemas/TextEditorTool",
+ "query": "#/components/schemas/QueryTool",
+ "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "slack.message.send": "#/components/schemas/SlackSendMessageTool",
+ "sms": "#/components/schemas/SmsTool",
+ "mcp": "#/components/schemas/McpTool",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "gohighlevel.calendar.event.create": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "gohighlevel.contact.create": "#/components/schemas/GoHighLevelContactCreateTool",
+ "gohighlevel.contact.get": "#/components/schemas/GoHighLevelContactGetTool"
+ }
+ }
}
}
}
}
},
"tags": [
- "Squads"
+ "Tools"
],
"security": [
{
@@ -2959,8 +2646,8 @@
]
},
"delete": {
- "operationId": "SquadController_remove",
- "summary": "Delete Squad",
+ "operationId": "ToolController_remove",
+ "summary": "Delete Tool",
"parameters": [
{
"name": "id",
@@ -2977,191 +2664,193 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Squad"
- }
- }
- }
- }
- },
- "tags": [
- "Squads"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/test-suite": {
- "get": {
- "operationId": "TestSuiteController_findAllPaginated",
- "summary": "List Test Suites",
- "parameters": [
- {
- "name": "page",
- "required": false,
- "in": "query",
- "description": "This is the page number to return. Defaults to 1.",
- "schema": {
- "minimum": 1,
- "type": "number"
- }
- },
- {
- "name": "sortOrder",
- "required": false,
- "in": "query",
- "description": "This is the sort order for pagination. Defaults to 'DESC'.",
- "schema": {
- "enum": [
- "ASC",
- "DESC"
- ],
- "type": "string"
- }
- },
- {
- "name": "limit",
- "required": false,
- "in": "query",
- "description": "This is the maximum number of items to return. Defaults to 100.",
- "schema": {
- "minimum": 0,
- "maximum": 1000,
- "type": "number"
- }
- },
- {
- "name": "createdAtGt",
- "required": false,
- "in": "query",
- "description": "This will return items where the createdAt is greater than the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "createdAtLt",
- "required": false,
- "in": "query",
- "description": "This will return items where the createdAt is less than the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "createdAtGe",
- "required": false,
- "in": "query",
- "description": "This will return items where the createdAt is greater than or equal to the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "createdAtLe",
- "required": false,
- "in": "query",
- "description": "This will return items where the createdAt is less than or equal to the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "updatedAtGt",
- "required": false,
- "in": "query",
- "description": "This will return items where the updatedAt is greater than the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "updatedAtLt",
- "required": false,
- "in": "query",
- "description": "This will return items where the updatedAt is less than the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "updatedAtGe",
- "required": false,
- "in": "query",
- "description": "This will return items where the updatedAt is greater than or equal to the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "name": "updatedAtLe",
- "required": false,
- "in": "query",
- "description": "This will return items where the updatedAt is less than or equal to the specified value.",
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TestSuitesPaginatedResponse"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/DtmfTool",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/EndCallTool",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionTool",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/GhlTool",
+ "title": "GhlTool"
+ },
+ {
+ "$ref": "#/components/schemas/MakeTool",
+ "title": "MakeTool"
+ },
+ {
+ "$ref": "#/components/schemas/TransferCallTool",
+ "title": "TransferCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/OutputTool",
+ "title": "OutputTool"
+ },
+ {
+ "$ref": "#/components/schemas/BashTool",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/ComputerTool",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/TextEditorTool",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/QueryTool",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/SlackSendMessageTool",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/SmsTool",
+ "title": "SmsSendTool"
+ },
+ {
+ "$ref": "#/components/schemas/McpTool",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateTool",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetTool",
+ "title": "GoHighLevelContactGetTool"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "dtmf": "#/components/schemas/DtmfTool",
+ "endCall": "#/components/schemas/EndCallTool",
+ "function": "#/components/schemas/FunctionTool",
+ "ghl": "#/components/schemas/GhlTool",
+ "make": "#/components/schemas/MakeTool",
+ "transferCall": "#/components/schemas/TransferCallTool",
+ "output": "#/components/schemas/OutputTool",
+ "bash": "#/components/schemas/BashTool",
+ "computer": "#/components/schemas/ComputerTool",
+ "textEditor": "#/components/schemas/TextEditorTool",
+ "query": "#/components/schemas/QueryTool",
+ "google.calendar.event.create": "#/components/schemas/GoogleCalendarCreateEventTool",
+ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool",
+ "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool",
+ "slack.message.send": "#/components/schemas/SlackSendMessageTool",
+ "sms": "#/components/schemas/SmsTool",
+ "mcp": "#/components/schemas/McpTool",
+ "gohighlevel.calendar.availability.check": "#/components/schemas/GoHighLevelCalendarAvailabilityTool",
+ "gohighlevel.calendar.event.create": "#/components/schemas/GoHighLevelCalendarEventCreateTool",
+ "gohighlevel.contact.create": "#/components/schemas/GoHighLevelContactCreateTool",
+ "gohighlevel.contact.get": "#/components/schemas/GoHighLevelContactGetTool"
+ }
+ }
}
}
}
}
},
"tags": [
- "Test Suites"
+ "Tools"
],
"security": [
{
"bearer": []
}
]
- },
+ }
+ },
+ "/file": {
"post": {
- "operationId": "TestSuiteController_create",
- "summary": "Create Test Suite",
+ "operationId": "FileController_create",
+ "summary": "Upload File",
"parameters": [],
"requestBody": {
"required": true,
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/CreateTestSuiteDto"
+ "$ref": "#/components/schemas/CreateFileDTO"
}
}
}
},
"responses": {
"201": {
+ "description": "File uploaded successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/File"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid file"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "get": {
+ "operationId": "FileController_findAll",
+ "summary": "List Files",
+ "parameters": [],
+ "responses": {
+ "200": {
"description": "",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuite"
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/File"
+ }
}
}
}
}
},
"tags": [
- "Test Suites"
+ "Files"
],
"security": [
{
@@ -3170,10 +2859,10 @@
]
}
},
- "/test-suite/{id}": {
+ "/file/{id}": {
"get": {
- "operationId": "TestSuiteController_findOne",
- "summary": "Get Test Suite",
+ "operationId": "FileController_findOne",
+ "summary": "Get File",
"parameters": [
{
"name": "id",
@@ -3190,14 +2879,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuite"
+ "$ref": "#/components/schemas/File"
}
}
}
}
},
"tags": [
- "Test Suites"
+ "Files"
],
"security": [
{
@@ -3206,8 +2895,8 @@
]
},
"patch": {
- "operationId": "TestSuiteController_update",
- "summary": "Update Test Suite",
+ "operationId": "FileController_update",
+ "summary": "Update File",
"parameters": [
{
"name": "id",
@@ -3223,7 +2912,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/UpdateTestSuiteDto"
+ "$ref": "#/components/schemas/UpdateFileDTO"
}
}
}
@@ -3234,14 +2923,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuite"
+ "$ref": "#/components/schemas/File"
}
}
}
}
},
"tags": [
- "Test Suites"
+ "Files"
],
"security": [
{
@@ -3250,8 +2939,8 @@
]
},
"delete": {
- "operationId": "TestSuiteController_remove",
- "summary": "Delete Test Suite",
+ "operationId": "FileController_remove",
+ "summary": "Delete File",
"parameters": [
{
"name": "id",
@@ -3268,14 +2957,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuite"
+ "$ref": "#/components/schemas/File"
}
}
}
}
},
"tags": [
- "Test Suites"
+ "Files"
],
"security": [
{
@@ -3284,42 +2973,78 @@
]
}
},
- "/test-suite/{testSuiteId}/test": {
- "get": {
- "operationId": "TestSuiteTestController_findAllPaginated",
- "summary": "List Tests",
- "parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
+ "/knowledge-base": {
+ "post": {
+ "operationId": "KnowledgeBaseController_create",
+ "summary": "Create Knowledge Base",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateTrieveKnowledgeBaseDTO",
+ "title": "TrieveKnowledgeBaseDTO"
+ },
+ {
+ "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
+ "title": "CustomKnowledgeBaseDTO"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "provider",
+ "mapping": {
+ "trieve": "#/components/schemas/CreateTrieveKnowledgeBaseDTO",
+ "custom-knowledge-base": "#/components/schemas/CreateCustomKnowledgeBaseDTO"
+ }
+ }
+ }
}
- },
- {
- "name": "page",
- "required": false,
- "in": "query",
- "description": "This is the page number to return. Defaults to 1.",
- "schema": {
- "minimum": 1,
- "type": "number"
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TrieveKnowledgeBase",
+ "title": "TrieveKnowledgeBase"
+ },
+ {
+ "$ref": "#/components/schemas/CustomKnowledgeBase",
+ "title": "CustomKnowledgeBase"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "provider",
+ "mapping": {
+ "trieve": "#/components/schemas/TrieveKnowledgeBase",
+ "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ }
+ }
+ }
+ }
}
- },
+ }
+ },
+ "tags": [
+ "Knowledge Base"
+ ],
+ "security": [
{
- "name": "sortOrder",
- "required": false,
- "in": "query",
- "description": "This is the sort order for pagination. Defaults to 'DESC'.",
- "schema": {
- "enum": [
- "ASC",
- "DESC"
- ],
- "type": "string"
- }
- },
+ "bearer": []
+ }
+ ]
+ },
+ "get": {
+ "operationId": "KnowledgeBaseController_findAll",
+ "summary": "List Knowledge Bases",
+ "parameters": [
{
"name": "limit",
"required": false,
@@ -3418,81 +3143,24 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuiteTestsPaginatedResponse"
- }
- }
- }
- }
- },
- "tags": [
- "Test Suite Tests"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "post": {
- "operationId": "TestSuiteTestController_create",
- "summary": "Create Test",
- "parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateTestSuiteTestVoiceDto",
- "title": "TestSuiteTestVoice"
- },
- {
- "$ref": "#/components/schemas/CreateTestSuiteTestChatDto",
- "title": "TestSuiteTestChat"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "voice": "#/components/schemas/CreateTestSuiteTestVoiceDto",
- "chat": "#/components/schemas/CreateTestSuiteTestChatDto"
- }
- }
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/TestSuiteTestVoice",
- "title": "Voice"
- },
- {
- "$ref": "#/components/schemas/TestSuiteTestChat",
- "title": "Chat"
- }
- ],
- "discriminator": {
- "propertyName": "type",
- "mapping": {
- "voice": "#/components/schemas/TestSuiteTestVoice",
- "chat": "#/components/schemas/TestSuiteTestChat"
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TrieveKnowledgeBase",
+ "title": "TrieveKnowledgeBase"
+ },
+ {
+ "$ref": "#/components/schemas/CustomKnowledgeBase",
+ "title": "CustomKnowledgeBase"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "provider",
+ "mapping": {
+ "trieve": "#/components/schemas/TrieveKnowledgeBase",
+ "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
+ }
}
}
}
@@ -3501,7 +3169,7 @@
}
},
"tags": [
- "Test Suite Tests"
+ "Knowledge Base"
],
"security": [
{
@@ -3510,19 +3178,11 @@
]
}
},
- "/test-suite/{testSuiteId}/test/{id}": {
+ "/knowledge-base/{id}": {
"get": {
- "operationId": "TestSuiteTestController_findOne",
- "summary": "Get Test",
+ "operationId": "KnowledgeBaseController_findOne",
+ "summary": "Get Knowledge Base",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -3540,19 +3200,19 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/TestSuiteTestVoice",
- "title": "Voice"
+ "$ref": "#/components/schemas/TrieveKnowledgeBase",
+ "title": "TrieveKnowledgeBase"
},
{
- "$ref": "#/components/schemas/TestSuiteTestChat",
- "title": "Chat"
+ "$ref": "#/components/schemas/CustomKnowledgeBase",
+ "title": "CustomKnowledgeBase"
}
],
"discriminator": {
- "propertyName": "type",
+ "propertyName": "provider",
"mapping": {
- "voice": "#/components/schemas/TestSuiteTestVoice",
- "chat": "#/components/schemas/TestSuiteTestChat"
+ "trieve": "#/components/schemas/TrieveKnowledgeBase",
+ "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
}
}
}
@@ -3561,7 +3221,7 @@
}
},
"tags": [
- "Test Suite Tests"
+ "Knowledge Base"
],
"security": [
{
@@ -3570,17 +3230,9 @@
]
},
"patch": {
- "operationId": "TestSuiteTestController_update",
- "summary": "Update Test",
+ "operationId": "KnowledgeBaseController_update",
+ "summary": "Update Knowledge Base",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -3597,19 +3249,19 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/UpdateTestSuiteTestVoiceDto",
- "title": "TestSuiteTestVoice"
+ "$ref": "#/components/schemas/UpdateTrieveKnowledgeBaseDTO",
+ "title": "UpdateTrieveKnowledgeBaseDTO"
},
{
- "$ref": "#/components/schemas/UpdateTestSuiteTestChatDto",
- "title": "TestSuiteTestChat"
+ "$ref": "#/components/schemas/UpdateCustomKnowledgeBaseDTO",
+ "title": "UpdateCustomKnowledgeBaseDTO"
}
],
"discriminator": {
- "propertyName": "type",
+ "propertyName": "provider",
"mapping": {
- "voice": "#/components/schemas/UpdateTestSuiteTestVoiceDto",
- "chat": "#/components/schemas/UpdateTestSuiteTestChatDto"
+ "trieve": "#/components/schemas/UpdateTrieveKnowledgeBaseDTO",
+ "custom-knowledge-base": "#/components/schemas/UpdateCustomKnowledgeBaseDTO"
}
}
}
@@ -3624,19 +3276,19 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/TestSuiteTestVoice",
- "title": "Voice"
+ "$ref": "#/components/schemas/TrieveKnowledgeBase",
+ "title": "TrieveKnowledgeBase"
},
{
- "$ref": "#/components/schemas/TestSuiteTestChat",
- "title": "Chat"
+ "$ref": "#/components/schemas/CustomKnowledgeBase",
+ "title": "CustomKnowledgeBase"
}
],
"discriminator": {
- "propertyName": "type",
+ "propertyName": "provider",
"mapping": {
- "voice": "#/components/schemas/TestSuiteTestVoice",
- "chat": "#/components/schemas/TestSuiteTestChat"
+ "trieve": "#/components/schemas/TrieveKnowledgeBase",
+ "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
}
}
}
@@ -3645,7 +3297,7 @@
}
},
"tags": [
- "Test Suite Tests"
+ "Knowledge Base"
],
"security": [
{
@@ -3654,17 +3306,9 @@
]
},
"delete": {
- "operationId": "TestSuiteTestController_remove",
- "summary": "Delete Test",
+ "operationId": "KnowledgeBaseController_remove",
+ "summary": "Delete Knowledge Base",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -3682,19 +3326,19 @@
"schema": {
"oneOf": [
{
- "$ref": "#/components/schemas/TestSuiteTestVoice",
- "title": "Voice"
+ "$ref": "#/components/schemas/TrieveKnowledgeBase",
+ "title": "TrieveKnowledgeBase"
},
{
- "$ref": "#/components/schemas/TestSuiteTestChat",
- "title": "Chat"
+ "$ref": "#/components/schemas/CustomKnowledgeBase",
+ "title": "CustomKnowledgeBase"
}
],
"discriminator": {
- "propertyName": "type",
+ "propertyName": "provider",
"mapping": {
- "voice": "#/components/schemas/TestSuiteTestVoice",
- "chat": "#/components/schemas/TestSuiteTestChat"
+ "trieve": "#/components/schemas/TrieveKnowledgeBase",
+ "custom-knowledge-base": "#/components/schemas/CustomKnowledgeBase"
}
}
}
@@ -3703,7 +3347,7 @@
}
},
"tags": [
- "Test Suite Tests"
+ "Knowledge Base"
],
"security": [
{
@@ -3712,42 +3356,225 @@
]
}
},
- "/test-suite/{testSuiteId}/run": {
+ "/workflow": {
"get": {
- "operationId": "TestSuiteRunController_findAllPaginated",
- "summary": "List Test Suite Runs",
+ "operationId": "WorkflowController_findAll",
+ "summary": "Get Workflows",
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Workflow"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "post": {
+ "operationId": "WorkflowController_create",
+ "summary": "Create Workflow",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Workflow"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/workflow/{id}": {
+ "get": {
+ "operationId": "WorkflowController_findOne",
+ "summary": "Get Workflow",
"parameters": [
{
- "name": "testSuiteId",
+ "name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
- },
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Workflow"
+ ],
+ "security": [
{
- "name": "page",
- "required": false,
- "in": "query",
- "description": "This is the page number to return. Defaults to 1.",
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "WorkflowController_delete",
+ "summary": "Delete Workflow",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
"schema": {
- "minimum": 1,
- "type": "number"
+ "type": "string"
}
- },
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Workflow"
+ ],
+ "security": [
{
- "name": "sortOrder",
- "required": false,
- "in": "query",
- "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "bearer": []
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "WorkflowController_update",
+ "summary": "Update Workflow",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
"schema": {
- "enum": [
- "ASC",
- "DESC"
- ],
"type": "string"
}
- },
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateWorkflowDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Workflow"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/squad": {
+ "post": {
+ "operationId": "SquadController_create",
+ "summary": "Create Squad",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateSquadDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Squad"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Squads"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "get": {
+ "operationId": "SquadController_findAll",
+ "summary": "List Squads",
+ "parameters": [
{
"name": "limit",
"required": false,
@@ -3846,58 +3673,17 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuiteRunsPaginatedResponse"
- }
- }
- }
- }
- },
- "tags": [
- "Test Suite Runs"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- },
- "post": {
- "operationId": "TestSuiteRunController_create",
- "summary": "Create Test Suite Run",
- "parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CreateTestSuiteRunDto"
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TestSuiteRun"
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Squad"
+ }
}
}
}
}
},
"tags": [
- "Test Suite Runs"
+ "Squads"
],
"security": [
{
@@ -3906,19 +3692,11 @@
]
}
},
- "/test-suite/{testSuiteId}/run/{id}": {
+ "/squad/{id}": {
"get": {
- "operationId": "TestSuiteRunController_findOne",
- "summary": "Get Test Suite Run",
+ "operationId": "SquadController_findOne",
+ "summary": "Get Squad",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -3934,14 +3712,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuiteRun"
+ "$ref": "#/components/schemas/Squad"
}
}
}
}
},
"tags": [
- "Test Suite Runs"
+ "Squads"
],
"security": [
{
@@ -3950,17 +3728,9 @@
]
},
"patch": {
- "operationId": "TestSuiteRunController_update",
- "summary": "Update Test Suite Run",
+ "operationId": "SquadController_update",
+ "summary": "Update Squad",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -3975,7 +3745,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/UpdateTestSuiteRunDto"
+ "$ref": "#/components/schemas/UpdateSquadDTO"
}
}
}
@@ -3986,14 +3756,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuiteRun"
+ "$ref": "#/components/schemas/Squad"
}
}
}
}
},
"tags": [
- "Test Suite Runs"
+ "Squads"
],
"security": [
{
@@ -4002,17 +3772,9 @@
]
},
"delete": {
- "operationId": "TestSuiteRunController_remove",
- "summary": "Delete Test Suite Run",
+ "operationId": "SquadController_remove",
+ "summary": "Delete Squad",
"parameters": [
- {
- "name": "testSuiteId",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- },
{
"name": "id",
"required": true,
@@ -4028,57 +3790,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TestSuiteRun"
- }
- }
- }
- }
- },
- "tags": [
- "Test Suite Runs"
- ],
- "security": [
- {
- "bearer": []
- }
- ]
- }
- },
- "/analytics": {
- "post": {
- "operationId": "AnalyticsController_query",
- "summary": "Create Analytics Queries",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AnalyticsQueryDTO"
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AnalyticsQueryResult"
- }
+ "$ref": "#/components/schemas/Squad"
}
}
}
- },
- "201": {
- "description": ""
}
},
"tags": [
- "Analytics"
+ "Squads"
],
"security": [
{
@@ -4087,81 +3806,11 @@
]
}
},
- "/logs": {
+ "/test-suite": {
"get": {
- "operationId": "LoggingController_logsQuery",
- "summary": "Get Logs",
- "deprecated": true,
+ "operationId": "TestSuiteController_findAllPaginated",
+ "summary": "List Test Suites",
"parameters": [
- {
- "name": "type",
- "required": false,
- "in": "query",
- "description": "This is the type of the log.",
- "schema": {
- "enum": [
- "API",
- "Webhook",
- "Call",
- "Provider"
- ],
- "type": "string"
- }
- },
- {
- "name": "webhookType",
- "required": false,
- "in": "query",
- "description": "This is the type of the webhook, given the log is from a webhook.",
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "assistantId",
- "required": false,
- "in": "query",
- "description": "This is the ID of the assistant.",
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "phoneNumberId",
- "required": false,
- "in": "query",
- "description": "This is the ID of the phone number.",
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "customerId",
- "required": false,
- "in": "query",
- "description": "This is the ID of the customer.",
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "squadId",
- "required": false,
- "in": "query",
- "description": "This is the ID of the squad.",
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "callId",
- "required": false,
- "in": "query",
- "description": "This is the ID of the call.",
- "schema": {
- "type": "string"
- }
- },
{
"name": "page",
"required": false,
@@ -4283,14 +3932,14 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LogsPaginatedResponse"
+ "$ref": "#/components/schemas/TestSuitesPaginatedResponse"
}
}
}
}
},
"tags": [
- "Logs"
+ "Test Suites"
],
"security": [
{
@@ -4298,227 +3947,1391 @@
}
]
},
- "delete": {
- "operationId": "LoggingController_logsDeleteQuery",
- "summary": "Delete Logs",
- "deprecated": true,
- "parameters": [
- {
- "name": "type",
- "required": false,
- "in": "query",
- "description": "This is the type of the log.",
- "schema": {
- "enum": [
- "API",
- "Webhook",
- "Call",
- "Provider"
- ],
- "type": "string"
+ "post": {
+ "operationId": "TestSuiteController_create",
+ "summary": "Create Test Suite",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateTestSuiteDto"
+ }
}
- },
- {
- "name": "assistantId",
- "required": false,
- "in": "query",
- "schema": {
- "type": "string"
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuite"
+ }
+ }
}
- },
+ }
+ },
+ "tags": [
+ "Test Suites"
+ ],
+ "security": [
{
- "name": "phoneNumberId",
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/test-suite/{id}": {
+ "get": {
+ "operationId": "TestSuiteController_findOne",
+ "summary": "Get Test Suite",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuite"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suites"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "TestSuiteController_update",
+ "summary": "Update Test Suite",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateTestSuiteDto"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuite"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suites"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "TestSuiteController_remove",
+ "summary": "Delete Test Suite",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuite"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suites"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/test-suite/{testSuiteId}/test": {
+ "get": {
+ "operationId": "TestSuiteTestController_findAllPaginated",
+ "summary": "List Tests",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
"required": false,
"in": "query",
- "description": "This is the ID of the phone number.",
+ "description": "This is the page number to return. Defaults to 1.",
+ "schema": {
+ "minimum": 1,
+ "type": "number"
+ }
+ },
+ {
+ "name": "sortOrder",
+ "required": false,
+ "in": "query",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
"schema": {
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
"type": "string"
}
},
{
- "name": "customerId",
+ "name": "limit",
"required": false,
"in": "query",
- "description": "This is the ID of the customer.",
+ "description": "This is the maximum number of items to return. Defaults to 100.",
+ "schema": {
+ "minimum": 0,
+ "maximum": 1000,
+ "type": "number"
+ }
+ },
+ {
+ "name": "createdAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is greater than the specified value.",
"schema": {
+ "format": "date-time",
"type": "string"
}
},
{
- "name": "squadId",
+ "name": "createdAtLt",
"required": false,
"in": "query",
- "description": "This is the ID of the squad.",
+ "description": "This will return items where the createdAt is less than the specified value.",
"schema": {
+ "format": "date-time",
"type": "string"
}
},
{
- "name": "callId",
+ "name": "createdAtGe",
"required": false,
"in": "query",
- "description": "This is the ID of the call.",
+ "description": "This will return items where the createdAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is less than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than or equal to the specified value.",
"schema": {
+ "format": "date-time",
"type": "string"
}
}
],
"responses": {
"200": {
- "description": ""
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteTestsPaginatedResponse"
+ }
+ }
+ }
}
},
"tags": [
- "Logs"
+ "Test Suite Tests"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "post": {
+ "operationId": "TestSuiteTestController_create",
+ "summary": "Create Test",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateTestSuiteTestVoiceDto",
+ "title": "TestSuiteTestVoice"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTestSuiteTestChatDto",
+ "title": "TestSuiteTestChat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/CreateTestSuiteTestVoiceDto",
+ "chat": "#/components/schemas/CreateTestSuiteTestChatDto"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TestSuiteTestVoice",
+ "title": "Voice"
+ },
+ {
+ "$ref": "#/components/schemas/TestSuiteTestChat",
+ "title": "Chat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/TestSuiteTestVoice",
+ "chat": "#/components/schemas/TestSuiteTestChat"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Tests"
],
"security": [
{
"bearer": []
}
]
- }
- }
- },
- "info": {
- "title": "Vapi API",
- "description": "Voice AI for developers.",
- "version": "1.0",
- "contact": {}
- },
- "tags": [],
- "servers": [
- {
- "url": "https://api.vapi.ai"
- }
- ],
- "components": {
- "securitySchemes": {
- "bearer": {
- "scheme": "bearer",
- "bearerFormat": "Bearer",
- "type": "http",
- "description": "Retrieve your API Key from [Dashboard](dashboard.vapi.ai)."
}
},
- "schemas": {
- "AnalysisCostBreakdown": {
- "type": "object",
- "properties": {
- "summary": {
- "type": "number",
- "description": "This is the cost to summarize the call."
- },
- "summaryPromptTokens": {
- "type": "number",
- "description": "This is the number of prompt tokens used to summarize the call."
- },
- "summaryCompletionTokens": {
- "type": "number",
- "description": "This is the number of completion tokens used to summarize the call."
- },
- "structuredData": {
- "type": "number",
- "description": "This is the cost to extract structured data from the call."
- },
- "structuredDataPromptTokens": {
- "type": "number",
- "description": "This is the number of prompt tokens used to extract structured data from the call."
- },
- "structuredDataCompletionTokens": {
- "type": "number",
- "description": "This is the number of completion tokens used to extract structured data from the call."
- },
- "successEvaluation": {
- "type": "number",
- "description": "This is the cost to evaluate if the call was successful."
- },
- "successEvaluationPromptTokens": {
- "type": "number",
- "description": "This is the number of prompt tokens used to evaluate if the call was successful."
+ "/test-suite/{testSuiteId}/test/{id}": {
+ "get": {
+ "operationId": "TestSuiteTestController_findOne",
+ "summary": "Get Test",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
},
- "successEvaluationCompletionTokens": {
- "type": "number",
- "description": "This is the number of completion tokens used to evaluate if the call was successful."
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
}
- }
- },
- "CostBreakdown": {
- "type": "object",
- "properties": {
- "transport": {
- "type": "number",
- "description": "This is the cost of the transport provider, like Twilio or Vonage."
- },
- "stt": {
- "type": "number",
- "description": "This is the cost of the speech-to-text service."
- },
- "llm": {
- "type": "number",
- "description": "This is the cost of the language model."
- },
- "tts": {
- "type": "number",
- "description": "This is the cost of the text-to-speech service."
- },
- "vapi": {
- "type": "number",
- "description": "This is the cost of Vapi."
- },
- "total": {
- "type": "number",
- "description": "This is the total cost of the call."
- },
- "llmPromptTokens": {
- "type": "number",
- "description": "This is the LLM prompt tokens used for the call."
- },
- "llmCompletionTokens": {
- "type": "number",
- "description": "This is the LLM completion tokens used for the call."
- },
- "ttsCharacters": {
- "type": "number",
- "description": "This is the TTS characters used for the call."
- },
- "analysisCostBreakdown": {
- "description": "This is the cost of the analysis.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AnalysisCostBreakdown"
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TestSuiteTestVoice",
+ "title": "Voice"
+ },
+ {
+ "$ref": "#/components/schemas/TestSuiteTestChat",
+ "title": "Chat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/TestSuiteTestVoice",
+ "chat": "#/components/schemas/TestSuiteTestChat"
+ }
+ }
+ }
}
- ]
+ }
}
- }
- },
- "TranscriptPlan": {
- "type": "object",
- "properties": {
- "enabled": {
- "type": "boolean",
- "description": "This determines whether the transcript is stored in `call.artifact.transcript`. Defaults to true.\n\n@default true",
- "example": true
- },
- "assistantName": {
- "type": "string",
- "description": "This is the name of the assistant in the transcript. Defaults to 'AI'.\n\nUsage:\n- If you want to change the name of the assistant in the transcript, set this. Example, here is what the transcript would look like with `assistantName` set to 'Buyer':\n```\nUser: Hello, how are you?\nBuyer: I'm fine.\nUser: Do you want to buy a car?\nBuyer: No.\n```\n\n@default 'AI'"
- },
- "userName": {
- "type": "string",
- "description": "This is the name of the user in the transcript. Defaults to 'User'.\n\nUsage:\n- If you want to change the name of the user in the transcript, set this. Example, here is what the transcript would look like with `userName` set to 'Seller':\n```\nSeller: Hello, how are you?\nAI: I'm fine.\nSeller: Do you want to buy a car?\nAI: No.\n```\n\n@default 'User'"
+ },
+ "tags": [
+ "Test Suite Tests"
+ ],
+ "security": [
+ {
+ "bearer": []
}
- }
+ ]
},
- "ArtifactPlan": {
- "type": "object",
- "properties": {
- "recordingEnabled": {
- "type": "boolean",
- "description": "This determines whether assistant's calls are recorded. Defaults to true.\n\nUsage:\n- If you don't want to record the calls, set this to false.\n- If you want to record the calls when `assistant.hipaaEnabled` (deprecated) or `assistant.compliancePlan.hipaaEnabled` explicity set this to true and make sure to provide S3 or GCP credentials on the Provider Credentials page in the Dashboard.\n\nYou can find the recording at `call.artifact.recordingUrl` and `call.artifact.stereoRecordingUrl` after the call is ended.\n\n@default true",
- "example": true
+ "patch": {
+ "operationId": "TestSuiteTestController_update",
+ "summary": "Update Test",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
},
- "recordingFormat": {
- "type": "string",
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UpdateTestSuiteTestVoiceDto",
+ "title": "TestSuiteTestVoice"
+ },
+ {
+ "$ref": "#/components/schemas/UpdateTestSuiteTestChatDto",
+ "title": "TestSuiteTestChat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/UpdateTestSuiteTestVoiceDto",
+ "chat": "#/components/schemas/UpdateTestSuiteTestChatDto"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TestSuiteTestVoice",
+ "title": "Voice"
+ },
+ {
+ "$ref": "#/components/schemas/TestSuiteTestChat",
+ "title": "Chat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/TestSuiteTestVoice",
+ "chat": "#/components/schemas/TestSuiteTestChat"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Tests"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "TestSuiteTestController_remove",
+ "summary": "Delete Test",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TestSuiteTestVoice",
+ "title": "Voice"
+ },
+ {
+ "$ref": "#/components/schemas/TestSuiteTestChat",
+ "title": "Chat"
+ }
+ ],
+ "discriminator": {
+ "propertyName": "type",
+ "mapping": {
+ "voice": "#/components/schemas/TestSuiteTestVoice",
+ "chat": "#/components/schemas/TestSuiteTestChat"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Tests"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/test-suite/{testSuiteId}/run": {
+ "get": {
+ "operationId": "TestSuiteRunController_findAllPaginated",
+ "summary": "List Test Suite Runs",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "required": false,
+ "in": "query",
+ "description": "This is the page number to return. Defaults to 1.",
+ "schema": {
+ "minimum": 1,
+ "type": "number"
+ }
+ },
+ {
+ "name": "sortOrder",
+ "required": false,
+ "in": "query",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "schema": {
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "required": false,
+ "in": "query",
+ "description": "This is the maximum number of items to return. Defaults to 100.",
+ "schema": {
+ "minimum": 0,
+ "maximum": 1000,
+ "type": "number"
+ }
+ },
+ {
+ "name": "createdAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is greater than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtLt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is less than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtGe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is less than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteRunsPaginatedResponse"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Runs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "post": {
+ "operationId": "TestSuiteRunController_create",
+ "summary": "Create Test Suite Run",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateTestSuiteRunDto"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteRun"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Runs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/test-suite/{testSuiteId}/run/{id}": {
+ "get": {
+ "operationId": "TestSuiteRunController_findOne",
+ "summary": "Get Test Suite Run",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteRun"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Runs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "TestSuiteRunController_update",
+ "summary": "Update Test Suite Run",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateTestSuiteRunDto"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteRun"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Runs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "TestSuiteRunController_remove",
+ "summary": "Delete Test Suite Run",
+ "parameters": [
+ {
+ "name": "testSuiteId",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TestSuiteRun"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Test Suite Runs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/analytics": {
+ "post": {
+ "operationId": "AnalyticsController_query",
+ "summary": "Create Analytics Queries",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AnalyticsQueryDTO"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AnalyticsQueryResult"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "description": ""
+ }
+ },
+ "tags": [
+ "Analytics"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ },
+ "/logs": {
+ "get": {
+ "operationId": "LoggingController_logsQuery",
+ "summary": "Get Logs",
+ "deprecated": true,
+ "parameters": [
+ {
+ "name": "type",
+ "required": false,
+ "in": "query",
+ "description": "This is the type of the log.",
+ "schema": {
+ "enum": [
+ "API",
+ "Webhook",
+ "Call",
+ "Provider"
+ ],
+ "type": "string"
+ }
+ },
+ {
+ "name": "webhookType",
+ "required": false,
+ "in": "query",
+ "description": "This is the type of the webhook, given the log is from a webhook.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "assistantId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the assistant.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "phoneNumberId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the phone number.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "customerId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the customer.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "squadId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the squad.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "callId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the call.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "required": false,
+ "in": "query",
+ "description": "This is the page number to return. Defaults to 1.",
+ "schema": {
+ "minimum": 1,
+ "type": "number"
+ }
+ },
+ {
+ "name": "sortOrder",
+ "required": false,
+ "in": "query",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "schema": {
+ "enum": [
+ "ASC",
+ "DESC"
+ ],
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "required": false,
+ "in": "query",
+ "description": "This is the maximum number of items to return. Defaults to 100.",
+ "schema": {
+ "minimum": 0,
+ "maximum": 1000,
+ "type": "number"
+ }
+ },
+ {
+ "name": "createdAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is greater than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtLt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is less than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtGe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "createdAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the createdAt is less than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLt",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtGe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is greater than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "name": "updatedAtLe",
+ "required": false,
+ "in": "query",
+ "description": "This will return items where the updatedAt is less than or equal to the specified value.",
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LogsPaginatedResponse"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Logs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "LoggingController_logsDeleteQuery",
+ "summary": "Delete Logs",
+ "deprecated": true,
+ "parameters": [
+ {
+ "name": "type",
+ "required": false,
+ "in": "query",
+ "description": "This is the type of the log.",
+ "schema": {
+ "enum": [
+ "API",
+ "Webhook",
+ "Call",
+ "Provider"
+ ],
+ "type": "string"
+ }
+ },
+ {
+ "name": "assistantId",
+ "required": false,
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "phoneNumberId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the phone number.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "customerId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the customer.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "squadId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the squad.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "callId",
+ "required": false,
+ "in": "query",
+ "description": "This is the ID of the call.",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": ""
+ }
+ },
+ "tags": [
+ "Logs"
+ ],
+ "security": [
+ {
+ "bearer": []
+ }
+ ]
+ }
+ }
+ },
+ "info": {
+ "title": "Vapi API",
+ "description": "Voice AI for developers.",
+ "version": "1.0",
+ "contact": {}
+ },
+ "tags": [],
+ "servers": [
+ {
+ "url": "https://api.vapi.ai"
+ }
+ ],
+ "components": {
+ "securitySchemes": {
+ "bearer": {
+ "scheme": "bearer",
+ "bearerFormat": "Bearer",
+ "type": "http",
+ "description": "Retrieve your API Key from [Dashboard](dashboard.vapi.ai)."
+ }
+ },
+ "schemas": {
+ "AnalysisCostBreakdown": {
+ "type": "object",
+ "properties": {
+ "summary": {
+ "type": "number",
+ "description": "This is the cost to summarize the call."
+ },
+ "summaryPromptTokens": {
+ "type": "number",
+ "description": "This is the number of prompt tokens used to summarize the call."
+ },
+ "summaryCompletionTokens": {
+ "type": "number",
+ "description": "This is the number of completion tokens used to summarize the call."
+ },
+ "structuredData": {
+ "type": "number",
+ "description": "This is the cost to extract structured data from the call."
+ },
+ "structuredDataPromptTokens": {
+ "type": "number",
+ "description": "This is the number of prompt tokens used to extract structured data from the call."
+ },
+ "structuredDataCompletionTokens": {
+ "type": "number",
+ "description": "This is the number of completion tokens used to extract structured data from the call."
+ },
+ "successEvaluation": {
+ "type": "number",
+ "description": "This is the cost to evaluate if the call was successful."
+ },
+ "successEvaluationPromptTokens": {
+ "type": "number",
+ "description": "This is the number of prompt tokens used to evaluate if the call was successful."
+ },
+ "successEvaluationCompletionTokens": {
+ "type": "number",
+ "description": "This is the number of completion tokens used to evaluate if the call was successful."
+ }
+ }
+ },
+ "CostBreakdown": {
+ "type": "object",
+ "properties": {
+ "transport": {
+ "type": "number",
+ "description": "This is the cost of the transport provider, like Twilio or Vonage."
+ },
+ "stt": {
+ "type": "number",
+ "description": "This is the cost of the speech-to-text service."
+ },
+ "llm": {
+ "type": "number",
+ "description": "This is the cost of the language model."
+ },
+ "tts": {
+ "type": "number",
+ "description": "This is the cost of the text-to-speech service."
+ },
+ "vapi": {
+ "type": "number",
+ "description": "This is the cost of Vapi."
+ },
+ "total": {
+ "type": "number",
+ "description": "This is the total cost of the call."
+ },
+ "llmPromptTokens": {
+ "type": "number",
+ "description": "This is the LLM prompt tokens used for the call."
+ },
+ "llmCompletionTokens": {
+ "type": "number",
+ "description": "This is the LLM completion tokens used for the call."
+ },
+ "ttsCharacters": {
+ "type": "number",
+ "description": "This is the TTS characters used for the call."
+ },
+ "analysisCostBreakdown": {
+ "description": "This is the cost of the analysis.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/AnalysisCostBreakdown"
+ }
+ ]
+ }
+ }
+ },
+ "TranscriptPlan": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "This determines whether the transcript is stored in `call.artifact.transcript`. Defaults to true.\n\n@default true",
+ "example": true
+ },
+ "assistantName": {
+ "type": "string",
+ "description": "This is the name of the assistant in the transcript. Defaults to 'AI'.\n\nUsage:\n- If you want to change the name of the assistant in the transcript, set this. Example, here is what the transcript would look like with `assistantName` set to 'Buyer':\n```\nUser: Hello, how are you?\nBuyer: I'm fine.\nUser: Do you want to buy a car?\nBuyer: No.\n```\n\n@default 'AI'"
+ },
+ "userName": {
+ "type": "string",
+ "description": "This is the name of the user in the transcript. Defaults to 'User'.\n\nUsage:\n- If you want to change the name of the user in the transcript, set this. Example, here is what the transcript would look like with `userName` set to 'Seller':\n```\nSeller: Hello, how are you?\nAI: I'm fine.\nSeller: Do you want to buy a car?\nAI: No.\n```\n\n@default 'User'"
+ }
+ }
+ },
+ "ArtifactPlan": {
+ "type": "object",
+ "properties": {
+ "recordingEnabled": {
+ "type": "boolean",
+ "description": "This determines whether assistant's calls are recorded. Defaults to true.\n\nUsage:\n- If you don't want to record the calls, set this to false.\n- If you want to record the calls when `assistant.hipaaEnabled` (deprecated) or `assistant.compliancePlan.hipaaEnabled` explicity set this to true and make sure to provide S3 or GCP credentials on the Provider Credentials page in the Dashboard.\n\nYou can find the recording at `call.artifact.recordingUrl` and `call.artifact.stereoRecordingUrl` after the call is ended.\n\n@default true",
+ "example": true
+ },
+ "recordingFormat": {
+ "type": "string",
"description": "This determines the format of the recording. Defaults to `wav;l16`.\n\n@default 'wav;l16'",
"enum": [
"wav;l16",
@@ -4615,6 +5428,68 @@
"role"
]
},
+ "Mono": {
+ "type": "object",
+ "properties": {
+ "combinedUrl": {
+ "type": "string",
+ "description": "This is the combined recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ },
+ "assistantUrl": {
+ "type": "string",
+ "description": "This is the mono recording url for the assistant. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ },
+ "customerUrl": {
+ "type": "string",
+ "description": "This is the mono recording url for the customer. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ }
+ }
+ },
+ "Recording": {
+ "type": "object",
+ "properties": {
+ "stereoUrl": {
+ "type": "string",
+ "description": "This is the stereo recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ },
+ "videoUrl": {
+ "type": "string",
+ "description": "This is the video recording url for the call. To enable, set `assistant.artifactPlan.videoRecordingEnabled`."
+ },
+ "videoRecordingStartDelaySeconds": {
+ "type": "number",
+ "description": "This is video recording start delay in ms. To enable, set `assistant.artifactPlan.videoRecordingEnabled`. This can be used to align the playback of the recording with artifact.messages timestamps."
+ },
+ "mono": {
+ "description": "This is the mono recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Mono"
+ }
+ ]
+ }
+ }
+ },
+ "NodeArtifact": {
+ "type": "object",
+ "properties": {
+ "nodeName": {
+ "type": "string",
+ "description": "This is the node id."
+ },
+ "messages": {
+ "description": "This is the messages that were spoken during the node.",
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "variables": {
+ "type": "object",
+ "description": "This is the object containing the variables extracted from the node."
+ }
+ }
+ },
"Artifact": {
"type": "object",
"properties": {
@@ -4655,19 +5530,31 @@
},
"recordingUrl": {
"type": "string",
- "description": "This is the recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ "description": "This is the recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`.",
+ "deprecated": true
},
"stereoRecordingUrl": {
"type": "string",
- "description": "This is the stereo recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`."
+ "description": "This is the stereo recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`.",
+ "deprecated": true
},
"videoRecordingUrl": {
"type": "string",
- "description": "This is video recording url for the call. To enable, set `assistant.artifactPlan.videoRecordingEnabled`."
+ "description": "This is video recording url for the call. To enable, set `assistant.artifactPlan.videoRecordingEnabled`.",
+ "deprecated": true
},
"videoRecordingStartDelaySeconds": {
"type": "number",
- "description": "This is video recording start delay in ms. To enable, set `assistant.artifactPlan.videoRecordingEnabled`. This can be used to align the playback of the recording with artifact.messages timestamps."
+ "description": "This is video recording start delay in ms. To enable, set `assistant.artifactPlan.videoRecordingEnabled`. This can be used to align the playback of the recording with artifact.messages timestamps.",
+ "deprecated": true
+ },
+ "recording": {
+ "description": "This is the recording url for the call. To enable, set `assistant.artifactPlan.recordingEnabled`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Recording"
+ }
+ ]
},
"transcript": {
"type": "string",
@@ -4676,6 +5563,17 @@
"pcapUrl": {
"type": "string",
"description": "This is the packet capture url for the call. This is only available for `phone` type calls where phone number's provider is `vapi` or `byo-phone-number`."
+ },
+ "nodes": {
+ "description": "This is the history of workflow nodes that were executed during the call.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NodeArtifact"
+ }
+ },
+ "variables": {
+ "type": "object",
+ "description": "This is the state of variables at the end of the workflow execution."
}
}
},
@@ -4758,6 +5656,11 @@
"maximum": 1,
"example": 0.4
},
+ "enableUniversalStreamingApi": {
+ "type": "boolean",
+ "description": "Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming\n\n@default false",
+ "example": false
+ },
"realtimeUrl": {
"type": "string",
"description": "The WebSocket URL that the transcriber connects to."
@@ -4966,13 +5869,6 @@
"BackoffPlan": {
"type": "object",
"properties": {
- "maxRetries": {
- "type": "number",
- "description": "This is the maximum number of retries to attempt if the request fails. Defaults to 0 (no retries).\n\n@default 0",
- "minimum": 0,
- "maximum": 10,
- "example": 0
- },
"type": {
"type": "object",
"description": "This is the type of backoff plan to use. Defaults to fixed.\n\n@default fixed",
@@ -4982,6 +5878,13 @@
],
"example": "fixed"
},
+ "maxRetries": {
+ "type": "number",
+ "description": "This is the maximum number of retries to attempt if the request fails. Defaults to 0 (no retries).\n\n@default 0",
+ "minimum": 0,
+ "maximum": 10,
+ "example": 0
+ },
"baseDelaySeconds": {
"type": "number",
"description": "This is the base delay in seconds. For linear backoff, this is the delay between each retry. For exponential backoff, this is the initial delay.",
@@ -4991,8 +5894,8 @@
}
},
"required": [
- "maxRetries",
"type",
+ "maxRetries",
"baseDelaySeconds"
]
},
@@ -5001,35 +5904,28 @@
"properties": {
"timeoutSeconds": {
"type": "number",
- "description": "This is the timeout in seconds for the request to your server. Defaults to 20 seconds.\n\n@default 20",
+ "description": "This is the timeout in seconds for the request. Defaults to 20 seconds.\n\n@default 20",
"minimum": 1,
- "maximum": 120,
+ "maximum": 300,
"example": 20
},
"url": {
"type": "string",
- "description": "API endpoint to send requests to."
- },
- "secret": {
- "type": "string",
- "description": "This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.\n\nSame precedence logic as server."
+ "description": "This is where the request will be sent."
},
"headers": {
"type": "object",
- "description": "These are the custom headers to include in the request sent to your server.\n\nEach key-value pair represents a header name and its value."
+ "description": "These are the headers to include in the request.\n\nEach key-value pair represents a header name and its value."
},
"backoffPlan": {
- "description": "This is the backoff plan to use if the request fails.",
+ "description": "This is the backoff plan if the request fails. Defaults to undefined (the request will not be retried).\n\n@default undefined (the request will not be retried)",
"allOf": [
{
"$ref": "#/components/schemas/BackoffPlan"
}
]
}
- },
- "required": [
- "url"
- ]
+ }
},
"CustomTranscriber": {
"type": "object",
@@ -5109,7 +6005,8 @@
"base-finance",
"base-conversationalai",
"base-voicemail",
- "base-video"
+ "base-video",
+ "whisper"
]
},
{
@@ -5121,7 +6018,11 @@
"type": "string",
"description": "This is the language that will be set for the transcription. The list of languages Deepgram supports can be found here: https://developers.deepgram.com/docs/models-languages-overview",
"enum": [
+ "ar",
+ "az",
+ "ba",
"bg",
+ "br",
"ca",
"cs",
"da",
@@ -5139,19 +6040,28 @@
"es-419",
"es-LATAM",
"et",
+ "eu",
"fi",
"fr",
"fr-CA",
+ "ha",
+ "haw",
+ "he",
"hi",
"hi-Latn",
"hu",
"id",
+ "is",
"it",
"ja",
+ "jw",
+ "kn",
"ko",
"ko-KR",
+ "ln",
"lt",
"lv",
+ "mk",
"ms",
"multi",
"nl",
@@ -5163,6 +6073,11 @@
"ro",
"ru",
"sk",
+ "sl",
+ "sn",
+ "so",
+ "sr",
+ "su",
"sv",
"sv-SE",
"ta",
@@ -5170,8 +6085,11 @@
"th",
"th-TH",
"tr",
+ "tt",
"uk",
+ "ur",
"vi",
+ "yo",
"zh",
"zh-CN",
"zh-HK",
@@ -5478,7 +6396,8 @@
{
"enum": [
"fast",
- "accurate"
+ "accurate",
+ "solaria-1"
]
}
]
@@ -5601,6 +6520,111 @@
"yo"
]
},
+ "languages": {
+ "type": "string",
+ "description": "Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'.",
+ "enum": [
+ "af",
+ "sq",
+ "am",
+ "ar",
+ "hy",
+ "as",
+ "az",
+ "ba",
+ "eu",
+ "be",
+ "bn",
+ "bs",
+ "br",
+ "bg",
+ "ca",
+ "zh",
+ "hr",
+ "cs",
+ "da",
+ "nl",
+ "en",
+ "et",
+ "fo",
+ "fi",
+ "fr",
+ "gl",
+ "ka",
+ "de",
+ "el",
+ "gu",
+ "ht",
+ "ha",
+ "haw",
+ "he",
+ "hi",
+ "hu",
+ "is",
+ "id",
+ "it",
+ "ja",
+ "jv",
+ "kn",
+ "kk",
+ "km",
+ "ko",
+ "lo",
+ "la",
+ "lv",
+ "ln",
+ "lt",
+ "lb",
+ "mk",
+ "mg",
+ "ms",
+ "ml",
+ "mt",
+ "mi",
+ "mr",
+ "mn",
+ "my",
+ "ne",
+ "no",
+ "nn",
+ "oc",
+ "ps",
+ "fa",
+ "pl",
+ "pt",
+ "pa",
+ "ro",
+ "ru",
+ "sa",
+ "sr",
+ "sn",
+ "sd",
+ "si",
+ "sk",
+ "sl",
+ "so",
+ "es",
+ "su",
+ "sw",
+ "sv",
+ "tl",
+ "tg",
+ "ta",
+ "tt",
+ "te",
+ "th",
+ "bo",
+ "tr",
+ "tk",
+ "uk",
+ "ur",
+ "uz",
+ "vi",
+ "cy",
+ "yi",
+ "yo"
+ ]
+ },
"transcriptionHint": {
"type": "string",
"description": "Provides a custom vocabulary to the model to improve accuracy of transcribing context specific words, technical terms, names, etc. If empty, this argument is ignored.\n⚠️ Warning ⚠️: Please be aware that the transcription_hint field has a character limit of 600. If you provide a transcription_hint longer than 600 characters, it will be automatically truncated to meet this limit.",
@@ -5878,6 +6902,9 @@
"type": "string",
"description": "This is the model that will be used for the transcription.",
"enum": [
+ "gemini-2.5-pro-preview-05-06",
+ "gemini-2.5-flash-preview-05-20",
+ "gemini-2.5-flash-preview-04-17",
"gemini-2.0-flash-thinking-exp",
"gemini-2.0-pro-exp-02-05",
"gemini-2.0-flash",
@@ -6069,6 +7096,11 @@
"maximum": 1,
"example": 0.4
},
+ "enableUniversalStreamingApi": {
+ "type": "boolean",
+ "description": "Uses Assembly AI's new Universal Streaming API. See: https://www.assemblyai.com/docs/speech-to-text/universal-streaming\n\n@default false",
+ "example": false
+ },
"realtimeUrl": {
"type": "string",
"description": "The WebSocket URL that the transcriber connects to."
@@ -6328,7 +7360,8 @@
"base-finance",
"base-conversationalai",
"base-voicemail",
- "base-video"
+ "base-video",
+ "whisper"
]
},
{
@@ -6340,7 +7373,11 @@
"type": "string",
"description": "This is the language that will be set for the transcription. The list of languages Deepgram supports can be found here: https://developers.deepgram.com/docs/models-languages-overview",
"enum": [
+ "ar",
+ "az",
+ "ba",
"bg",
+ "br",
"ca",
"cs",
"da",
@@ -6358,19 +7395,28 @@
"es-419",
"es-LATAM",
"et",
+ "eu",
"fi",
"fr",
"fr-CA",
+ "ha",
+ "haw",
+ "he",
"hi",
"hi-Latn",
"hu",
"id",
+ "is",
"it",
"ja",
+ "jw",
+ "kn",
"ko",
"ko-KR",
+ "ln",
"lt",
"lv",
+ "mk",
"ms",
"multi",
"nl",
@@ -6382,6 +7428,11 @@
"ro",
"ru",
"sk",
+ "sl",
+ "sn",
+ "so",
+ "sr",
+ "su",
"sv",
"sv-SE",
"ta",
@@ -6389,8 +7440,11 @@
"th",
"th-TH",
"tr",
+ "tt",
"uk",
+ "ur",
"vi",
+ "yo",
"zh",
"zh-CN",
"zh-HK",
@@ -6681,7 +7735,8 @@
{
"enum": [
"fast",
- "accurate"
+ "accurate",
+ "solaria-1"
]
}
]
@@ -6804,6 +7859,111 @@
"yo"
]
},
+ "languages": {
+ "type": "string",
+ "description": "Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'.",
+ "enum": [
+ "af",
+ "sq",
+ "am",
+ "ar",
+ "hy",
+ "as",
+ "az",
+ "ba",
+ "eu",
+ "be",
+ "bn",
+ "bs",
+ "br",
+ "bg",
+ "ca",
+ "zh",
+ "hr",
+ "cs",
+ "da",
+ "nl",
+ "en",
+ "et",
+ "fo",
+ "fi",
+ "fr",
+ "gl",
+ "ka",
+ "de",
+ "el",
+ "gu",
+ "ht",
+ "ha",
+ "haw",
+ "he",
+ "hi",
+ "hu",
+ "is",
+ "id",
+ "it",
+ "ja",
+ "jv",
+ "kn",
+ "kk",
+ "km",
+ "ko",
+ "lo",
+ "la",
+ "lv",
+ "ln",
+ "lt",
+ "lb",
+ "mk",
+ "mg",
+ "ms",
+ "ml",
+ "mt",
+ "mi",
+ "mr",
+ "mn",
+ "my",
+ "ne",
+ "no",
+ "nn",
+ "oc",
+ "ps",
+ "fa",
+ "pl",
+ "pt",
+ "pa",
+ "ro",
+ "ru",
+ "sa",
+ "sr",
+ "sn",
+ "sd",
+ "si",
+ "sk",
+ "sl",
+ "so",
+ "es",
+ "su",
+ "sw",
+ "sv",
+ "tl",
+ "tg",
+ "ta",
+ "tt",
+ "te",
+ "th",
+ "bo",
+ "tr",
+ "tk",
+ "uk",
+ "ur",
+ "uz",
+ "vi",
+ "cy",
+ "yi",
+ "yo"
+ ]
+ },
"transcriptionHint": {
"type": "string",
"description": "Provides a custom vocabulary to the model to improve accuracy of transcribing context specific words, technical terms, names, etc. If empty, this argument is ignored.\n⚠️ Warning ⚠️: Please be aware that the transcription_hint field has a character limit of 600. If you provide a transcription_hint longer than 600 characters, it will be automatically truncated to meet this limit.",
@@ -7057,6 +8217,9 @@
"type": "string",
"description": "This is the model that will be used for the transcription.",
"enum": [
+ "gemini-2.5-pro-preview-05-06",
+ "gemini-2.5-flash-preview-05-20",
+ "gemini-2.5-flash-preview-04-17",
"gemini-2.0-flash-thinking-exp",
"gemini-2.0-pro-exp-02-05",
"gemini-2.0-flash",
@@ -7464,7 +8627,7 @@
"maxLength": 1000
},
"value": {
- "type": "object",
+ "type": "string",
"description": "This is the value you want to compare against the parameter.",
"maxLength": 1000
}
@@ -7696,10 +8859,6 @@
"type": "string"
}
},
- "regex": {
- "type": "string",
- "description": "This is a regex that will be used to validate data in question."
- },
"value": {
"type": "string",
"description": "This the value that will be used in filling the property."
@@ -7785,11 +8944,6 @@
"CreateDtmfToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -7828,14 +8982,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -7845,11 +8991,6 @@
"CreateEndCallToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -7888,14 +9029,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -7905,11 +9038,6 @@
"CreateVoicemailToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -7936,6 +9064,7 @@
},
"type": {
"type": "string",
+ "deprecated": true,
"enum": [
"voicemail"
],
@@ -7948,14 +9077,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -7965,11 +9086,6 @@
"CreateFunctionToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8001,19 +9117,24 @@
],
"description": "The type of tool. \"function\" for Function tool."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "async": {
+ "type": "boolean",
+ "example": false,
+ "description": "This determines if the tool is async.\n\n If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\n If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\n Defaults to synchronous (`false`)."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -8036,11 +9157,6 @@
"CreateGhlToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8082,14 +9198,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -8111,11 +9219,6 @@
"CreateMakeToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8157,14 +9260,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -8248,11 +9343,11 @@
"assistantName"
]
},
- "TransferDestinationStep": {
+ "TransferFallbackPlan": {
"type": "object",
"properties": {
"message": {
- "description": "This is spoken to the customer before connecting them to the destination.\n\nUsage:\n- If this is not provided and transfer tool messages is not provided, default is \"Transferring the call now\".\n- If set to \"\", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.\n\nThis accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.",
+ "description": "This is the message the assistant will deliver to the customer if the transfer fails.",
"oneOf": [
{
"type": "string"
@@ -8262,31 +9357,21 @@
}
]
},
- "type": {
- "type": "string",
- "enum": [
- "step"
- ]
- },
- "stepName": {
- "type": "string",
- "description": "This is the step to transfer to."
- },
- "description": {
- "type": "string",
- "description": "This is the description of the destination, used by the AI to choose when and how to transfer the call."
+ "endCallEnabled": {
+ "type": "boolean",
+ "description": "This controls what happens after delivering the failure message to the customer.\n- true: End the call after delivering the failure message (default)\n- false: Keep the assistant on the call to continue handling the customer's request\n\n@default true",
+ "default": true
}
},
"required": [
- "type",
- "stepName"
+ "message"
]
},
"SummaryPlan": {
"type": "object",
"properties": {
"messages": {
- "description": "These are the messages used to generate the summary.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert note-taker. You will be given a transcript of a call. Summarize the call in 2-3 sentences. DO NOT return anything except the summary.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: The transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: The system prompt of the call from `assistant.model.messages[type=system].content`",
+ "description": "These are the messages used to generate the summary.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert note-taker. You will be given a transcript of a call. Summarize the call in 2-3 sentences. DO NOT return anything except the summary.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n. Here is the ended reason of the call:\\n\\n{{endedReason}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: The transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: The system prompt of the call from `assistant.model.messages[type=system].content`- {{endedReason}}: The ended reason of the call from `call.endedReason`",
"type": "array",
"items": {
"type": "object"
@@ -8309,7 +9394,7 @@
"properties": {
"mode": {
"type": "string",
- "description": "This configures how transfer is executed and the experience of the destination party receiving the call.\n\nUsage:\n- `blind-transfer`: The assistant forwards the call to the destination without any message or summary.\n- `blind-transfer-add-summary-to-sip-header`: The assistant forwards the call to the destination and adds a SIP header X-Transfer-Summary to the call to include the summary.\n- `warm-transfer-say-message`: The assistant dials the destination, delivers the `message` to the destination party, connects the customer, and leaves the call.\n- `warm-transfer-say-summary`: The assistant dials the destination, provides a summary of the call to the destination party, connects the customer, and leaves the call.\n- `warm-transfer-wait-for-operator-to-speak-first-and-then-say-message`: The assistant dials the destination, waits for the operator to speak, delivers the `message` to the destination party, and then connects the customer.\n- `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`: The assistant dials the destination, waits for the operator to speak, provides a summary of the call to the destination party, and then connects the customer.\n- `warm-transfer-twiml`: The assistant dials the destination, executes the twiml instructions on the destination call leg, connects the customer, and leaves the call.\n\n@default 'blind-transfer'",
+ "description": "This configures how transfer is executed and the experience of the destination party receiving the call.\n\nUsage:\n- `blind-transfer`: The assistant forwards the call to the destination without any message or summary.\n- `blind-transfer-add-summary-to-sip-header`: The assistant forwards the call to the destination and adds a SIP header X-Transfer-Summary to the call to include the summary.\n- `warm-transfer-say-message`: The assistant dials the destination, delivers the `message` to the destination party, connects the customer, and leaves the call.\n- `warm-transfer-say-summary`: The assistant dials the destination, provides a summary of the call to the destination party, connects the customer, and leaves the call.\n- `warm-transfer-wait-for-operator-to-speak-first-and-then-say-message`: The assistant dials the destination, waits for the operator to speak, delivers the `message` to the destination party, and then connects the customer.\n- `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`: The assistant dials the destination, waits for the operator to speak, provides a summary of the call to the destination party, and then connects the customer.\n- `warm-transfer-twiml`: The assistant dials the destination, executes the twiml instructions on the destination call leg, connects the customer, and leaves the call.\n- `warm-transfer-experimental`: The assistant puts the customer on hold, dials the destination, and if the destination answers (and is human), delivers a message or summary before connecting the customer. If the destination is unreachable or not human (e.g., with voicemail detection), the assistant delivers the `fallbackMessage` to the customer and optionally ends the call.\n\n@default 'blind-transfer'",
"enum": [
"blind-transfer",
"blind-transfer-add-summary-to-sip-header",
@@ -8317,11 +9402,12 @@
"warm-transfer-say-summary",
"warm-transfer-twiml",
"warm-transfer-wait-for-operator-to-speak-first-and-then-say-message",
- "warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary"
+ "warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary",
+ "warm-transfer-experimental"
]
},
"message": {
- "description": "This is the message the assistant will deliver to the destination party before connecting the customer.\n\nUsage:\n- Used only when `mode` is `blind-transfer-add-summary-to-sip-header`, `warm-transfer-say-message` or `warm-transfer-wait-for-operator-to-speak-first-and-then-say-message`.",
+ "description": "This is the message the assistant will deliver to the destination party before connecting the customer.\n\nUsage:\n- Used only when `mode` is `blind-transfer-add-summary-to-sip-header`, `warm-transfer-say-message`, `warm-transfer-wait-for-operator-to-speak-first-and-then-say-message`, or `warm-transfer-experimental`.",
"oneOf": [
{
"type": "string"
@@ -8331,6 +9417,13 @@
}
]
},
+ "timeout": {
+ "type": "number",
+ "description": "This is the timeout in seconds for the warm-transfer-wait-for-operator-to-speak-first-and-then-say-message/summary\n\n@default 60",
+ "minimum": 1,
+ "maximum": 600,
+ "default": 60
+ },
"sipVerb": {
"type": "object",
"description": "This specifies the SIP verb to use while transferring the call.\n- 'refer': Uses SIP REFER to transfer the call (default)\n- 'bye': Ends current call with SIP BYE\n- 'dial': Uses SIP DIAL to transfer the call",
@@ -8341,138 +9434,494 @@
"dial"
]
},
- "twiml": {
+ "holdAudioUrl": {
+ "type": "string",
+ "description": "This is the URL to an audio file played while the customer is on hold during transfer.\n\nUsage:\n- Used only when `mode` is `warm-transfer-experimental`.\n- Used when transferring calls to play hold audio for the customer.\n- Must be a publicly accessible URL to an audio file.\n- Supported formats: MP3 and WAV.\n- If not provided, the default hold audio will be used."
+ },
+ "transferCompleteAudioUrl": {
+ "type": "string",
+ "description": "This is the URL to an audio file played after the warm transfer message or summary is delivered to the destination party.\nIt can be used to play a custom sound like 'beep' to notify that the transfer is complete.\n\nUsage:\n- Used only when `mode` is `warm-transfer-experimental`.\n- Used when transferring calls to play hold audio for the destination party.\n- Must be a publicly accessible URL to an audio file.\n- Supported formats: MP3 and WAV."
+ },
+ "twiml": {
+ "type": "string",
+ "description": "This is the TwiML instructions to execute on the destination call leg before connecting the customer.\n\nUsage:\n- Used only when `mode` is `warm-transfer-twiml`.\n- Supports only `Play`, `Say`, `Gather`, `Hangup` and `Pause` verbs.\n- Maximum length is 4096 characters.\n\nExample:\n```\nHello, transferring a customer to you.\n\nThey called about billing questions.\n```",
+ "maxLength": 4096
+ },
+ "summaryPlan": {
+ "description": "This is the plan for generating a summary of the call to present to the destination party.\n\nUsage:\n- Used only when `mode` is `blind-transfer-add-summary-to-sip-header` or `warm-transfer-say-summary` or `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary` or `warm-transfer-experimental`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/SummaryPlan"
+ }
+ ]
+ },
+ "sipHeadersInReferToEnabled": {
+ "type": "boolean",
+ "description": "This flag includes the sipHeaders from above in the refer to sip uri as url encoded query params.\n\n@default false"
+ },
+ "fallbackPlan": {
+ "description": "This configures the fallback plan when the transfer fails (destination unreachable, busy, or not human).\n\nUsage:\n- Used only when `mode` is `warm-transfer-experimental`.\n- If not provided when using `warm-transfer-experimental`, a default message will be used.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/TransferFallbackPlan"
+ }
+ ]
+ }
+ },
+ "required": [
+ "mode"
+ ]
+ },
+ "TransferDestinationNumber": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "This is spoken to the customer before connecting them to the destination.\n\nUsage:\n- If this is not provided and transfer tool messages is not provided, default is \"Transferring the call now\".\n- If set to \"\", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.\n\nThis accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/components/schemas/CustomMessage"
+ }
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "number"
+ ]
+ },
+ "numberE164CheckEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it.\n\nUse cases:\n- `false`: To allow non-E164 numbers like `+001234567890`, `1234`, or `abc`. This is useful for dialing out to non-E164 numbers on your SIP trunks.\n- `true` (default): To allow only E164 numbers like `+14155551234`. This is standard for PSTN calls.\n\nIf `false`, the `number` is still required to only contain alphanumeric characters (regex: `/^\\+?[a-zA-Z0-9]+$/`).\n\n@default true (E164 check is enabled)",
+ "default": true
+ },
+ "number": {
+ "type": "string",
+ "description": "This is the phone number to transfer the call to.",
+ "minLength": 3,
+ "maxLength": 40
+ },
+ "extension": {
+ "type": "string",
+ "description": "This is the extension to dial after transferring the call to the `number`.",
+ "minLength": 1,
+ "maxLength": 10
+ },
+ "callerId": {
+ "type": "string",
+ "description": "This is the caller ID to use when transferring the call to the `number`.\n\nUsage:\n- If not provided, the caller ID will be the number the call is coming from. Example, +14151111111 calls in to and the assistant transfers out to +16470000000. +16470000000 will see +14151111111 as the caller.\n- To change this behavior, provide a `callerId`.\n- Set to '{{customer.number}}' to always use the customer's number as the caller ID.\n- Set to '{{phoneNumber.number}}' to always use the phone number of the assistant as the caller ID.\n- Set to any E164 number to always use that number as the caller ID. This needs to be a number that is owned or verified by your Transport provider like Twilio.\n\nFor Twilio, you can read up more here: https://www.twilio.com/docs/voice/twiml/dial#callerid",
+ "maxLength": 40
+ },
+ "transferPlan": {
+ "description": "This configures how transfer is executed and the experience of the destination party receiving the call. Defaults to `blind-transfer`.\n\n@default `transferPlan.mode='blind-transfer'`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/TransferPlan"
+ }
+ ]
+ },
+ "description": {
+ "type": "string",
+ "description": "This is the description of the destination, used by the AI to choose when and how to transfer the call."
+ }
+ },
+ "required": [
+ "type",
+ "number"
+ ]
+ },
+ "TransferDestinationSip": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "This is spoken to the customer before connecting them to the destination.\n\nUsage:\n- If this is not provided and transfer tool messages is not provided, default is \"Transferring the call now\".\n- If set to \"\", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.\n\nThis accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/components/schemas/CustomMessage"
+ }
+ ]
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "sip"
+ ]
+ },
+ "sipUri": {
+ "type": "string",
+ "description": "This is the SIP URI to transfer the call to."
+ },
+ "transferPlan": {
+ "description": "This configures how transfer is executed and the experience of the destination party receiving the call. Defaults to `blind-transfer`.\n\n@default `transferPlan.mode='blind-transfer'`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/TransferPlan"
+ }
+ ]
+ },
+ "sipHeaders": {
+ "type": "object",
+ "description": "These are custom headers to be added to SIP refer during transfer call."
+ },
+ "description": {
+ "type": "string",
+ "description": "This is the description of the destination, used by the AI to choose when and how to transfer the call."
+ }
+ },
+ "required": [
+ "type",
+ "sipUri"
+ ]
+ },
+ "CreateTransferCallToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "transferCall"
+ ]
+ },
+ "destinations": {
+ "type": "array",
+ "description": "These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferDestinationAssistant",
+ "title": "Assistant"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationNumber",
+ "title": "Number"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationSip",
+ "title": "Sip"
+ }
+ ]
+ }
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "CreateCustomKnowledgeBaseDTO": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "This knowledge base is bring your own knowledge base implementation.",
+ "enum": [
+ "custom-knowledge-base"
+ ]
+ },
+ "server": {
+ "description": "This is where the knowledge base request will be sent.\n\nRequest Example:\n\nPOST https://{server.url}\nContent-Type: application/json\n\n{\n \"messsage\": {\n \"type\": \"knowledge-base-request\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Why is ocean blue?\"\n }\n ],\n ...other metadata about the call...\n }\n}\n\nResponse Expected:\n```\n{\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"The ocean is blue because water absorbs everything but blue.\",\n }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK\n \"documents\": [\n {\n \"content\": \"The ocean is blue primarily because water absorbs colors in the red part of the light spectrum and scatters the blue light, making it more visible to our eyes.\",\n \"similarity\": 1\n },\n {\n \"content\": \"Blue light is scattered more by the water molecules than other colors, enhancing the blue appearance of the ocean.\",\n \"similarity\": .5\n }\n ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL\n}\n```",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ }
+ },
+ "required": [
+ "provider",
+ "server"
+ ]
+ },
+ "KnowledgeBase": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the knowledge base",
+ "example": "My Knowledge Base"
+ },
+ "provider": {
+ "type": "string",
+ "description": "The provider of the knowledge base",
+ "enum": [
+ "google"
+ ],
+ "example": "google"
+ },
+ "model": {
+ "type": "string",
+ "description": "The model to use for the knowledge base",
+ "enum": [
+ "gemini-2.5-pro-preview-05-06",
+ "gemini-2.5-flash-preview-05-20",
+ "gemini-2.5-flash-preview-04-17",
+ "gemini-2.0-flash-thinking-exp",
+ "gemini-2.0-pro-exp-02-05",
+ "gemini-2.0-flash",
+ "gemini-2.0-flash-lite",
+ "gemini-2.0-flash-lite-preview-02-05",
+ "gemini-2.0-flash-exp",
+ "gemini-2.0-flash-realtime-exp",
+ "gemini-1.5-flash",
+ "gemini-1.5-flash-002",
+ "gemini-1.5-pro",
+ "gemini-1.5-pro-002",
+ "gemini-1.0-pro"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "description": "A description of the knowledge base"
+ },
+ "fileIds": {
+ "description": "The file IDs associated with this knowledge base",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "description",
+ "fileIds"
+ ]
+ },
+ "CreateQueryToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "query"
+ ],
+ "description": "The type of tool. \"query\" for Query tool."
+ },
+ "knowledgeBases": {
+ "description": "The knowledge bases to query",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/KnowledgeBase"
+ }
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "CreateGoogleCalendarCreateEventToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
"type": "string",
- "description": "This is the TwiML instructions to execute on the destination call leg before connecting the customer.\n\nUsage:\n- Used only when `mode` is `warm-transfer-twiml`.\n- Supports only `Play`, `Say`, `Gather`, `Hangup` and `Pause` verbs.\n- Maximum length is 4096 characters.\n\nExample:\n```\nHello, transferring a customer to you.\n\nThey called about billing questions.\n```",
- "maxLength": 4096
+ "enum": [
+ "google.calendar.event.create"
+ ],
+ "description": "The type of tool. \"google.calendar.event.create\" for Google Calendar tool."
},
- "summaryPlan": {
- "description": "This is the plan for generating a summary of the call to present to the destination party.\n\nUsage:\n- Used only when `mode` is `blind-transfer-add-summary-to-sip-header` or `warm-transfer-say-summary` or `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/SummaryPlan"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
},
"required": [
- "mode"
+ "type"
]
},
- "TransferDestinationNumber": {
+ "CreateGoogleSheetsRowAppendToolDTO": {
"type": "object",
"properties": {
- "message": {
- "description": "This is spoken to the customer before connecting them to the destination.\n\nUsage:\n- If this is not provided and transfer tool messages is not provided, default is \"Transferring the call now\".\n- If set to \"\", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.\n\nThis accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.",
- "oneOf": [
- {
- "type": "string"
- },
- {
- "$ref": "#/components/schemas/CustomMessage"
- }
- ]
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
"type": {
"type": "string",
"enum": [
- "number"
- ]
- },
- "numberE164CheckEnabled": {
- "type": "boolean",
- "description": "This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it.\n\nUse cases:\n- `false`: To allow non-E164 numbers like `+001234567890`, `1234`, or `abc`. This is useful for dialing out to non-E164 numbers on your SIP trunks.\n- `true` (default): To allow only E164 numbers like `+14155551234`. This is standard for PSTN calls.\n\nIf `false`, the `number` is still required to only contain alphanumeric characters (regex: `/^\\+?[a-zA-Z0-9]+$/`).\n\n@default true (E164 check is enabled)",
- "default": true
- },
- "number": {
- "type": "string",
- "description": "This is the phone number to transfer the call to.",
- "minLength": 3,
- "maxLength": 40
- },
- "extension": {
- "type": "string",
- "description": "This is the extension to dial after transferring the call to the `number`.",
- "minLength": 1,
- "maxLength": 10
- },
- "callerId": {
- "type": "string",
- "description": "This is the caller ID to use when transferring the call to the `number`.\n\nUsage:\n- If not provided, the caller ID will be the number the call is coming from. Example, +14151111111 calls in to and the assistant transfers out to +16470000000. +16470000000 will see +14151111111 as the caller.\n- To change this behavior, provide a `callerId`.\n- Set to '{{customer.number}}' to always use the customer's number as the caller ID.\n- Set to '{{phoneNumber.number}}' to always use the phone number of the assistant as the caller ID.\n- Set to any E164 number to always use that number as the caller ID. This needs to be a number that is owned or verified by your Transport provider like Twilio.\n\nFor Twilio, you can read up more here: https://www.twilio.com/docs/voice/twiml/dial#callerid",
- "maxLength": 40
+ "google.sheets.row.append"
+ ],
+ "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
},
- "transferPlan": {
- "description": "This configures how transfer is executed and the experience of the destination party receiving the call. Defaults to `blind-transfer`.\n\n@default `transferPlan.mode='blind-transfer'`",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/TransferPlan"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "description": {
- "type": "string",
- "description": "This is the description of the destination, used by the AI to choose when and how to transfer the call."
}
},
"required": [
- "type",
- "number"
+ "type"
]
},
- "TransferDestinationSip": {
+ "CreateGoogleCalendarCheckAvailabilityToolDTO": {
"type": "object",
"properties": {
- "message": {
- "description": "This is spoken to the customer before connecting them to the destination.\n\nUsage:\n- If this is not provided and transfer tool messages is not provided, default is \"Transferring the call now\".\n- If set to \"\", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.\n\nThis accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.",
- "oneOf": [
- {
- "type": "string"
- },
- {
- "$ref": "#/components/schemas/CustomMessage"
- }
- ]
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
"type": {
"type": "string",
"enum": [
- "sip"
- ]
- },
- "sipUri": {
- "type": "string",
- "description": "This is the SIP URI to transfer the call to."
+ "google.calendar.availability.check"
+ ],
+ "description": "The type of tool. \"google.calendar.availability.check\" for Google Calendar availability check tool."
},
- "transferPlan": {
- "description": "This configures how transfer is executed and the experience of the destination party receiving the call. Defaults to `blind-transfer`.\n\n@default `transferPlan.mode='blind-transfer'`",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/TransferPlan"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "sipHeaders": {
- "type": "object",
- "description": "These are custom headers to be added to SIP refer during transfer call."
- },
- "description": {
- "type": "string",
- "description": "This is the description of the destination, used by the AI to choose when and how to transfer the call."
}
},
"required": [
- "type",
- "sipUri"
+ "type"
]
},
- "CreateTransferCallToolDTO": {
+ "CreateSlackSendMessageToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8500,46 +9949,70 @@
"type": {
"type": "string",
"enum": [
- "transferCall"
- ]
+ "slack.message.send"
+ ],
+ "description": "The type of tool. \"slack.message.send\" for Slack send message tool."
},
- "destinations": {
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "CreateMcpToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
"type": "array",
- "description": "These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called.",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/TransferDestinationAssistant",
- "title": "Assistant"
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
},
{
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
},
{
- "$ref": "#/components/schemas/TransferDestinationNumber",
- "title": "Number"
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
},
{
- "$ref": "#/components/schemas/TransferDestinationSip",
- "title": "Sip"
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
}
]
}
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "type": {
+ "type": "string",
+ "enum": [
+ "mcp"
+ ],
+ "description": "The type of tool. \"mcp\" for MCP tool."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -8548,91 +10021,103 @@
"type"
]
},
- "CreateCustomKnowledgeBaseDTO": {
+ "CreateGoHighLevelCalendarAvailabilityToolDTO": {
"type": "object",
"properties": {
- "provider": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
"type": "string",
- "description": "This knowledge base is bring your own knowledge base implementation.",
"enum": [
- "custom-knowledge-base"
- ]
+ "gohighlevel.calendar.availability.check"
+ ],
+ "description": "The type of tool. \"gohighlevel.calendar.availability.check\" for GoHighLevel Calendar availability check tool."
},
- "server": {
- "description": "This is where the knowledge base request will be sent.\n\nRequest Example:\n\nPOST https://{server.url}\nContent-Type: application/json\n\n{\n \"messsage\": {\n \"type\": \"knowledge-base-request\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Why is ocean blue?\"\n }\n ],\n ...other metadata about the call...\n }\n}\n\nResponse Expected:\n```\n{\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"The ocean is blue because water absorbs everything but blue.\",\n }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK\n \"documents\": [\n {\n \"content\": \"The ocean is blue primarily because water absorbs colors in the red part of the light spectrum and scatters the blue light, making it more visible to our eyes.\",\n \"similarity\": 1\n },\n {\n \"content\": \"Blue light is scattered more by the water molecules than other colors, enhancing the blue appearance of the ocean.\",\n \"similarity\": .5\n }\n ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL\n}\n```",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
},
"required": [
- "provider",
- "server"
+ "type"
]
},
- "KnowledgeBase": {
+ "CreateGoHighLevelCalendarEventCreateToolDTO": {
"type": "object",
"properties": {
- "name": {
- "type": "string",
- "description": "The name of the knowledge base",
- "example": "My Knowledge Base"
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
- "provider": {
+ "type": {
"type": "string",
- "description": "The provider of the knowledge base",
"enum": [
- "google"
+ "gohighlevel.calendar.event.create"
],
- "example": "google"
+ "description": "The type of tool. \"gohighlevel.calendar.event.create\" for GoHighLevel Calendar event create tool."
},
- "model": {
- "type": "string",
- "description": "The model to use for the knowledge base",
- "enum": [
- "gemini-2.0-flash-thinking-exp",
- "gemini-2.0-pro-exp-02-05",
- "gemini-2.0-flash",
- "gemini-2.0-flash-lite",
- "gemini-2.0-flash-lite-preview-02-05",
- "gemini-2.0-flash-exp",
- "gemini-2.0-flash-realtime-exp",
- "gemini-1.5-flash",
- "gemini-1.5-flash-002",
- "gemini-1.5-pro",
- "gemini-1.5-pro-002",
- "gemini-1.0-pro"
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
]
- },
- "description": {
- "type": "string",
- "description": "A description of the knowledge base"
- },
- "fileIds": {
- "description": "The file IDs associated with this knowledge base",
- "type": "array",
- "items": {
- "type": "string"
- }
}
},
"required": [
- "name",
- "provider",
- "description",
- "fileIds"
+ "type"
]
},
- "CreateQueryToolDTO": {
+ "CreateGoHighLevelContactCreateToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8660,16 +10145,9 @@
"type": {
"type": "string",
"enum": [
- "query"
+ "gohighlevel.contact.create"
],
- "description": "The type of tool. \"query\" for Query tool."
- },
- "knowledgeBases": {
- "description": "The knowledge bases to query",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/KnowledgeBase"
- }
+ "description": "The type of tool. \"gohighlevel.contact.create\" for GoHighLevel contact create tool."
},
"function": {
"description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
@@ -8678,28 +10156,15 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
"type"
]
},
- "CreateGoogleCalendarCreateEventToolDTO": {
+ "CreateGoHighLevelContactGetToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -8727,212 +10192,694 @@
"type": {
"type": "string",
"enum": [
- "google.calendar.event.create"
- ],
- "description": "The type of tool. \"google.calendar.event.create\" for Google Calendar tool."
- },
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
- "allOf": [
- {
- "$ref": "#/components/schemas/OpenAIFunction"
- }
+ "gohighlevel.contact.get"
+ ],
+ "description": "The type of tool. \"gohighlevel.contact.get\" for GoHighLevel contact get tool."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "AnyscaleModel": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "description": "This is the starting state for the conversation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/OpenAIMessage"
+ }
+ },
+ "tools": {
+ "type": "array",
+ "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
+ }
+ ]
+ }
+ },
+ "toolIds": {
+ "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "knowledgeBase": {
+ "description": "These are the options for the knowledge base.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
+ "title": "Custom"
+ }
+ ]
+ },
+ "knowledgeBaseId": {
+ "type": "string",
+ "description": "This is the ID of the knowledge base the model will use."
+ },
+ "provider": {
+ "type": "string",
+ "enum": [
+ "anyscale"
+ ]
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
+ "minimum": 50,
+ "maximum": 10000
+ },
+ "emotionRecognitionEnabled": {
+ "type": "boolean",
+ "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
+ },
+ "numFastTurns": {
+ "type": "number",
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "provider",
+ "model"
+ ]
+ },
+ "AnthropicThinkingConfig": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "enabled"
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
+ "budgetTokens": {
+ "type": "number",
+ "description": "The maximum number of tokens to allocate for thinking.\nMust be between 1024 and 100000 tokens.",
+ "minimum": 1024,
+ "maximum": 100000
}
},
"required": [
- "type"
+ "type",
+ "budgetTokens"
]
},
- "CreateGoogleSheetsRowAppendToolDTO": {
+ "AnthropicModel": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
+ "description": "This is the starting state for the conversation.",
"type": "array",
- "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "$ref": "#/components/schemas/OpenAIMessage"
+ }
+ },
+ "tools": {
+ "type": "array",
+ "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/ToolMessageStart",
- "title": "ToolMessageStart"
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
},
{
- "$ref": "#/components/schemas/ToolMessageComplete",
- "title": "ToolMessageComplete"
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
},
{
- "$ref": "#/components/schemas/ToolMessageFailed",
- "title": "ToolMessageFailed"
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
},
{
- "$ref": "#/components/schemas/ToolMessageDelayed",
- "title": "ToolMessageDelayed"
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
},
- "type": {
- "type": "string",
- "enum": [
- "google.sheets.row.append"
- ],
- "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
+ "toolIds": {
+ "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
- "allOf": [
+ "knowledgeBase": {
+ "description": "These are the options for the knowledge base.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
+ "title": "Custom"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "knowledgeBaseId": {
+ "type": "string",
+ "description": "This is the ID of the knowledge base the model will use."
+ },
+ "model": {
+ "type": "string",
+ "description": "The specific Anthropic/Claude model that will be used.",
+ "enum": [
+ "claude-3-opus-20240229",
+ "claude-3-sonnet-20240229",
+ "claude-3-haiku-20240307",
+ "claude-3-5-sonnet-20240620",
+ "claude-3-5-sonnet-20241022",
+ "claude-3-5-haiku-20241022",
+ "claude-3-7-sonnet-20250219",
+ "claude-opus-4-20250514",
+ "claude-sonnet-4-20250514"
+ ]
+ },
+ "provider": {
+ "type": "string",
+ "description": "The provider identifier for Anthropic.",
+ "enum": [
+ "anthropic"
+ ]
+ },
+ "thinking": {
+ "description": "Optional configuration for Anthropic's thinking feature.\nOnly applicable for claude-3-7-sonnet-20250219 model.\nIf provided, maxTokens must be greater than thinking.budgetTokens.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/AnthropicThinkingConfig"
}
]
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
+ "minimum": 50,
+ "maximum": 10000
+ },
+ "emotionRecognitionEnabled": {
+ "type": "boolean",
+ "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
+ },
+ "numFastTurns": {
+ "type": "number",
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
}
},
"required": [
- "type"
+ "model",
+ "provider"
]
},
- "CreateGoogleCalendarCheckAvailabilityToolDTO": {
+ "CerebrasModel": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
+ "description": "This is the starting state for the conversation.",
"type": "array",
- "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "$ref": "#/components/schemas/OpenAIMessage"
+ }
+ },
+ "tools": {
+ "type": "array",
+ "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/ToolMessageStart",
- "title": "ToolMessageStart"
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
},
{
- "$ref": "#/components/schemas/ToolMessageComplete",
- "title": "ToolMessageComplete"
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
},
{
- "$ref": "#/components/schemas/ToolMessageFailed",
- "title": "ToolMessageFailed"
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
},
{
- "$ref": "#/components/schemas/ToolMessageDelayed",
- "title": "ToolMessageDelayed"
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
},
- "type": {
- "type": "string",
- "enum": [
- "google.calendar.availability.check"
- ],
- "description": "The type of tool. \"google.calendar.availability.check\" for Google Calendar availability check tool."
+ "toolIds": {
+ "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
- "allOf": [
+ "knowledgeBase": {
+ "description": "These are the options for the knowledge base.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
+ "title": "Custom"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
+ "knowledgeBaseId": {
+ "type": "string",
+ "description": "This is the ID of the knowledge base the model will use."
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
+ "enum": [
+ "llama3.1-8b",
+ "llama-3.3-70b"
+ ]
+ },
+ "provider": {
+ "type": "string",
+ "enum": [
+ "cerebras"
]
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
+ "minimum": 50,
+ "maximum": 10000
+ },
+ "emotionRecognitionEnabled": {
+ "type": "boolean",
+ "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
+ },
+ "numFastTurns": {
+ "type": "number",
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
}
},
"required": [
- "type"
+ "model",
+ "provider"
]
},
- "CreateSlackSendMessageToolDTO": {
+ "CustomLLMModel": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
+ "description": "This is the starting state for the conversation.",
"type": "array",
- "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "$ref": "#/components/schemas/OpenAIMessage"
+ }
+ },
+ "tools": {
+ "type": "array",
+ "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/ToolMessageStart",
- "title": "ToolMessageStart"
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
},
{
- "$ref": "#/components/schemas/ToolMessageComplete",
- "title": "ToolMessageComplete"
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
},
{
- "$ref": "#/components/schemas/ToolMessageFailed",
- "title": "ToolMessageFailed"
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
},
{
- "$ref": "#/components/schemas/ToolMessageDelayed",
- "title": "ToolMessageDelayed"
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
},
- "type": {
- "type": "string",
- "enum": [
- "slack.message.send"
- ],
- "description": "The type of tool. \"slack.message.send\" for Slack send message tool."
+ "toolIds": {
+ "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
- "allOf": [
+ "knowledgeBase": {
+ "description": "These are the options for the knowledge base.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
+ "title": "Custom"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
+ "knowledgeBaseId": {
+ "type": "string",
+ "description": "This is the ID of the knowledge base the model will use."
+ },
+ "provider": {
+ "type": "string",
+ "description": "This is the provider that will be used for the model. Any service, including your own server, that is compatible with the OpenAI API can be used.",
+ "enum": [
+ "custom-llm"
+ ]
+ },
+ "metadataSendMode": {
+ "type": "string",
+ "description": "This determines whether metadata is sent in requests to the custom provider.\n\n- `off` will not send any metadata. payload will look like `{ messages }`\n- `variable` will send `assistant.metadata` as a variable on the payload. payload will look like `{ messages, metadata }`\n- `destructured` will send `assistant.metadata` fields directly on the payload. payload will look like `{ messages, ...metadata }`\n\nFurther, `variable` and `destructured` will send `call`, `phoneNumber`, and `customer` objects in the payload.\n\nDefault is `variable`.",
+ "enum": [
+ "off",
+ "variable",
+ "destructured"
]
+ },
+ "url": {
+ "type": "string",
+ "description": "These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1"
+ },
+ "timeoutSeconds": {
+ "type": "number",
+ "description": "This sets the timeout for the connection to the custom provider without needing to stream any tokens back. Default is 20 seconds.",
+ "minimum": 20,
+ "maximum": 600
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
+ "minimum": 50,
+ "maximum": 10000
+ },
+ "emotionRecognitionEnabled": {
+ "type": "boolean",
+ "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
+ },
+ "numFastTurns": {
+ "type": "number",
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
}
},
"required": [
- "type"
+ "provider",
+ "url",
+ "model"
]
},
- "AnyscaleModel": {
+ "DeepInfraModel": {
"type": "object",
"properties": {
"messages": {
@@ -8947,6 +10894,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -8955,29 +10914,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -8988,12 +10947,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9021,7 +10996,7 @@
"provider": {
"type": "string",
"enum": [
- "anyscale"
+ "deepinfra"
]
},
"model": {
@@ -9044,39 +11019,18 @@
"type": "boolean",
"description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
},
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
- }
- },
- "required": [
- "provider",
- "model"
- ]
- },
- "AnthropicThinkingConfig": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "enabled"
- ]
- },
- "budgetTokens": {
+ "numFastTurns": {
"type": "number",
- "description": "The maximum number of tokens to allocate for thinking.\nMust be between 1024 and 100000 tokens.",
- "minimum": 1024,
- "maximum": 100000
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
}
},
"required": [
- "type",
- "budgetTokens"
+ "provider",
+ "model"
]
},
- "AnthropicModel": {
+ "DeepSeekModel": {
"type": "object",
"properties": {
"messages": {
@@ -9091,6 +11045,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9099,29 +11065,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9132,12 +11098,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9164,30 +11146,16 @@
},
"model": {
"type": "string",
- "description": "The specific Anthropic/Claude model that will be used.",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
"enum": [
- "claude-3-opus-20240229",
- "claude-3-sonnet-20240229",
- "claude-3-haiku-20240307",
- "claude-3-5-sonnet-20240620",
- "claude-3-5-sonnet-20241022",
- "claude-3-5-haiku-20241022",
- "claude-3-7-sonnet-20250219"
+ "deepseek-chat",
+ "deepseek-reasoner"
]
},
"provider": {
"type": "string",
- "description": "The provider identifier for Anthropic.",
"enum": [
- "anthropic"
- ]
- },
- "thinking": {
- "description": "Optional configuration for Anthropic's thinking feature.\nOnly applicable for claude-3-7-sonnet-20250219 model.\nIf provided, maxTokens must be greater than thinking.budgetTokens.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AnthropicThinkingConfig"
- }
+ "deep-seek"
]
},
"temperature": {
@@ -9217,7 +11185,76 @@
"provider"
]
},
- "CerebrasModel": {
+ "GeminiMultimodalLivePrebuiltVoiceConfig": {
+ "type": "object",
+ "properties": {
+ "voiceName": {
+ "type": "string",
+ "enum": [
+ "Puck",
+ "Charon",
+ "Kore",
+ "Fenrir",
+ "Aoede"
+ ]
+ }
+ },
+ "required": [
+ "voiceName"
+ ]
+ },
+ "GeminiMultimodalLiveVoiceConfig": {
+ "type": "object",
+ "properties": {
+ "prebuiltVoiceConfig": {
+ "$ref": "#/components/schemas/GeminiMultimodalLivePrebuiltVoiceConfig"
+ }
+ },
+ "required": [
+ "prebuiltVoiceConfig"
+ ]
+ },
+ "GeminiMultimodalLiveSpeechConfig": {
+ "type": "object",
+ "properties": {
+ "voiceConfig": {
+ "$ref": "#/components/schemas/GeminiMultimodalLiveVoiceConfig"
+ }
+ },
+ "required": [
+ "voiceConfig"
+ ]
+ },
+ "GoogleRealtimeConfig": {
+ "type": "object",
+ "properties": {
+ "topP": {
+ "type": "number",
+ "description": "This is the nucleus sampling parameter that controls the cumulative probability of tokens considered during text generation.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
+ },
+ "topK": {
+ "type": "number",
+ "description": "This is the top-k sampling parameter that limits the number of highest probability tokens considered during text generation.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
+ },
+ "presencePenalty": {
+ "type": "number",
+ "description": "This is the presence penalty parameter that influences the model's likelihood to repeat information by penalizing tokens based on their presence in the text.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
+ },
+ "frequencyPenalty": {
+ "type": "number",
+ "description": "This is the frequency penalty parameter that influences the model's likelihood to repeat tokens by penalizing them based on their frequency in the text.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
+ },
+ "speechConfig": {
+ "description": "This is the speech configuration object that defines the voice settings to be used for the model's speech output.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/GeminiMultimodalLiveSpeechConfig"
+ }
+ ]
+ }
+ }
+ },
+ "GoogleModel": {
"type": "object",
"properties": {
"messages": {
@@ -9232,6 +11269,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9240,29 +11289,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9273,12 +11322,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9305,16 +11370,37 @@
},
"model": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
+ "description": "This is the Google model that will be used.",
"enum": [
- "llama3.1-8b",
- "llama-3.3-70b"
+ "gemini-2.5-pro-preview-05-06",
+ "gemini-2.5-flash-preview-05-20",
+ "gemini-2.5-flash-preview-04-17",
+ "gemini-2.0-flash-thinking-exp",
+ "gemini-2.0-pro-exp-02-05",
+ "gemini-2.0-flash",
+ "gemini-2.0-flash-lite",
+ "gemini-2.0-flash-lite-preview-02-05",
+ "gemini-2.0-flash-exp",
+ "gemini-2.0-flash-realtime-exp",
+ "gemini-1.5-flash",
+ "gemini-1.5-flash-002",
+ "gemini-1.5-pro",
+ "gemini-1.5-pro-002",
+ "gemini-1.0-pro"
]
},
"provider": {
"type": "string",
"enum": [
- "cerebras"
+ "google"
+ ]
+ },
+ "realtimeConfig": {
+ "description": "This is the session configuration for the Gemini Flash 2.0 Multimodal Live API.\nOnly applicable if the model `gemini-2.0-flash-realtime-exp` is selected.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/GoogleRealtimeConfig"
+ }
]
},
"temperature": {
@@ -9344,7 +11430,7 @@
"provider"
]
},
- "CustomLLMModel": {
+ "GroqModel": {
"type": "object",
"properties": {
"messages": {
@@ -9359,6 +11445,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9367,29 +11465,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9400,12 +11498,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9430,36 +11544,30 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
- "provider": {
+ "model": {
"type": "string",
- "description": "This is the provider that will be used for the model. Any service, including your own server, that is compatible with the OpenAI API can be used.",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
"enum": [
- "custom-llm"
+ "deepseek-r1-distill-llama-70b",
+ "llama-3.3-70b-versatile",
+ "llama-3.1-405b-reasoning",
+ "llama-3.1-8b-instant",
+ "llama3-8b-8192",
+ "llama3-70b-8192",
+ "gemma2-9b-it",
+ "meta-llama/llama-4-maverick-17b-128e-instruct",
+ "meta-llama/llama-4-scout-17b-16e-instruct",
+ "mistral-saba-24b",
+ "compound-beta",
+ "compound-beta-mini"
]
},
- "metadataSendMode": {
+ "provider": {
"type": "string",
- "description": "This determines whether metadata is sent in requests to the custom provider.\n\n- `off` will not send any metadata. payload will look like `{ messages }`\n- `variable` will send `assistant.metadata` as a variable on the payload. payload will look like `{ messages, metadata }`\n- `destructured` will send `assistant.metadata` fields directly on the payload. payload will look like `{ messages, ...metadata }`\n\nFurther, `variable` and `destructured` will send `call`, `phoneNumber`, and `customer` objects in the payload.\n\nDefault is `variable`.",
"enum": [
- "off",
- "variable",
- "destructured"
+ "groq"
]
},
- "url": {
- "type": "string",
- "description": "These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1"
- },
- "timeoutSeconds": {
- "type": "number",
- "description": "This sets the timeout for the connection to the custom provider without needing to stream any tokens back. Default is 20 seconds.",
- "minimum": 20,
- "maximum": 600
- },
- "model": {
- "type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
- },
"temperature": {
"type": "number",
"description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
@@ -9483,12 +11591,11 @@
}
},
"required": [
- "provider",
- "url",
- "model"
+ "model",
+ "provider"
]
},
- "DeepInfraModel": {
+ "InflectionAIModel": {
"type": "object",
"properties": {
"messages": {
@@ -9503,6 +11610,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9511,29 +11630,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9544,12 +11663,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9574,15 +11709,18 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
- "provider": {
+ "model": {
"type": "string",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
"enum": [
- "deepinfra"
+ "inflection_3_pi"
]
},
- "model": {
+ "provider": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
+ "enum": [
+ "inflection-ai"
+ ]
},
"temperature": {
"type": "number",
@@ -9607,11 +11745,11 @@
}
},
"required": [
- "provider",
- "model"
+ "model",
+ "provider"
]
},
- "DeepSeekModel": {
+ "OpenAIModel": {
"type": "object",
"properties": {
"messages": {
@@ -9626,6 +11764,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9634,29 +11784,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9667,12 +11817,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9697,18 +11863,328 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
+ "provider": {
+ "type": "string",
+ "description": "This is the provider that will be used for the model.",
+ "enum": [
+ "openai"
+ ]
+ },
"model": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
+ "description": "This is the OpenAI model that will be used.\n\nWhen using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.\nThis is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.\n\n@default undefined",
"enum": [
- "deepseek-chat",
- "deepseek-reasoner"
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
+ "gpt-4.1",
+ "gpt-4.1-mini",
+ "gpt-4.1-nano",
+ "gpt-4.5-preview",
+ "chatgpt-4o-latest",
+ "o3",
+ "o3-mini",
+ "o4-mini",
+ "o1-preview",
+ "o1-preview-2024-09-12",
+ "o1-mini",
+ "o1-mini-2024-09-12",
+ "gpt-4o-realtime-preview-2024-10-01",
+ "gpt-4o-realtime-preview-2024-12-17",
+ "gpt-4o-mini-realtime-preview-2024-12-17",
+ "gpt-4o-mini-2024-07-18",
+ "gpt-4o-mini",
+ "gpt-4o",
+ "gpt-4o-2024-05-13",
+ "gpt-4o-2024-08-06",
+ "gpt-4o-2024-11-20",
+ "gpt-4-turbo",
+ "gpt-4-turbo-2024-04-09",
+ "gpt-4-turbo-preview",
+ "gpt-4-0125-preview",
+ "gpt-4-1106-preview",
+ "gpt-4",
+ "gpt-4-0613",
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-0125",
+ "gpt-3.5-turbo-1106",
+ "gpt-3.5-turbo-16k",
+ "gpt-3.5-turbo-0613",
+ "gpt-4.1-2025-04-14:westus",
+ "gpt-4.1-2025-04-14:eastus2",
+ "gpt-4.1-2025-04-14:eastus",
+ "gpt-4.1-2025-04-14:westus3",
+ "gpt-4.1-2025-04-14:northcentralus",
+ "gpt-4.1-2025-04-14:southcentralus",
+ "gpt-4.1-mini-2025-04-14:westus",
+ "gpt-4.1-mini-2025-04-14:eastus2",
+ "gpt-4.1-mini-2025-04-14:eastus",
+ "gpt-4.1-mini-2025-04-14:westus3",
+ "gpt-4.1-mini-2025-04-14:northcentralus",
+ "gpt-4.1-mini-2025-04-14:southcentralus",
+ "gpt-4.1-nano-2025-04-14:westus",
+ "gpt-4.1-nano-2025-04-14:eastus2",
+ "gpt-4.1-nano-2025-04-14:westus3",
+ "gpt-4.1-nano-2025-04-14:northcentralus",
+ "gpt-4.1-nano-2025-04-14:southcentralus",
+ "gpt-4o-2024-11-20:swedencentral",
+ "gpt-4o-2024-11-20:westus",
+ "gpt-4o-2024-11-20:eastus2",
+ "gpt-4o-2024-11-20:eastus",
+ "gpt-4o-2024-11-20:westus3",
+ "gpt-4o-2024-11-20:southcentralus",
+ "gpt-4o-2024-08-06:westus",
+ "gpt-4o-2024-08-06:westus3",
+ "gpt-4o-2024-08-06:eastus",
+ "gpt-4o-2024-08-06:eastus2",
+ "gpt-4o-2024-08-06:northcentralus",
+ "gpt-4o-2024-08-06:southcentralus",
+ "gpt-4o-mini-2024-07-18:westus",
+ "gpt-4o-mini-2024-07-18:westus3",
+ "gpt-4o-mini-2024-07-18:eastus",
+ "gpt-4o-mini-2024-07-18:eastus2",
+ "gpt-4o-mini-2024-07-18:northcentralus",
+ "gpt-4o-mini-2024-07-18:southcentralus",
+ "gpt-4o-2024-05-13:eastus2",
+ "gpt-4o-2024-05-13:eastus",
+ "gpt-4o-2024-05-13:northcentralus",
+ "gpt-4o-2024-05-13:southcentralus",
+ "gpt-4o-2024-05-13:westus3",
+ "gpt-4o-2024-05-13:westus",
+ "gpt-4-turbo-2024-04-09:eastus2",
+ "gpt-4-0125-preview:eastus",
+ "gpt-4-0125-preview:northcentralus",
+ "gpt-4-0125-preview:southcentralus",
+ "gpt-4-1106-preview:australia",
+ "gpt-4-1106-preview:canadaeast",
+ "gpt-4-1106-preview:france",
+ "gpt-4-1106-preview:india",
+ "gpt-4-1106-preview:norway",
+ "gpt-4-1106-preview:swedencentral",
+ "gpt-4-1106-preview:uk",
+ "gpt-4-1106-preview:westus",
+ "gpt-4-1106-preview:westus3",
+ "gpt-4-0613:canadaeast",
+ "gpt-3.5-turbo-0125:canadaeast",
+ "gpt-3.5-turbo-0125:northcentralus",
+ "gpt-3.5-turbo-0125:southcentralus",
+ "gpt-3.5-turbo-1106:canadaeast",
+ "gpt-3.5-turbo-1106:westus"
]
},
- "provider": {
+ "fallbackModels": {
+ "type": "array",
+ "description": "These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.",
+ "enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
+ "gpt-4.1",
+ "gpt-4.1-mini",
+ "gpt-4.1-nano",
+ "gpt-4.5-preview",
+ "chatgpt-4o-latest",
+ "o3",
+ "o3-mini",
+ "o4-mini",
+ "o1-preview",
+ "o1-preview-2024-09-12",
+ "o1-mini",
+ "o1-mini-2024-09-12",
+ "gpt-4o-realtime-preview-2024-10-01",
+ "gpt-4o-realtime-preview-2024-12-17",
+ "gpt-4o-mini-realtime-preview-2024-12-17",
+ "gpt-4o-mini-2024-07-18",
+ "gpt-4o-mini",
+ "gpt-4o",
+ "gpt-4o-2024-05-13",
+ "gpt-4o-2024-08-06",
+ "gpt-4o-2024-11-20",
+ "gpt-4-turbo",
+ "gpt-4-turbo-2024-04-09",
+ "gpt-4-turbo-preview",
+ "gpt-4-0125-preview",
+ "gpt-4-1106-preview",
+ "gpt-4",
+ "gpt-4-0613",
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-0125",
+ "gpt-3.5-turbo-1106",
+ "gpt-3.5-turbo-16k",
+ "gpt-3.5-turbo-0613",
+ "gpt-4.1-2025-04-14:westus",
+ "gpt-4.1-2025-04-14:eastus2",
+ "gpt-4.1-2025-04-14:eastus",
+ "gpt-4.1-2025-04-14:westus3",
+ "gpt-4.1-2025-04-14:northcentralus",
+ "gpt-4.1-2025-04-14:southcentralus",
+ "gpt-4.1-mini-2025-04-14:westus",
+ "gpt-4.1-mini-2025-04-14:eastus2",
+ "gpt-4.1-mini-2025-04-14:eastus",
+ "gpt-4.1-mini-2025-04-14:westus3",
+ "gpt-4.1-mini-2025-04-14:northcentralus",
+ "gpt-4.1-mini-2025-04-14:southcentralus",
+ "gpt-4.1-nano-2025-04-14:westus",
+ "gpt-4.1-nano-2025-04-14:eastus2",
+ "gpt-4.1-nano-2025-04-14:westus3",
+ "gpt-4.1-nano-2025-04-14:northcentralus",
+ "gpt-4.1-nano-2025-04-14:southcentralus",
+ "gpt-4o-2024-11-20:swedencentral",
+ "gpt-4o-2024-11-20:westus",
+ "gpt-4o-2024-11-20:eastus2",
+ "gpt-4o-2024-11-20:eastus",
+ "gpt-4o-2024-11-20:westus3",
+ "gpt-4o-2024-11-20:southcentralus",
+ "gpt-4o-2024-08-06:westus",
+ "gpt-4o-2024-08-06:westus3",
+ "gpt-4o-2024-08-06:eastus",
+ "gpt-4o-2024-08-06:eastus2",
+ "gpt-4o-2024-08-06:northcentralus",
+ "gpt-4o-2024-08-06:southcentralus",
+ "gpt-4o-mini-2024-07-18:westus",
+ "gpt-4o-mini-2024-07-18:westus3",
+ "gpt-4o-mini-2024-07-18:eastus",
+ "gpt-4o-mini-2024-07-18:eastus2",
+ "gpt-4o-mini-2024-07-18:northcentralus",
+ "gpt-4o-mini-2024-07-18:southcentralus",
+ "gpt-4o-2024-05-13:eastus2",
+ "gpt-4o-2024-05-13:eastus",
+ "gpt-4o-2024-05-13:northcentralus",
+ "gpt-4o-2024-05-13:southcentralus",
+ "gpt-4o-2024-05-13:westus3",
+ "gpt-4o-2024-05-13:westus",
+ "gpt-4-turbo-2024-04-09:eastus2",
+ "gpt-4-0125-preview:eastus",
+ "gpt-4-0125-preview:northcentralus",
+ "gpt-4-0125-preview:southcentralus",
+ "gpt-4-1106-preview:australia",
+ "gpt-4-1106-preview:canadaeast",
+ "gpt-4-1106-preview:france",
+ "gpt-4-1106-preview:india",
+ "gpt-4-1106-preview:norway",
+ "gpt-4-1106-preview:swedencentral",
+ "gpt-4-1106-preview:uk",
+ "gpt-4-1106-preview:westus",
+ "gpt-4-1106-preview:westus3",
+ "gpt-4-0613:canadaeast",
+ "gpt-3.5-turbo-0125:canadaeast",
+ "gpt-3.5-turbo-0125:northcentralus",
+ "gpt-3.5-turbo-0125:southcentralus",
+ "gpt-3.5-turbo-1106:canadaeast",
+ "gpt-3.5-turbo-1106:westus"
+ ],
+ "example": [
+ "gpt-4-0125-preview",
+ "gpt-4-0613"
+ ],
+ "items": {
+ "type": "string",
+ "enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
+ "gpt-4.1",
+ "gpt-4.1-mini",
+ "gpt-4.1-nano",
+ "gpt-4.5-preview",
+ "chatgpt-4o-latest",
+ "o3",
+ "o3-mini",
+ "o4-mini",
+ "o1-preview",
+ "o1-preview-2024-09-12",
+ "o1-mini",
+ "o1-mini-2024-09-12",
+ "gpt-4o-realtime-preview-2024-10-01",
+ "gpt-4o-realtime-preview-2024-12-17",
+ "gpt-4o-mini-realtime-preview-2024-12-17",
+ "gpt-4o-mini-2024-07-18",
+ "gpt-4o-mini",
+ "gpt-4o",
+ "gpt-4o-2024-05-13",
+ "gpt-4o-2024-08-06",
+ "gpt-4o-2024-11-20",
+ "gpt-4-turbo",
+ "gpt-4-turbo-2024-04-09",
+ "gpt-4-turbo-preview",
+ "gpt-4-0125-preview",
+ "gpt-4-1106-preview",
+ "gpt-4",
+ "gpt-4-0613",
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-0125",
+ "gpt-3.5-turbo-1106",
+ "gpt-3.5-turbo-16k",
+ "gpt-3.5-turbo-0613",
+ "gpt-4.1-2025-04-14:westus",
+ "gpt-4.1-2025-04-14:eastus2",
+ "gpt-4.1-2025-04-14:eastus",
+ "gpt-4.1-2025-04-14:westus3",
+ "gpt-4.1-2025-04-14:northcentralus",
+ "gpt-4.1-2025-04-14:southcentralus",
+ "gpt-4.1-mini-2025-04-14:westus",
+ "gpt-4.1-mini-2025-04-14:eastus2",
+ "gpt-4.1-mini-2025-04-14:eastus",
+ "gpt-4.1-mini-2025-04-14:westus3",
+ "gpt-4.1-mini-2025-04-14:northcentralus",
+ "gpt-4.1-mini-2025-04-14:southcentralus",
+ "gpt-4.1-nano-2025-04-14:westus",
+ "gpt-4.1-nano-2025-04-14:eastus2",
+ "gpt-4.1-nano-2025-04-14:westus3",
+ "gpt-4.1-nano-2025-04-14:northcentralus",
+ "gpt-4.1-nano-2025-04-14:southcentralus",
+ "gpt-4o-2024-11-20:swedencentral",
+ "gpt-4o-2024-11-20:westus",
+ "gpt-4o-2024-11-20:eastus2",
+ "gpt-4o-2024-11-20:eastus",
+ "gpt-4o-2024-11-20:westus3",
+ "gpt-4o-2024-11-20:southcentralus",
+ "gpt-4o-2024-08-06:westus",
+ "gpt-4o-2024-08-06:westus3",
+ "gpt-4o-2024-08-06:eastus",
+ "gpt-4o-2024-08-06:eastus2",
+ "gpt-4o-2024-08-06:northcentralus",
+ "gpt-4o-2024-08-06:southcentralus",
+ "gpt-4o-mini-2024-07-18:westus",
+ "gpt-4o-mini-2024-07-18:westus3",
+ "gpt-4o-mini-2024-07-18:eastus",
+ "gpt-4o-mini-2024-07-18:eastus2",
+ "gpt-4o-mini-2024-07-18:northcentralus",
+ "gpt-4o-mini-2024-07-18:southcentralus",
+ "gpt-4o-2024-05-13:eastus2",
+ "gpt-4o-2024-05-13:eastus",
+ "gpt-4o-2024-05-13:northcentralus",
+ "gpt-4o-2024-05-13:southcentralus",
+ "gpt-4o-2024-05-13:westus3",
+ "gpt-4o-2024-05-13:westus",
+ "gpt-4-turbo-2024-04-09:eastus2",
+ "gpt-4-0125-preview:eastus",
+ "gpt-4-0125-preview:northcentralus",
+ "gpt-4-0125-preview:southcentralus",
+ "gpt-4-1106-preview:australia",
+ "gpt-4-1106-preview:canadaeast",
+ "gpt-4-1106-preview:france",
+ "gpt-4-1106-preview:india",
+ "gpt-4-1106-preview:norway",
+ "gpt-4-1106-preview:swedencentral",
+ "gpt-4-1106-preview:uk",
+ "gpt-4-1106-preview:westus",
+ "gpt-4-1106-preview:westus3",
+ "gpt-4-0613:canadaeast",
+ "gpt-3.5-turbo-0125:canadaeast",
+ "gpt-3.5-turbo-0125:northcentralus",
+ "gpt-3.5-turbo-0125:southcentralus",
+ "gpt-3.5-turbo-1106:canadaeast",
+ "gpt-3.5-turbo-1106:westus"
+ ]
+ }
+ },
+ "toolStrictCompatibilityMode": {
"type": "string",
+ "description": "Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip.\n\n- `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation.\n- `strip-unsupported-validation` will keep the parameters but strip unsupported validation.\n\n@default `strip-unsupported-validation`",
"enum": [
- "deep-seek"
+ "strip-parameters-with-unsupported-validation",
+ "strip-unsupported-validation"
]
},
"temperature": {
@@ -9725,89 +12201,20 @@
},
"emotionRecognitionEnabled": {
"type": "boolean",
- "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
- },
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
- }
- },
- "required": [
- "model",
- "provider"
- ]
- },
- "GeminiMultimodalLivePrebuiltVoiceConfig": {
- "type": "object",
- "properties": {
- "voiceName": {
- "type": "string",
- "enum": [
- "Puck",
- "Charon",
- "Kore",
- "Fenrir",
- "Aoede"
- ]
- }
- },
- "required": [
- "voiceName"
- ]
- },
- "GeminiMultimodalLiveVoiceConfig": {
- "type": "object",
- "properties": {
- "prebuiltVoiceConfig": {
- "$ref": "#/components/schemas/GeminiMultimodalLivePrebuiltVoiceConfig"
- }
- },
- "required": [
- "prebuiltVoiceConfig"
- ]
- },
- "GeminiMultimodalLiveSpeechConfig": {
- "type": "object",
- "properties": {
- "voiceConfig": {
- "$ref": "#/components/schemas/GeminiMultimodalLiveVoiceConfig"
- }
- },
- "required": [
- "voiceConfig"
- ]
- },
- "GoogleRealtimeConfig": {
- "type": "object",
- "properties": {
- "topP": {
- "type": "number",
- "description": "This is the nucleus sampling parameter that controls the cumulative probability of tokens considered during text generation.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
- },
- "topK": {
- "type": "number",
- "description": "This is the top-k sampling parameter that limits the number of highest probability tokens considered during text generation.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
- },
- "presencePenalty": {
- "type": "number",
- "description": "This is the presence penalty parameter that influences the model's likelihood to repeat information by penalizing tokens based on their presence in the text.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
+ "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
},
- "frequencyPenalty": {
+ "numFastTurns": {
"type": "number",
- "description": "This is the frequency penalty parameter that influences the model's likelihood to repeat tokens by penalizing them based on their frequency in the text.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API."
- },
- "speechConfig": {
- "description": "This is the speech configuration object that defines the voice settings to be used for the model's speech output.\nOnly applicable with the Gemini Flash 2.0 Multimodal Live API.",
- "allOf": [
- {
- "$ref": "#/components/schemas/GeminiMultimodalLiveSpeechConfig"
- }
- ]
+ "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
+ "minimum": 0
}
- }
+ },
+ "required": [
+ "provider",
+ "model"
+ ]
},
- "GoogleModel": {
+ "OpenRouterModel": {
"type": "object",
"properties": {
"messages": {
@@ -9822,6 +12229,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9830,29 +12249,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -9863,12 +12282,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -9893,37 +12328,15 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
- "model": {
- "type": "string",
- "description": "This is the Google model that will be used.",
- "enum": [
- "gemini-2.0-flash-thinking-exp",
- "gemini-2.0-pro-exp-02-05",
- "gemini-2.0-flash",
- "gemini-2.0-flash-lite",
- "gemini-2.0-flash-lite-preview-02-05",
- "gemini-2.0-flash-exp",
- "gemini-2.0-flash-realtime-exp",
- "gemini-1.5-flash",
- "gemini-1.5-flash-002",
- "gemini-1.5-pro",
- "gemini-1.5-pro-002",
- "gemini-1.0-pro"
- ]
- },
"provider": {
"type": "string",
"enum": [
- "google"
+ "openrouter"
]
},
- "realtimeConfig": {
- "description": "This is the session configuration for the Gemini Flash 2.0 Multimodal Live API.\nOnly applicable if the model `gemini-2.0-flash-realtime-exp` is selected.",
- "allOf": [
- {
- "$ref": "#/components/schemas/GoogleRealtimeConfig"
- }
- ]
+ "model": {
+ "type": "string",
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
},
"temperature": {
"type": "number",
@@ -9948,11 +12361,11 @@
}
},
"required": [
- "model",
- "provider"
+ "provider",
+ "model"
]
},
- "GroqModel": {
+ "PerplexityAIModel": {
"type": "object",
"properties": {
"messages": {
@@ -9967,6 +12380,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -9975,29 +12400,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -10008,12 +12433,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -10038,26 +12479,15 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
- "model": {
+ "provider": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
"enum": [
- "deepseek-r1-distill-llama-70b",
- "llama-3.3-70b-versatile",
- "llama-3.1-405b-reasoning",
- "llama-3.1-70b-versatile",
- "llama-3.1-8b-instant",
- "mixtral-8x7b-32768",
- "llama3-8b-8192",
- "llama3-70b-8192",
- "gemma2-9b-it"
+ "perplexity-ai"
]
},
- "provider": {
+ "model": {
"type": "string",
- "enum": [
- "groq"
- ]
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
},
"temperature": {
"type": "number",
@@ -10082,11 +12512,11 @@
}
},
"required": [
- "model",
- "provider"
+ "provider",
+ "model"
]
},
- "InflectionAIModel": {
+ "TogetherAIModel": {
"type": "object",
"properties": {
"messages": {
@@ -10101,6 +12531,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -10109,29 +12551,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -10142,12 +12584,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -10172,18 +12630,15 @@
"type": "string",
"description": "This is the ID of the knowledge base the model will use."
},
- "model": {
+ "provider": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b",
"enum": [
- "inflection_3_pi"
+ "together-ai"
]
},
- "provider": {
+ "model": {
"type": "string",
- "enum": [
- "inflection-ai"
- ]
+ "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
},
"temperature": {
"type": "number",
@@ -10208,491 +12663,666 @@
}
},
"required": [
- "model",
- "provider"
+ "provider",
+ "model"
]
},
- "OpenAIModel": {
+ "HangupNode": {
"type": "object",
"properties": {
- "messages": {
- "description": "This is the starting state for the conversation.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/OpenAIMessage"
- }
+ "type": {
+ "type": "string",
+ "enum": [
+ "hangup"
+ ]
},
- "tools": {
- "type": "array",
- "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
- {
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
- },
- {
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
- }
- ]
- }
+ "name": {
+ "type": "string",
+ "maxLength": 80
},
- "toolIds": {
- "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
- "type": "array",
- "items": {
- "type": "string"
- }
+ "isStart": {
+ "type": "boolean",
+ "description": "This is whether or not the node is the start of the workflow."
+ },
+ "metadata": {
+ "type": "object",
+ "description": "This is for metadata you want to store on the task."
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "WorkflowOpenAIModel": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "This is the provider of the model (`openai`).",
+ "enum": [
+ "openai"
+ ]
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the OpenAI model that will be used.\n\nWhen using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense.\nThis is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.",
+ "maxLength": 100,
+ "enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
+ "gpt-4.1",
+ "gpt-4.1-mini",
+ "gpt-4.1-nano",
+ "gpt-4.5-preview",
+ "chatgpt-4o-latest",
+ "o3",
+ "o3-mini",
+ "o4-mini",
+ "o1-preview",
+ "o1-preview-2024-09-12",
+ "o1-mini",
+ "o1-mini-2024-09-12",
+ "gpt-4o-realtime-preview-2024-10-01",
+ "gpt-4o-realtime-preview-2024-12-17",
+ "gpt-4o-mini-realtime-preview-2024-12-17",
+ "gpt-4o-mini-2024-07-18",
+ "gpt-4o-mini",
+ "gpt-4o",
+ "gpt-4o-2024-05-13",
+ "gpt-4o-2024-08-06",
+ "gpt-4o-2024-11-20",
+ "gpt-4-turbo",
+ "gpt-4-turbo-2024-04-09",
+ "gpt-4-turbo-preview",
+ "gpt-4-0125-preview",
+ "gpt-4-1106-preview",
+ "gpt-4",
+ "gpt-4-0613",
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-0125",
+ "gpt-3.5-turbo-1106",
+ "gpt-3.5-turbo-16k",
+ "gpt-3.5-turbo-0613",
+ "gpt-4.1-2025-04-14:westus",
+ "gpt-4.1-2025-04-14:eastus2",
+ "gpt-4.1-2025-04-14:eastus",
+ "gpt-4.1-2025-04-14:westus3",
+ "gpt-4.1-2025-04-14:northcentralus",
+ "gpt-4.1-2025-04-14:southcentralus",
+ "gpt-4.1-mini-2025-04-14:westus",
+ "gpt-4.1-mini-2025-04-14:eastus2",
+ "gpt-4.1-mini-2025-04-14:eastus",
+ "gpt-4.1-mini-2025-04-14:westus3",
+ "gpt-4.1-mini-2025-04-14:northcentralus",
+ "gpt-4.1-mini-2025-04-14:southcentralus",
+ "gpt-4.1-nano-2025-04-14:westus",
+ "gpt-4.1-nano-2025-04-14:eastus2",
+ "gpt-4.1-nano-2025-04-14:westus3",
+ "gpt-4.1-nano-2025-04-14:northcentralus",
+ "gpt-4.1-nano-2025-04-14:southcentralus",
+ "gpt-4o-2024-11-20:swedencentral",
+ "gpt-4o-2024-11-20:westus",
+ "gpt-4o-2024-11-20:eastus2",
+ "gpt-4o-2024-11-20:eastus",
+ "gpt-4o-2024-11-20:westus3",
+ "gpt-4o-2024-11-20:southcentralus",
+ "gpt-4o-2024-08-06:westus",
+ "gpt-4o-2024-08-06:westus3",
+ "gpt-4o-2024-08-06:eastus",
+ "gpt-4o-2024-08-06:eastus2",
+ "gpt-4o-2024-08-06:northcentralus",
+ "gpt-4o-2024-08-06:southcentralus",
+ "gpt-4o-mini-2024-07-18:westus",
+ "gpt-4o-mini-2024-07-18:westus3",
+ "gpt-4o-mini-2024-07-18:eastus",
+ "gpt-4o-mini-2024-07-18:eastus2",
+ "gpt-4o-mini-2024-07-18:northcentralus",
+ "gpt-4o-mini-2024-07-18:southcentralus",
+ "gpt-4o-2024-05-13:eastus2",
+ "gpt-4o-2024-05-13:eastus",
+ "gpt-4o-2024-05-13:northcentralus",
+ "gpt-4o-2024-05-13:southcentralus",
+ "gpt-4o-2024-05-13:westus3",
+ "gpt-4o-2024-05-13:westus",
+ "gpt-4-turbo-2024-04-09:eastus2",
+ "gpt-4-0125-preview:eastus",
+ "gpt-4-0125-preview:northcentralus",
+ "gpt-4-0125-preview:southcentralus",
+ "gpt-4-1106-preview:australia",
+ "gpt-4-1106-preview:canadaeast",
+ "gpt-4-1106-preview:france",
+ "gpt-4-1106-preview:india",
+ "gpt-4-1106-preview:norway",
+ "gpt-4-1106-preview:swedencentral",
+ "gpt-4-1106-preview:uk",
+ "gpt-4-1106-preview:westus",
+ "gpt-4-1106-preview:westus3",
+ "gpt-4-0613:canadaeast",
+ "gpt-3.5-turbo-0125:canadaeast",
+ "gpt-3.5-turbo-0125:northcentralus",
+ "gpt-3.5-turbo-0125:southcentralus",
+ "gpt-3.5-turbo-1106:canadaeast",
+ "gpt-3.5-turbo-1106:westus"
+ ]
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature of the model.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max tokens of the model.",
+ "minimum": 50,
+ "maximum": 10000
+ }
+ },
+ "required": [
+ "provider",
+ "model"
+ ]
+ },
+ "WorkflowAnthropicModel": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "This is the provider of the model (`anthropic`).",
+ "enum": [
+ "anthropic"
+ ]
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the specific model that will be used.",
+ "maxLength": 100,
+ "enum": [
+ "claude-3-opus-20240229",
+ "claude-3-sonnet-20240229",
+ "claude-3-haiku-20240307",
+ "claude-3-5-sonnet-20240620",
+ "claude-3-5-sonnet-20241022",
+ "claude-3-5-haiku-20241022",
+ "claude-3-7-sonnet-20250219",
+ "claude-opus-4-20250514",
+ "claude-sonnet-4-20250514"
+ ]
+ },
+ "thinking": {
+ "description": "This is the optional configuration for Anthropic's thinking feature.\n\n- Only applicable for `claude-3-7-sonnet-20250219` model.\n- If provided, `maxTokens` must be greater than `thinking.budgetTokens`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/AnthropicThinkingConfig"
+ }
+ ]
+ },
+ "temperature": {
+ "type": "number",
+ "description": "This is the temperature of the model.",
+ "minimum": 0,
+ "maximum": 2
+ },
+ "maxTokens": {
+ "type": "number",
+ "description": "This is the max tokens of the model.",
+ "minimum": 50,
+ "maximum": 10000
+ }
+ },
+ "required": [
+ "provider",
+ "model"
+ ]
+ },
+ "GlobalNodePlan": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "This is the flag to determine if this node is a global node\n\n@default false",
+ "default": false
+ },
+ "enterCondition": {
+ "type": "string",
+ "description": "This is the condition that will be checked to determine if the global node should be executed.\n\n@default ''",
+ "maxLength": 1000,
+ "default": ""
+ }
+ }
+ },
+ "VariableExtractionPlan": {
+ "type": "object",
+ "properties": {}
+ },
+ "ConversationNode": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the Conversation node. This can be used to start a conversation with the customer.\n\nThe flow is:\n- Workflow starts the conversation node\n- Model is active with the `prompt` and global context.\n- Model will call a tool to exit this node.\n- Workflow will extract variables from the conversation.\n- Workflow continues.",
+ "enum": [
+ "conversation"
+ ]
+ },
+ "model": {
+ "description": "This is the model for the Conversation Task.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOpenAIModel",
+ "title": "OpenAI"
+ },
+ {
+ "$ref": "#/components/schemas/WorkflowAnthropicModel",
+ "title": "Anthropic"
+ }
+ ]
+ },
+ "transcriber": {
+ "description": "These are the options for the assistant's transcriber.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AssemblyAITranscriber",
+ "title": "AssemblyAITranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/AzureSpeechTranscriber",
+ "title": "AzureSpeechTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/CustomTranscriber",
+ "title": "CustomTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/DeepgramTranscriber",
+ "title": "DeepgramTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/ElevenLabsTranscriber",
+ "title": "ElevenLabsTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/GladiaTranscriber",
+ "title": "GladiaTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/GoogleTranscriber",
+ "title": "GoogleTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/SpeechmaticsTranscriber",
+ "title": "SpeechmaticsTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/TalkscriberTranscriber",
+ "title": "TalkscriberTranscriber"
+ },
+ {
+ "$ref": "#/components/schemas/OpenAITranscriber",
+ "title": "OpenAITranscriber"
+ }
+ ]
+ },
+ "voice": {
+ "description": "These are the options for the assistant's voice.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AzureVoice",
+ "title": "AzureVoice"
+ },
+ {
+ "$ref": "#/components/schemas/CartesiaVoice",
+ "title": "CartesiaVoice"
+ },
+ {
+ "$ref": "#/components/schemas/CustomVoice",
+ "title": "CustomVoice"
+ },
+ {
+ "$ref": "#/components/schemas/DeepgramVoice",
+ "title": "DeepgramVoice"
+ },
+ {
+ "$ref": "#/components/schemas/ElevenLabsVoice",
+ "title": "ElevenLabsVoice"
+ },
+ {
+ "$ref": "#/components/schemas/HumeVoice",
+ "title": "HumeVoice"
+ },
+ {
+ "$ref": "#/components/schemas/LMNTVoice",
+ "title": "LMNTVoice"
+ },
+ {
+ "$ref": "#/components/schemas/NeuphonicVoice",
+ "title": "NeuphonicVoice"
+ },
+ {
+ "$ref": "#/components/schemas/OpenAIVoice",
+ "title": "OpenAIVoice"
+ },
+ {
+ "$ref": "#/components/schemas/PlayHTVoice",
+ "title": "PlayHTVoice"
+ },
+ {
+ "$ref": "#/components/schemas/RimeAIVoice",
+ "title": "RimeAIVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SmallestAIVoice",
+ "title": "SmallestAIVoice"
+ },
+ {
+ "$ref": "#/components/schemas/TavusVoice",
+ "title": "TavusVoice"
+ },
+ {
+ "$ref": "#/components/schemas/VapiVoice",
+ "title": "VapiVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SesameVoice",
+ "title": "SesameVoice"
+ }
+ ]
+ },
+ "prompt": {
+ "type": "string",
+ "maxLength": 5000
+ },
+ "globalNodePlan": {
+ "description": "This is the plan for the global node.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/GlobalNodePlan"
+ }
+ ]
+ },
+ "variableExtractionPlan": {
+ "description": "This is the plan that controls the variable extraction from the user's response.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/VariableExtractionPlan"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 80
+ },
+ "isStart": {
+ "type": "boolean",
+ "description": "This is whether or not the node is the start of the workflow."
+ },
+ "metadata": {
+ "type": "object",
+ "description": "This is for metadata you want to store on the task."
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "ToolNode": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the Tool node. This can be used to call a tool in your workflow.\n\nThe flow is:\n- Workflow starts the tool node\n- Model is called to extract parameters needed by the tool from the conversation history\n- Tool is called with the parameters\n- Server returns a response\n- Workflow continues with the response",
+ "enum": [
+ "tool"
+ ]
},
- "knowledgeBase": {
- "description": "These are the options for the knowledge base.",
+ "tool": {
+ "description": "This is the tool to call. To use an existing tool, send `toolId` instead.",
"oneOf": [
{
- "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
- "title": "Custom"
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
},
- "knowledgeBaseId": {
+ "toolId": {
"type": "string",
- "description": "This is the ID of the knowledge base the model will use."
+ "description": "This is the tool to call. To use a transient tool, send `tool` instead."
},
- "provider": {
+ "name": {
+ "type": "string",
+ "maxLength": 80
+ },
+ "isStart": {
+ "type": "boolean",
+ "description": "This is whether or not the node is the start of the workflow."
+ },
+ "metadata": {
+ "type": "object",
+ "description": "This is for metadata you want to store on the task."
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "AIEdgeCondition": {
+ "type": "object",
+ "properties": {
+ "type": {
"type": "string",
- "description": "This is the provider that will be used for the model.",
"enum": [
- "openai"
+ "ai"
]
},
- "model": {
+ "prompt": {
+ "type": "string",
+ "description": "This is the prompt for the AI edge condition. It should evaluate to a boolean.",
+ "maxLength": 1000
+ }
+ },
+ "required": [
+ "type",
+ "prompt"
+ ]
+ },
+ "LogicEdgeCondition": {
+ "type": "object",
+ "properties": {
+ "type": {
"type": "string",
- "description": "This is the OpenAI model that will be used.",
"enum": [
- "gpt-4.1",
- "gpt-4.1-mini",
- "gpt-4.1-nano",
- "gpt-4.5-preview",
- "chatgpt-4o-latest",
- "o3-mini",
- "o1-preview",
- "o1-preview-2024-09-12",
- "o1-mini",
- "o1-mini-2024-09-12",
- "gpt-4o-realtime-preview-2024-10-01",
- "gpt-4o-realtime-preview-2024-12-17",
- "gpt-4o-mini-realtime-preview-2024-12-17",
- "gpt-4o-mini-2024-07-18",
- "gpt-4o-mini",
- "gpt-4o",
- "gpt-4o-2024-05-13",
- "gpt-4o-2024-08-06",
- "gpt-4o-2024-11-20",
- "gpt-4-turbo",
- "gpt-4-turbo-2024-04-09",
- "gpt-4-turbo-preview",
- "gpt-4-0125-preview",
- "gpt-4-1106-preview",
- "gpt-4",
- "gpt-4-0613",
- "gpt-3.5-turbo",
- "gpt-3.5-turbo-0125",
- "gpt-3.5-turbo-1106",
- "gpt-3.5-turbo-16k",
- "gpt-3.5-turbo-0613"
+ "logic"
]
},
- "fallbackModels": {
- "type": "array",
- "description": "These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.",
+ "liquid": {
+ "type": "string",
+ "maxLength": 1000
+ }
+ },
+ "required": [
+ "type",
+ "liquid"
+ ]
+ },
+ "FailedEdgeCondition": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
"enum": [
- "gpt-4.1",
- "gpt-4.1-mini",
- "gpt-4.1-nano",
- "gpt-4.5-preview",
- "chatgpt-4o-latest",
- "o3-mini",
- "o1-preview",
- "o1-preview-2024-09-12",
- "o1-mini",
- "o1-mini-2024-09-12",
- "gpt-4o-realtime-preview-2024-10-01",
- "gpt-4o-realtime-preview-2024-12-17",
- "gpt-4o-mini-realtime-preview-2024-12-17",
- "gpt-4o-mini-2024-07-18",
- "gpt-4o-mini",
- "gpt-4o",
- "gpt-4o-2024-05-13",
- "gpt-4o-2024-08-06",
- "gpt-4o-2024-11-20",
- "gpt-4-turbo",
- "gpt-4-turbo-2024-04-09",
- "gpt-4-turbo-preview",
- "gpt-4-0125-preview",
- "gpt-4-1106-preview",
- "gpt-4",
- "gpt-4-0613",
- "gpt-3.5-turbo",
- "gpt-3.5-turbo-0125",
- "gpt-3.5-turbo-1106",
- "gpt-3.5-turbo-16k",
- "gpt-3.5-turbo-0613"
- ],
- "example": [
- "gpt-4-0125-preview",
- "gpt-4-0613"
- ],
- "items": {
- "type": "string",
- "enum": [
- "gpt-4.1",
- "gpt-4.1-mini",
- "gpt-4.1-nano",
- "gpt-4.5-preview",
- "chatgpt-4o-latest",
- "o3-mini",
- "o1-preview",
- "o1-preview-2024-09-12",
- "o1-mini",
- "o1-mini-2024-09-12",
- "gpt-4o-realtime-preview-2024-10-01",
- "gpt-4o-realtime-preview-2024-12-17",
- "gpt-4o-mini-realtime-preview-2024-12-17",
- "gpt-4o-mini-2024-07-18",
- "gpt-4o-mini",
- "gpt-4o",
- "gpt-4o-2024-05-13",
- "gpt-4o-2024-08-06",
- "gpt-4o-2024-11-20",
- "gpt-4-turbo",
- "gpt-4-turbo-2024-04-09",
- "gpt-4-turbo-preview",
- "gpt-4-0125-preview",
- "gpt-4-1106-preview",
- "gpt-4",
- "gpt-4-0613",
- "gpt-3.5-turbo",
- "gpt-3.5-turbo-0125",
- "gpt-3.5-turbo-1106",
- "gpt-3.5-turbo-16k",
- "gpt-3.5-turbo-0613"
- ]
- }
- },
- "temperature": {
- "type": "number",
- "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
- "minimum": 0,
- "maximum": 2
- },
- "maxTokens": {
- "type": "number",
- "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
- "minimum": 50,
- "maximum": 10000
- },
- "emotionRecognitionEnabled": {
- "type": "boolean",
- "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
- },
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
+ "failed"
+ ]
}
},
"required": [
- "provider",
- "model"
+ "type"
]
},
- "OpenRouterModel": {
+ "Edge": {
"type": "object",
"properties": {
- "messages": {
- "description": "This is the starting state for the conversation.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/OpenAIMessage"
- }
- },
- "tools": {
- "type": "array",
- "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
- {
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
- },
- {
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
- }
- ]
- }
- },
- "toolIds": {
- "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "knowledgeBase": {
- "description": "These are the options for the knowledge base.",
+ "condition": {
"oneOf": [
{
- "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
- "title": "Custom"
+ "$ref": "#/components/schemas/AIEdgeCondition",
+ "title": "AIEdgeCondition"
+ },
+ {
+ "$ref": "#/components/schemas/LogicEdgeCondition",
+ "title": "LogicEdgeCondition"
+ },
+ {
+ "$ref": "#/components/schemas/FailedEdgeCondition",
+ "title": "FailedEdgeCondition"
}
]
},
- "knowledgeBaseId": {
- "type": "string",
- "description": "This is the ID of the knowledge base the model will use."
- },
- "provider": {
+ "from": {
"type": "string",
- "enum": [
- "openrouter"
- ]
+ "maxLength": 80
},
- "model": {
+ "to": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
- },
- "temperature": {
- "type": "number",
- "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
- "minimum": 0,
- "maximum": 2
- },
- "maxTokens": {
- "type": "number",
- "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
- "minimum": 50,
- "maximum": 10000
- },
- "emotionRecognitionEnabled": {
- "type": "boolean",
- "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
+ "maxLength": 80
},
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
+ "metadata": {
+ "type": "object",
+ "description": "This is for metadata you want to store on the edge."
}
},
"required": [
- "provider",
- "model"
+ "from",
+ "to"
]
},
- "PerplexityAIModel": {
+ "WorkflowUserEditable": {
"type": "object",
"properties": {
- "messages": {
- "description": "This is the starting state for the conversation.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/OpenAIMessage"
- }
- },
- "tools": {
+ "nodes": {
"type": "array",
- "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
+ "$ref": "#/components/schemas/ConversationNode",
+ "title": "ConversationNode"
},
{
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
- },
- {
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
- },
- {
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
- },
- {
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
- },
- {
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
- },
- {
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
+ "$ref": "#/components/schemas/ToolNode",
+ "title": "ToolNode"
}
]
}
},
- "toolIds": {
- "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "knowledgeBase": {
- "description": "These are the options for the knowledge base.",
+ "model": {
"oneOf": [
{
- "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
- "title": "Custom"
+ "$ref": "#/components/schemas/WorkflowOpenAIModel",
+ "title": "WorkflowOpenAIModel"
+ },
+ {
+ "$ref": "#/components/schemas/WorkflowAnthropicModel",
+ "title": "WorkflowAnthropicModel"
}
]
},
- "knowledgeBaseId": {
+ "name": {
"type": "string",
- "description": "This is the ID of the knowledge base the model will use."
+ "maxLength": 80
},
- "provider": {
- "type": "string",
- "enum": [
- "perplexity-ai"
- ]
+ "edges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Edge"
+ }
},
- "model": {
+ "globalPrompt": {
"type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
- },
- "temperature": {
- "type": "number",
- "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
- "minimum": 0,
- "maximum": 2
- },
- "maxTokens": {
- "type": "number",
- "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
- "minimum": 50,
- "maximum": 10000
- },
- "emotionRecognitionEnabled": {
- "type": "boolean",
- "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
- },
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
+ "maxLength": 5000
}
},
"required": [
- "provider",
- "model"
+ "nodes",
+ "name",
+ "edges"
]
},
- "TogetherAIModel": {
+ "VapiModel": {
"type": "object",
"properties": {
"messages": {
@@ -10707,6 +13337,18 @@
"description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
"items": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -10715,29 +13357,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -10748,12 +13390,28 @@
"title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
"$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
"title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -10781,7 +13439,19 @@
"provider": {
"type": "string",
"enum": [
- "together-ai"
+ "vapi"
+ ]
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead."
+ },
+ "workflow": {
+ "description": "This is the workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowUserEditable"
+ }
]
},
"model": {
@@ -10815,223 +13485,7 @@
"model"
]
},
- "AIEdgeCondition": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "ai"
- ]
- },
- "prompt": {
- "type": "string",
- "description": "This is the prompt for the AI edge condition. It should evaluate to a boolean.",
- "maxLength": 1000
- }
- },
- "required": [
- "type",
- "prompt"
- ]
- },
- "LogicEdgeCondition": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "logic"
- ]
- },
- "liquid": {
- "type": "string",
- "maxLength": 100
- }
- },
- "required": [
- "type",
- "liquid"
- ]
- },
- "FailedEdgeCondition": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "failed"
- ]
- }
- },
- "required": [
- "type"
- ]
- },
- "Edge": {
- "type": "object",
- "properties": {
- "condition": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/AIEdgeCondition",
- "title": "AIEdgeCondition"
- },
- {
- "$ref": "#/components/schemas/LogicEdgeCondition",
- "title": "LogicEdgeCondition"
- },
- {
- "$ref": "#/components/schemas/FailedEdgeCondition",
- "title": "FailedEdgeCondition"
- }
- ]
- },
- "from": {
- "type": "string",
- "maxLength": 80
- },
- "to": {
- "type": "string",
- "maxLength": 80
- },
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the edge."
- }
- },
- "required": [
- "from",
- "to"
- ]
- },
- "Workflow": {
- "type": "object",
- "properties": {
- "nodes": {
- "type": "array",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/Say",
- "title": "Say"
- },
- {
- "$ref": "#/components/schemas/Gather",
- "title": "Gather"
- },
- {
- "$ref": "#/components/schemas/ApiRequest",
- "title": "ApiRequest"
- },
- {
- "$ref": "#/components/schemas/Hangup",
- "title": "Hangup"
- },
- {
- "$ref": "#/components/schemas/Transfer",
- "title": "Transfer"
- }
- ]
- }
- },
- "model": {
- "description": "These are the options for the workflow's LLM.",
- "oneOf": [
- {
- "$ref": "#/components/schemas/AnthropicModel",
- "title": "Anthropic"
- },
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
- {
- "$ref": "#/components/schemas/CerebrasModel",
- "title": "Cerebras"
- },
- {
- "$ref": "#/components/schemas/CustomLLMModel",
- "title": "CustomLLM"
- },
- {
- "$ref": "#/components/schemas/DeepInfraModel",
- "title": "DeepInfra"
- },
- {
- "$ref": "#/components/schemas/DeepSeekModel",
- "title": "DeepSeek"
- },
- {
- "$ref": "#/components/schemas/GoogleModel",
- "title": "Google"
- },
- {
- "$ref": "#/components/schemas/GroqModel",
- "title": "Groq"
- },
- {
- "$ref": "#/components/schemas/InflectionAIModel",
- "title": "InflectionAI"
- },
- {
- "$ref": "#/components/schemas/OpenAIModel",
- "title": "OpenAI"
- },
- {
- "$ref": "#/components/schemas/OpenRouterModel",
- "title": "OpenRouter"
- },
- {
- "$ref": "#/components/schemas/PerplexityAIModel",
- "title": "PerplexityAI"
- },
- {
- "$ref": "#/components/schemas/TogetherAIModel",
- "title": "Together"
- },
- {
- "$ref": "#/components/schemas/XaiModel",
- "title": "XAI"
- }
- ]
- },
- "id": {
- "type": "string"
- },
- "orgId": {
- "type": "string"
- },
- "createdAt": {
- "format": "date-time",
- "type": "string"
- },
- "updatedAt": {
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "type": "string",
- "maxLength": 80
- },
- "edges": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Edge"
- }
- }
- },
- "required": [
- "nodes",
- "id",
- "orgId",
- "createdAt",
- "updatedAt",
- "name",
- "edges"
- ]
- },
- "VapiModel": {
+ "XaiModel": {
"type": "object",
"properties": {
"messages": {
@@ -11047,187 +13501,80 @@
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
},
{
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
},
{
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
},
{
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
+ "$ref": "#/components/schemas/CreateDtmfToolDTO",
+ "title": "DtmfTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateEndCallToolDTO",
+ "title": "EndCallTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateFunctionToolDTO",
+ "title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateQueryToolDTO",
- "title": "QueryTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
"title": "GoogleCalendarCheckAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
- }
- ]
- }
- },
- "toolIds": {
- "description": "These are the tools that the assistant can use during the call. To use transient tools, use `tools`.\n\nBoth `tools` and `toolIds` can be used together.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "knowledgeBase": {
- "description": "These are the options for the knowledge base.",
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateCustomKnowledgeBaseDTO",
- "title": "Custom"
- }
- ]
- },
- "knowledgeBaseId": {
- "type": "string",
- "description": "This is the ID of the knowledge base the model will use."
- },
- "provider": {
- "type": "string",
- "enum": [
- "vapi"
- ]
- },
- "workflowId": {
- "type": "string",
- "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead."
- },
- "workflow": {
- "description": "This is the workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Workflow"
- }
- ]
- },
- "model": {
- "type": "string",
- "description": "This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b"
- },
- "temperature": {
- "type": "number",
- "description": "This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.",
- "minimum": 0,
- "maximum": 2
- },
- "maxTokens": {
- "type": "number",
- "description": "This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.",
- "minimum": 50,
- "maximum": 10000
- },
- "emotionRecognitionEnabled": {
- "type": "boolean",
- "description": "This determines whether we detect user's emotion while they speak and send it as an additional info to model.\n\nDefault `false` because the model is usually are good at understanding the user's emotion from text.\n\n@default false"
- },
- "numFastTurns": {
- "type": "number",
- "description": "This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.\n\nDefault is 0.\n\n@default 0",
- "minimum": 0
- }
- },
- "required": [
- "provider",
- "model"
- ]
- },
- "XaiModel": {
- "type": "object",
- "properties": {
- "messages": {
- "description": "This is the starting state for the conversation.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/OpenAIMessage"
- }
- },
- "tools": {
- "type": "array",
- "description": "These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.\n\nBoth `tools` and `toolIds` can be used together.",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/CreateDtmfToolDTO",
- "title": "DtmfTool"
- },
- {
- "$ref": "#/components/schemas/CreateEndCallToolDTO",
- "title": "EndCallTool"
- },
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
- {
- "$ref": "#/components/schemas/CreateFunctionToolDTO",
- "title": "FunctionTool"
- },
- {
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferTool"
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
},
{
"$ref": "#/components/schemas/CreateQueryToolDTO",
"title": "QueryTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
- "title": "GoogleCalendarCheckAvailabilityTool"
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
},
{
- "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
- "title": "SlackSendMessageTool"
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
}
@@ -11429,7 +13776,8 @@
"unit",
"percentage",
"phoneNumber",
- "number"
+ "number",
+ "stripAsterisk"
],
"items": {
"type": "string",
@@ -11449,7 +13797,8 @@
"unit",
"percentage",
"phoneNumber",
- "number"
+ "number",
+ "stripAsterisk"
]
}
}
@@ -11608,6 +13957,12 @@
"AzureVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -11718,6 +14073,12 @@
"CartesiaVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -11796,6 +14157,12 @@
"CustomVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used. Use `custom-voice` for providers that are not natively supported.",
@@ -11836,6 +14203,12 @@
"DeepgramVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -11866,10 +14239,6 @@
"arcas",
"aries",
"amalthea",
- "andromeda",
- "apollo",
- "arcas",
- "aries",
"asteria",
"athena",
"atlas",
@@ -11881,7 +14250,6 @@
"draco",
"electra",
"harmonia",
- "helena",
"hera",
"hermes",
"hyperion",
@@ -11902,7 +14270,6 @@
"pluto",
"saturn",
"selene",
- "thalia",
"theia",
"vesta",
"zeus"
@@ -11949,6 +14316,12 @@
"ElevenLabsVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12078,6 +14451,12 @@
"HumeVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12131,6 +14510,12 @@
"LMNTVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12187,6 +14572,12 @@
"NeuphonicVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12255,6 +14646,12 @@
"OpenAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12329,6 +14726,12 @@
"PlayHTVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12493,6 +14896,12 @@
"RimeAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12616,7 +15025,7 @@
},
"pauseBetweenBrackets": {
"type": "boolean",
- "description": "This is a flag that controls whether to add slight pauses using angle brackets. Example: “Hi. <200> I’d love to have a conversation with you.” adds a 200ms pause between the first and second sentences.",
+ "description": "This is a flag that controls whether to add slight pauses using angle brackets. Example: \"Hi. <200> I'd love to have a conversation with you.\" adds a 200ms pause between the first and second sentences.",
"example": false
},
"phonemizeBetweenBrackets": {
@@ -12656,9 +15065,66 @@
"voiceId"
]
},
+ "SesameVoice": {
+ "type": "object",
+ "properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
+ "provider": {
+ "type": "string",
+ "description": "This is the voice provider that will be used.",
+ "enum": [
+ "sesame"
+ ]
+ },
+ "voiceId": {
+ "type": "string",
+ "description": "This is the provider-specific ID that will be used.",
+ "title": "Sesame Voice ID. This should be either a name (a built-in voice) or a UUID (a custom voice)."
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the model that will be used.",
+ "enum": [
+ "csm-1b"
+ ]
+ },
+ "chunkPlan": {
+ "description": "This is the plan for chunking the model output before it is sent to the voice provider.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ChunkPlan"
+ }
+ ]
+ },
+ "fallbackPlan": {
+ "description": "This is the plan for voice provider fallbacks in the event that the primary voice provider fails.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/FallbackPlan"
+ }
+ ]
+ }
+ },
+ "required": [
+ "provider",
+ "voiceId",
+ "model"
+ ]
+ },
"SmallestAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12788,6 +15254,12 @@
"TavusVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12864,6 +15336,12 @@
"VapiVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -12876,6 +15354,7 @@
"description": "The voices provided by Vapi",
"enum": [
"Elliot",
+ "Kylie",
"Rohan",
"Lily",
"Savannah",
@@ -12894,52 +15373,6 @@
"maximum": 2,
"default": 1
},
- "language": {
- "type": "string",
- "description": "This is the language code (ISO 639-1) that will be used.\n\n@default 'en-US'",
- "enum": [
- "en-US",
- "en-GB",
- "en-AU",
- "en-CA",
- "ja",
- "zh",
- "de",
- "hi",
- "fr-FR",
- "fr-CA",
- "ko",
- "pt-BR",
- "pt-PT",
- "it",
- "es-ES",
- "es-MX",
- "id",
- "nl",
- "tr",
- "fil",
- "pl",
- "sv",
- "bg",
- "ro",
- "ar-SA",
- "ar-AE",
- "cs",
- "el",
- "fi",
- "hr",
- "ms",
- "sk",
- "da",
- "ta",
- "uk",
- "ru",
- "hu",
- "no",
- "vi"
- ],
- "default": "en-US"
- },
"chunkPlan": {
"description": "This is the plan for chunking the model output before it is sent to the voice provider.",
"allOf": [
@@ -12965,6 +15398,12 @@
"FallbackAzureVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13013,6 +15452,12 @@
"FallbackCartesiaVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13083,6 +15528,12 @@
"FallbackCustomVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used. Use `custom-voice` for providers that are not natively supported.",
@@ -13115,6 +15566,12 @@
"FallbackDeepgramVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13145,10 +15602,6 @@
"arcas",
"aries",
"amalthea",
- "andromeda",
- "apollo",
- "arcas",
- "aries",
"asteria",
"athena",
"atlas",
@@ -13160,7 +15613,6 @@
"draco",
"electra",
"harmonia",
- "helena",
"hera",
"hermes",
"hyperion",
@@ -13181,7 +15633,6 @@
"pluto",
"saturn",
"selene",
- "thalia",
"theia",
"vesta",
"zeus"
@@ -13220,6 +15671,12 @@
"FallbackElevenLabsVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13341,6 +15798,12 @@
"FallbackHumeVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13386,6 +15849,12 @@
"FallbackLMNTVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13434,6 +15903,12 @@
"FallbackNeuphonicVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13494,6 +15969,12 @@
"FallbackOpenAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13560,6 +16041,12 @@
"FallbackPlayHTVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13716,6 +16203,12 @@
"FallbackRimeAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13839,7 +16332,7 @@
},
"pauseBetweenBrackets": {
"type": "boolean",
- "description": "This is a flag that controls whether to add slight pauses using angle brackets. Example: “Hi. <200> I’d love to have a conversation with you.” adds a 200ms pause between the first and second sentences.",
+ "description": "This is a flag that controls whether to add slight pauses using angle brackets. Example: \"Hi. <200> I'd love to have a conversation with you.\" adds a 200ms pause between the first and second sentences.",
"example": false
},
"phonemizeBetweenBrackets": {
@@ -13871,9 +16364,58 @@
"voiceId"
]
},
+ "FallbackSesameVoice": {
+ "type": "object",
+ "properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
+ "provider": {
+ "type": "string",
+ "description": "This is the voice provider that will be used.",
+ "enum": [
+ "sesame"
+ ]
+ },
+ "voiceId": {
+ "type": "string",
+ "description": "This is the provider-specific ID that will be used.",
+ "title": "Sesame Voice ID. This should be either a name (a built-in voice) or a UUID (a custom voice)."
+ },
+ "model": {
+ "type": "string",
+ "description": "This is the model that will be used.",
+ "enum": [
+ "csm-1b"
+ ]
+ },
+ "chunkPlan": {
+ "description": "This is the plan for chunking the model output before it is sent to the voice provider.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ChunkPlan"
+ }
+ ]
+ }
+ },
+ "required": [
+ "provider",
+ "voiceId",
+ "model"
+ ]
+ },
"FallbackSmallestAIVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -13950,6 +16492,12 @@
"FallbackTavusVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -14018,6 +16566,12 @@
"FallbackVapiVoice": {
"type": "object",
"properties": {
+ "cachingEnabled": {
+ "type": "boolean",
+ "description": "This is the flag to toggle voice caching for the assistant.",
+ "example": true,
+ "default": true
+ },
"provider": {
"type": "string",
"description": "This is the voice provider that will be used.",
@@ -14030,6 +16584,7 @@
"description": "The voices provided by Vapi",
"enum": [
"Elliot",
+ "Kylie",
"Rohan",
"Lily",
"Savannah",
@@ -14048,52 +16603,6 @@
"maximum": 2,
"default": 1
},
- "language": {
- "type": "string",
- "description": "This is the language code (ISO 639-1) that will be used.\n\n@default 'en-US'",
- "enum": [
- "en-US",
- "en-GB",
- "en-AU",
- "en-CA",
- "ja",
- "zh",
- "de",
- "hi",
- "fr-FR",
- "fr-CA",
- "ko",
- "pt-BR",
- "pt-PT",
- "it",
- "es-ES",
- "es-MX",
- "id",
- "nl",
- "tr",
- "fil",
- "pl",
- "sv",
- "bg",
- "ro",
- "ar-SA",
- "ar-AE",
- "cs",
- "el",
- "fi",
- "hr",
- "ms",
- "sk",
- "da",
- "ta",
- "uk",
- "ru",
- "hu",
- "no",
- "vi"
- ],
- "default": "en-US"
- },
"chunkPlan": {
"description": "This is the plan for chunking the model output before it is sent to the voice provider.",
"allOf": [
@@ -14343,10 +16852,13 @@
"models": {
"type": "array",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -14361,10 +16873,13 @@
"items": {
"type": "string",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -15475,6 +17990,14 @@
"type": "string",
"description": "This is not returned in the API."
},
+ "apiKey": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
+ "apiSecret": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
"accountSid": {
"type": "string"
},
@@ -15487,7 +18010,6 @@
},
"required": [
"provider",
- "authToken",
"accountSid"
]
},
@@ -15699,9 +18221,265 @@
"type"
]
},
+ "FunctionCallAssistantHookAction": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "function"
+ ],
+ "description": "The type of tool. \"function\" for Function tool."
+ },
+ "async": {
+ "type": "boolean",
+ "example": false,
+ "description": "This determines if the tool is async.\n\n If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\n If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\n Defaults to synchronous (`false`)."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "SayAssistantHookAction": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the type of action - must be \"say\"",
+ "enum": [
+ "say"
+ ]
+ },
+ "exact": {
+ "type": "object",
+ "description": "This is the message to say"
+ }
+ },
+ "required": [
+ "type",
+ "exact"
+ ]
+ },
+ "AssistantHookFilter": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the type of filter - currently only \"oneOf\" is supported",
+ "enum": [
+ "oneOf"
+ ],
+ "maxLength": 1000
+ },
+ "key": {
+ "type": "string",
+ "description": "This is the key to filter on (e.g. \"call.endedReason\")",
+ "maxLength": 1000
+ },
+ "oneOf": {
+ "description": "This is the array of possible values to match against",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 1000
+ }
+ }
+ },
+ "required": [
+ "type",
+ "key",
+ "oneOf"
+ ]
+ },
+ "AssistantHookCallEnding": {
+ "type": "object",
+ "properties": {
+ "on": {
+ "type": "string",
+ "description": "This is the event that triggers this hook",
+ "enum": [
+ "call.ending"
+ ],
+ "maxLength": 1000
+ },
+ "do": {
+ "type": "array",
+ "description": "This is the set of actions to perform when the hook triggers",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferAssistantHookAction",
+ "title": "TransferAssistantHookAction"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionCallAssistantHookAction",
+ "title": "FunctionCallAssistantHookAction"
+ }
+ ]
+ }
+ },
+ "filters": {
+ "description": "This is the set of filters that must match for the hook to trigger",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AssistantHookFilter"
+ }
+ }
+ },
+ "required": [
+ "on",
+ "do"
+ ]
+ },
+ "AssistantHookAssistantSpeechInterrupted": {
+ "type": "object",
+ "properties": {
+ "on": {
+ "type": "string",
+ "description": "This is the event that triggers this hook",
+ "enum": [
+ "assistant.speech.interrupted"
+ ],
+ "maxLength": 1000
+ },
+ "do": {
+ "type": "array",
+ "description": "This is the set of actions to perform when the hook triggers",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferAssistantHookAction",
+ "title": "TransferAssistantHookAction"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionCallAssistantHookAction",
+ "title": "FunctionCallAssistantHookAction"
+ },
+ {
+ "$ref": "#/components/schemas/SayAssistantHookAction",
+ "title": "SayAssistantHookAction"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "on",
+ "do"
+ ]
+ },
+ "AssistantHookCustomerSpeechInterrupted": {
+ "type": "object",
+ "properties": {
+ "on": {
+ "type": "string",
+ "description": "This is the event that triggers this hook",
+ "enum": [
+ "customer.speech.interrupted"
+ ],
+ "maxLength": 1000
+ },
+ "do": {
+ "type": "array",
+ "description": "This is the set of actions to perform when the hook triggers",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferAssistantHookAction",
+ "title": "TransferAssistantHookAction"
+ },
+ {
+ "$ref": "#/components/schemas/FunctionCallAssistantHookAction",
+ "title": "FunctionCallAssistantHookAction"
+ },
+ {
+ "$ref": "#/components/schemas/SayAssistantHookAction",
+ "title": "SayAssistantHookAction"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "on",
+ "do"
+ ]
+ },
+ "VoicemailDetectionBackoffPlan": {
+ "type": "object",
+ "properties": {
+ "startAtSeconds": {
+ "type": "number",
+ "description": "This is the number of seconds to wait before starting the first retry attempt.",
+ "minimum": 0,
+ "default": 5
+ },
+ "frequencySeconds": {
+ "type": "number",
+ "description": "This is the interval in seconds between retry attempts.",
+ "minimum": 2.5,
+ "default": 5
+ },
+ "maxRetries": {
+ "type": "number",
+ "description": "This is the maximum number of retry attempts before giving up.",
+ "minimum": 1,
+ "maximum": 10,
+ "default": 6
+ }
+ }
+ },
"GoogleVoicemailDetectionPlan": {
"type": "object",
"properties": {
+ "beepMaxAwaitSeconds": {
+ "type": "number",
+ "description": "This is the maximum duration from the start of the call that we will wait for a voicemail beep, before speaking our message\n\n- If we detect a voicemail beep before this, we will speak the message at that point.\n\n- Setting too low a value means that the bot will start speaking its voicemail message too early. If it does so before the actual beep, it will get cut off. You should definitely tune this to your use case.\n\n@default 30\n@min 0\n@max 60",
+ "minimum": 0,
+ "maximum": 30,
+ "default": 30
+ },
"provider": {
"type": "string",
"description": "This is the provider to use for voicemail detection.",
@@ -15709,22 +18487,29 @@
"google"
]
},
- "voicemailExpectedDurationSeconds": {
- "type": "number",
- "description": "This is how long should we listen in order to determine if we were sent to voicemail or not?\n\n@default 15",
- "minimum": 5,
- "maximum": 60,
- "default": 25
+ "backoffPlan": {
+ "description": "This is the backoff plan for the voicemail detection.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/VoicemailDetectionBackoffPlan"
+ }
+ ]
}
},
"required": [
- "provider",
- "voicemailExpectedDurationSeconds"
+ "provider"
]
},
"OpenAIVoicemailDetectionPlan": {
"type": "object",
"properties": {
+ "beepMaxAwaitSeconds": {
+ "type": "number",
+ "description": "This is the maximum duration from the start of the call that we will wait for a voicemail beep, before speaking our message\n\n- If we detect a voicemail beep before this, we will speak the message at that point.\n\n- Setting too low a value means that the bot will start speaking its voicemail message too early. If it does so before the actual beep, it will get cut off. You should definitely tune this to your use case.\n\n@default 30\n@min 0\n@max 60",
+ "minimum": 0,
+ "maximum": 30,
+ "default": 30
+ },
"provider": {
"type": "string",
"description": "This is the provider to use for voicemail detection.",
@@ -15732,17 +18517,17 @@
"openai"
]
},
- "voicemailExpectedDurationSeconds": {
- "type": "number",
- "description": "This is how long should we listen in order to determine if we were sent to voicemail or not?\n\n@default 15",
- "minimum": 5,
- "maximum": 60,
- "default": 25
+ "backoffPlan": {
+ "description": "This is the backoff plan for the voicemail detection.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/VoicemailDetectionBackoffPlan"
+ }
+ ]
}
},
"required": [
- "provider",
- "voicemailExpectedDurationSeconds"
+ "provider"
]
},
"TwilioVoicemailDetectionPlan": {
@@ -15817,6 +18602,36 @@
"provider"
]
},
+ "VapiVoicemailDetectionPlan": {
+ "type": "object",
+ "properties": {
+ "beepMaxAwaitSeconds": {
+ "type": "number",
+ "description": "This is the maximum duration from the start of the call that we will wait for a voicemail beep, before speaking our message\n\n- If we detect a voicemail beep before this, we will speak the message at that point.\n\n- Setting too low a value means that the bot will start speaking its voicemail message too early. If it does so before the actual beep, it will get cut off. You should definitely tune this to your use case.\n\n@default 30\n@min 0\n@max 60",
+ "minimum": 0,
+ "maximum": 30,
+ "default": 30
+ },
+ "provider": {
+ "type": "string",
+ "description": "This is the provider to use for voicemail detection.",
+ "enum": [
+ "vapi"
+ ]
+ },
+ "backoffPlan": {
+ "description": "This is the backoff plan for the voicemail detection.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/VoicemailDetectionBackoffPlan"
+ }
+ ]
+ }
+ },
+ "required": [
+ "provider"
+ ]
+ },
"CompliancePlan": {
"type": "object",
"properties": {
@@ -15840,7 +18655,7 @@
"type": "object",
"properties": {
"messages": {
- "description": "These are the messages used to generate the structured data.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert data extractor. You will be given a transcript of a call. Extract structured data per the JSON Schema. DO NOT return anything except the structured data.\\n\\nJson Schema:\\\\n{{schema}}\\n\\nOnly respond with the JSON.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: the transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: the system prompt of the call from `assistant.model.messages[type=system].content`- {{schema}}: the schema of the structured data from `structuredDataPlan.schema`",
+ "description": "These are the messages used to generate the structured data.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert data extractor. You will be given a transcript of a call. Extract structured data per the JSON Schema. DO NOT return anything except the structured data.\\n\\nJson Schema:\\\\n{{schema}}\\n\\nOnly respond with the JSON.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n. Here is the ended reason of the call:\\n\\n{{endedReason}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: the transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: the system prompt of the call from `assistant.model.messages[type=system].content`- {{schema}}: the schema of the structured data from `structuredDataPlan.schema`- {{endedReason}}: the ended reason of the call from `call.endedReason`",
"type": "array",
"items": {
"type": "object"
@@ -15905,7 +18720,7 @@
"description": "This enforces the rubric of the evaluation. The output is stored in `call.analysis.successEvaluation`.\n\nOptions include:\n- 'NumericScale': A scale of 1 to 10.\n- 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.\n- 'Checklist': A checklist of criteria and their status.\n- 'Matrix': A grid that evaluates multiple criteria across different performance levels.\n- 'PercentageScale': A scale of 0% to 100%.\n- 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly Disagree.\n- 'AutomaticRubric': Automatically break down evaluation into several criteria, each with its own score.\n- 'PassFail': A simple 'true' if call passed, 'false' if not.\n\nDefault is 'PassFail'."
},
"messages": {
- "description": "These are the messages used to generate the success evaluation.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert call evaluator. You will be given a transcript of a call and the system prompt of the AI participant. Determine if the call was successful based on the objectives inferred from the system prompt. DO NOT return anything except the result.\\n\\nRubric:\\\\n{{rubric}}\\n\\nOnly respond with the result.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here was the system prompt of the call:\\n\\n{{systemPrompt}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: the transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: the system prompt of the call from `assistant.model.messages[type=system].content`- {{rubric}}: the rubric of the success evaluation from `successEvaluationPlan.rubric`",
+ "description": "These are the messages used to generate the success evaluation.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert call evaluator. You will be given a transcript of a call and the system prompt of the AI participant. Determine if the call was successful based on the objectives inferred from the system prompt. DO NOT return anything except the result.\\n\\nRubric:\\\\n{{rubric}}\\n\\nOnly respond with the result.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here was the system prompt of the call:\\n\\n{{systemPrompt}}\\n\\n. Here is the ended reason of the call:\\n\\n{{endedReason}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: the transcript of the call from `call.artifact.transcript`- {{systemPrompt}}: the system prompt of the call from `assistant.model.messages[type=system].content`- {{rubric}}: the rubric of the success evaluation from `successEvaluationPlan.rubric`- {{endedReason}}: the ended reason of the call from `call.endedReason`",
"type": "array",
"items": {
"type": "object"
@@ -15926,6 +18741,11 @@
"AnalysisPlan": {
"type": "object",
"properties": {
+ "minMessagesThreshold": {
+ "type": "number",
+ "description": "The minimum number of messages required to run the analysis plan.\nIf the number of messages is less than this, analysis will be skipped.\n@default 2",
+ "minimum": 0
+ },
"summaryPlan": {
"description": "This is the plan for generating the summary of the call. This outputs to `call.analysis.summary`.",
"allOf": [
@@ -16137,7 +18957,7 @@
},
"waitFunction": {
"type": "string",
- "description": "This expression describes how long the bot will wait to start speaking based on the likelihood that the user has reached an endpoint.\n\nThis is a millisecond valued function. It maps probabilities (real numbers on [0,1]) to milliseconds that the bot should wait before speaking ([0, \\infty]). Any negative values that are returned are set to zero (the bot can't start talking in the past).\n\nA probability of zero represents very high confidence that the caller has stopped speaking, and would like the bot to speak to them. A probability of one represents very high confidence that the caller is still speaking.\n\nUnder the hood, this is parsed into a mathjs expression. Whatever you use to write your expression needs to be valid with respect to mathjs\n\n@default \"70 + 4000 * x\"",
+ "description": "This expression describes how long the bot will wait to start speaking based on the likelihood that the user has reached an endpoint.\n\nThis is a millisecond valued function. It maps probabilities (real numbers on [0,1]) to milliseconds that the bot should wait before speaking ([0, \\infty]). Any negative values that are returned are set to zero (the bot can't start talking in the past).\n\nA probability of zero represents very high confidence that the caller has stopped speaking, and would like the bot to speak to them. A probability of one represents very high confidence that the caller is still speaking.\n\nUnder the hood, this is parsed into a mathjs expression. Whatever you use to write your expression needs to be valid with respect to mathjs\n\n@default \"20 + 500 * sqrt(x) + 2500 * x^3\"",
"examples": [
"70 + 4000 * x",
"200 + 8000 * x",
@@ -16186,9 +19006,19 @@
"example": 0.4
},
"smartEndpointingEnabled": {
- "type": "object",
"example": false,
- "deprecated": true
+ "deprecated": true,
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "livekit"
+ ]
+ }
+ ]
},
"smartEndpointingPlan": {
"description": "This is the plan for smart endpointing. Pick between Vapi smart endpointing or LiveKit smart endpointing (or nothing). We strongly recommend using livekit endpointing when working in English. LiveKit endpointing is not supported in other languages, yet.\n\nIf this is set, it will override and take precedence over `transcriptionEndpointingPlan`.\nThis plan will still be overridden by any matching `customEndpointingRules`.",
@@ -16375,78 +19205,22 @@
"description": "This determines whether the assistant's calls allow live listening. Defaults to true.\n\nFetch `call.monitor.listenUrl` to get the live listening URL.\n\n@default true",
"example": false
},
+ "listenAuthenticationEnabled": {
+ "type": "boolean",
+ "description": "This enables authentication on the `call.monitor.listenUrl`.\n\nIf `listenAuthenticationEnabled` is `true`, the `call.monitor.listenUrl` will require an `Authorization: Bearer ` header.\n\n@default false",
+ "example": false
+ },
"controlEnabled": {
"type": "boolean",
"description": "This determines whether the assistant's calls allow live control. Defaults to true.\n\nFetch `call.monitor.controlUrl` to get the live control URL.\n\nTo use, send any control message via a POST request to `call.monitor.controlUrl`. Here are the types of controls supported: https://docs.vapi.ai/api-reference/messages/client-inbound-message\n\n@default true",
"example": false
- }
- }
- },
- "AssistantHookFilter": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "description": "This is the type of filter - currently only \"oneOf\" is supported",
- "enum": [
- "oneOf"
- ],
- "maxLength": 1000
},
- "key": {
- "type": "string",
- "description": "This is the key to filter on (e.g. \"call.endedReason\")",
- "maxLength": 1000
- },
- "oneOf": {
- "description": "This is the array of possible values to match against",
- "type": "array",
- "items": {
- "type": "string",
- "maxLength": 1000
- }
- }
- },
- "required": [
- "type",
- "key",
- "oneOf"
- ]
- },
- "AssistantHookActionBase": {
- "type": "object",
- "properties": {}
- },
- "AssistantHooks": {
- "type": "object",
- "properties": {
- "on": {
- "type": "string",
- "description": "This is the event that triggers this hook",
- "enum": [
- "call.ending"
- ],
- "maxLength": 1000
- },
- "filters": {
- "description": "This is the set of filters that must match for the hook to trigger",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHookFilter"
- }
- },
- "do": {
- "description": "This is the set of actions to perform when the hook triggers",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHookActionBase"
- }
+ "controlAuthenticationEnabled": {
+ "type": "boolean",
+ "description": "This enables authentication on the `call.monitor.controlUrl`.\n\nIf `controlAuthenticationEnabled` is `true`, the `call.monitor.controlUrl` will require an `Authorization: Bearer ` header.\n\n@default false",
+ "example": false
}
- },
- "required": [
- "on",
- "do"
- ]
+ }
},
"KeypadInputPlan": {
"type": "object",
@@ -16480,11 +19254,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AssemblyAITranscriber",
- "title": "AssemblyAI"
+ "title": "AssemblyAITranscriber"
},
{
"$ref": "#/components/schemas/AzureSpeechTranscriber",
- "title": "Azure"
+ "title": "AzureSpeechTranscriber"
},
{
"$ref": "#/components/schemas/CustomTranscriber",
@@ -16492,45 +19266,45 @@
},
{
"$ref": "#/components/schemas/DeepgramTranscriber",
- "title": "Deepgram"
+ "title": "DeepgramTranscriber"
},
{
"$ref": "#/components/schemas/ElevenLabsTranscriber",
- "title": "ElevenLabs"
+ "title": "ElevenLabsTranscriber"
},
{
"$ref": "#/components/schemas/GladiaTranscriber",
- "title": "Gladia"
+ "title": "GladiaTranscriber"
},
{
- "$ref": "#/components/schemas/SpeechmaticsTranscriber",
- "title": "Speechmatics"
+ "$ref": "#/components/schemas/GoogleTranscriber",
+ "title": "GoogleTranscriber"
},
{
- "$ref": "#/components/schemas/TalkscriberTranscriber",
- "title": "Talkscriber"
+ "$ref": "#/components/schemas/SpeechmaticsTranscriber",
+ "title": "SpeechmaticsTranscriber"
},
{
- "$ref": "#/components/schemas/GoogleTranscriber",
- "title": "Google"
+ "$ref": "#/components/schemas/TalkscriberTranscriber",
+ "title": "TalkscriberTranscriber"
},
{
"$ref": "#/components/schemas/OpenAITranscriber",
- "title": "OpenAI"
+ "title": "OpenAITranscriber"
}
]
},
"model": {
"description": "These are the options for the assistant's LLM.",
"oneOf": [
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
{
"$ref": "#/components/schemas/AnthropicModel",
"title": "Anthropic"
},
+ {
+ "$ref": "#/components/schemas/AnyscaleModel",
+ "title": "Anyscale"
+ },
{
"$ref": "#/components/schemas/CerebrasModel",
"title": "Cerebras"
@@ -16575,10 +19349,6 @@
"$ref": "#/components/schemas/TogetherAIModel",
"title": "Together"
},
- {
- "$ref": "#/components/schemas/VapiModel",
- "title": "Vapi"
- },
{
"$ref": "#/components/schemas/XaiModel",
"title": "XAI"
@@ -16590,11 +19360,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AzureVoice",
- "title": "Azure"
+ "title": "AzureVoice"
},
{
"$ref": "#/components/schemas/CartesiaVoice",
- "title": "Cartesia"
+ "title": "CartesiaVoice"
},
{
"$ref": "#/components/schemas/CustomVoice",
@@ -16602,39 +19372,39 @@
},
{
"$ref": "#/components/schemas/DeepgramVoice",
- "title": "Deepgram"
+ "title": "DeepgramVoice"
},
{
"$ref": "#/components/schemas/ElevenLabsVoice",
- "title": "ElevenLabs"
+ "title": "ElevenLabsVoice"
},
{
"$ref": "#/components/schemas/HumeVoice",
- "title": "Hume"
+ "title": "HumeVoice"
},
{
"$ref": "#/components/schemas/LMNTVoice",
- "title": "LMNT"
+ "title": "LMNTVoice"
},
{
"$ref": "#/components/schemas/NeuphonicVoice",
- "title": "Neuphonic"
+ "title": "NeuphonicVoice"
},
{
"$ref": "#/components/schemas/OpenAIVoice",
- "title": "OpenAI"
+ "title": "OpenAIVoice"
},
{
"$ref": "#/components/schemas/PlayHTVoice",
- "title": "PlayHT"
+ "title": "PlayHTVoice"
},
{
"$ref": "#/components/schemas/RimeAIVoice",
- "title": "RimeAI"
+ "title": "RimeAIVoice"
},
{
"$ref": "#/components/schemas/SmallestAIVoice",
- "title": "SmallestAI"
+ "title": "SmallestAIVoice"
},
{
"$ref": "#/components/schemas/TavusVoice",
@@ -16642,13 +19412,13 @@
},
{
"$ref": "#/components/schemas/VapiVoice",
- "title": "Vapi"
+ "title": "VapiVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SesameVoice",
+ "title": "SesameVoice"
}
- ],
- "default": {
- "provider": "playht",
- "voiceId": "jennifer"
- }
+ ]
},
"firstMessage": {
"type": "string",
@@ -16683,6 +19453,10 @@
{
"$ref": "#/components/schemas/TwilioVoicemailDetectionPlan",
"title": "Twilio"
+ },
+ {
+ "$ref": "#/components/schemas/VapiVoicemailDetectionPlan",
+ "title": "Vapi"
}
]
},
@@ -16701,6 +19475,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -16736,6 +19511,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -16815,7 +19591,6 @@
},
"backgroundSound": {
"description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.",
- "maxLength": 1000,
"oneOf": [
{
"type": "enum",
@@ -17060,6 +19835,10 @@
{
"$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
"title": "SlackOAuth2AuthorizationCredential"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO",
+ "title": "GoHighLevelMCPCredential"
}
],
"discriminator": {
@@ -17111,11 +19890,32 @@
"google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO",
"google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO",
"google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO",
- "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO"
+ "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
+ "ghl.oauth2-authorization": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO"
}
}
}
},
+ "hooks": {
+ "type": "array",
+ "description": "This is a set of actions that will be performed on certain events.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AssistantHookCallEnding",
+ "title": "AssistantHookCallEnding"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookAssistantSpeechInterrupted",
+ "title": "AssistantHookAssistantSpeechInterrupted"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookCustomerSpeechInterrupted",
+ "title": "AssistantHookCustomerSpeechInterrupted"
+ }
+ ]
+ }
+ },
"name": {
"type": "string",
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
@@ -17210,13 +20010,6 @@
}
]
},
- "hooks": {
- "description": "This is a set of actions that will be performed on certain events.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHooks"
- }
- },
"keypadInputPlan": {
"$ref": "#/components/schemas/KeypadInputPlan"
}
@@ -17230,11 +20023,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AssemblyAITranscriber",
- "title": "AssemblyAI"
+ "title": "AssemblyAITranscriber"
},
{
"$ref": "#/components/schemas/AzureSpeechTranscriber",
- "title": "Azure"
+ "title": "AzureSpeechTranscriber"
},
{
"$ref": "#/components/schemas/CustomTranscriber",
@@ -17242,45 +20035,45 @@
},
{
"$ref": "#/components/schemas/DeepgramTranscriber",
- "title": "Deepgram"
+ "title": "DeepgramTranscriber"
},
{
"$ref": "#/components/schemas/ElevenLabsTranscriber",
- "title": "ElevenLabs"
+ "title": "ElevenLabsTranscriber"
},
{
"$ref": "#/components/schemas/GladiaTranscriber",
- "title": "Gladia"
+ "title": "GladiaTranscriber"
},
{
- "$ref": "#/components/schemas/SpeechmaticsTranscriber",
- "title": "Speechmatics"
+ "$ref": "#/components/schemas/GoogleTranscriber",
+ "title": "GoogleTranscriber"
},
{
- "$ref": "#/components/schemas/TalkscriberTranscriber",
- "title": "Talkscriber"
+ "$ref": "#/components/schemas/SpeechmaticsTranscriber",
+ "title": "SpeechmaticsTranscriber"
},
{
- "$ref": "#/components/schemas/GoogleTranscriber",
- "title": "Google"
+ "$ref": "#/components/schemas/TalkscriberTranscriber",
+ "title": "TalkscriberTranscriber"
},
{
"$ref": "#/components/schemas/OpenAITranscriber",
- "title": "OpenAI"
+ "title": "OpenAITranscriber"
}
]
},
"model": {
"description": "These are the options for the assistant's LLM.",
"oneOf": [
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
{
"$ref": "#/components/schemas/AnthropicModel",
"title": "Anthropic"
},
+ {
+ "$ref": "#/components/schemas/AnyscaleModel",
+ "title": "Anyscale"
+ },
{
"$ref": "#/components/schemas/CerebrasModel",
"title": "Cerebras"
@@ -17325,10 +20118,6 @@
"$ref": "#/components/schemas/TogetherAIModel",
"title": "Together"
},
- {
- "$ref": "#/components/schemas/VapiModel",
- "title": "Vapi"
- },
{
"$ref": "#/components/schemas/XaiModel",
"title": "XAI"
@@ -17340,11 +20129,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AzureVoice",
- "title": "Azure"
+ "title": "AzureVoice"
},
{
"$ref": "#/components/schemas/CartesiaVoice",
- "title": "Cartesia"
+ "title": "CartesiaVoice"
},
{
"$ref": "#/components/schemas/CustomVoice",
@@ -17352,39 +20141,39 @@
},
{
"$ref": "#/components/schemas/DeepgramVoice",
- "title": "Deepgram"
+ "title": "DeepgramVoice"
},
{
"$ref": "#/components/schemas/ElevenLabsVoice",
- "title": "ElevenLabs"
+ "title": "ElevenLabsVoice"
},
{
"$ref": "#/components/schemas/HumeVoice",
- "title": "Hume"
+ "title": "HumeVoice"
},
{
"$ref": "#/components/schemas/LMNTVoice",
- "title": "LMNT"
+ "title": "LMNTVoice"
},
{
"$ref": "#/components/schemas/NeuphonicVoice",
- "title": "Neuphonic"
+ "title": "NeuphonicVoice"
},
{
"$ref": "#/components/schemas/OpenAIVoice",
- "title": "OpenAI"
+ "title": "OpenAIVoice"
},
{
"$ref": "#/components/schemas/PlayHTVoice",
- "title": "PlayHT"
+ "title": "PlayHTVoice"
},
{
"$ref": "#/components/schemas/RimeAIVoice",
- "title": "RimeAI"
+ "title": "RimeAIVoice"
},
{
"$ref": "#/components/schemas/SmallestAIVoice",
- "title": "SmallestAI"
+ "title": "SmallestAIVoice"
},
{
"$ref": "#/components/schemas/TavusVoice",
@@ -17392,13 +20181,13 @@
},
{
"$ref": "#/components/schemas/VapiVoice",
- "title": "Vapi"
+ "title": "VapiVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SesameVoice",
+ "title": "SesameVoice"
}
- ],
- "default": {
- "provider": "playht",
- "voiceId": "jennifer"
- }
+ ]
},
"firstMessage": {
"type": "string",
@@ -17433,6 +20222,10 @@
{
"$ref": "#/components/schemas/TwilioVoicemailDetectionPlan",
"title": "Twilio"
+ },
+ {
+ "$ref": "#/components/schemas/VapiVoicemailDetectionPlan",
+ "title": "Vapi"
}
]
},
@@ -17451,6 +20244,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -17486,6 +20280,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -17565,7 +20360,6 @@
},
"backgroundSound": {
"description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.",
- "maxLength": 1000,
"oneOf": [
{
"type": "enum",
@@ -17810,6 +20604,10 @@
{
"$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
"title": "SlackOAuth2AuthorizationCredential"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO",
+ "title": "GoHighLevelMCPCredential"
}
],
"discriminator": {
@@ -17861,11 +20659,32 @@
"google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO",
"google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO",
"google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO",
- "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO"
+ "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
+ "ghl.oauth2-authorization": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO"
}
}
}
},
+ "hooks": {
+ "type": "array",
+ "description": "This is a set of actions that will be performed on certain events.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AssistantHookCallEnding",
+ "title": "AssistantHookCallEnding"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookAssistantSpeechInterrupted",
+ "title": "AssistantHookAssistantSpeechInterrupted"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookCustomerSpeechInterrupted",
+ "title": "AssistantHookCustomerSpeechInterrupted"
+ }
+ ]
+ }
+ },
"variableValues": {
"type": "object",
"description": "These are values that will be used to replace the template variables in the assistant messages and other text-based fields.\nThis uses LiquidJS syntax. https://liquidjs.com/tutorials/intro-to-liquid.html\n\nSo for example, `{{ name }}` will be replaced with the value of `name` in `variableValues`.\n`{{\"now\" | date: \"%b %d, %Y, %I:%M %p\", \"America/New_York\"}}` will be replaced with the current date and time in New York.\n Some VAPI reserved defaults:\n - *customer* - the customer object"
@@ -17964,13 +20783,6 @@
}
]
},
- "hooks": {
- "description": "This is a set of actions that will be performed on certain events.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHooks"
- }
- },
"keypadInputPlan": {
"$ref": "#/components/schemas/KeypadInputPlan"
}
@@ -18036,6 +20848,115 @@
"members"
]
},
+ "CreateWorkflowDTO": {
+ "type": "object",
+ "properties": {
+ "nodes": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ConversationNode",
+ "title": "ConversationNode"
+ },
+ {
+ "$ref": "#/components/schemas/ToolNode",
+ "title": "ToolNode"
+ }
+ ]
+ }
+ },
+ "model": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOpenAIModel",
+ "title": "WorkflowOpenAIModel"
+ },
+ {
+ "$ref": "#/components/schemas/WorkflowAnthropicModel",
+ "title": "WorkflowAnthropicModel"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 80
+ },
+ "edges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Edge"
+ }
+ },
+ "globalPrompt": {
+ "type": "string",
+ "maxLength": 5000
+ }
+ },
+ "required": [
+ "nodes",
+ "name",
+ "edges"
+ ]
+ },
+ "WorkflowOverrides": {
+ "type": "object",
+ "properties": {
+ "variableValues": {
+ "type": "object",
+ "description": "These are values that will be used to replace the template variables in the workflow messages and other text-based fields.\nThis uses LiquidJS syntax. https://liquidjs.com/tutorials/intro-to-liquid.html\n\nSo for example, `{{ name }}` will be replaced with the value of `name` in `variableValues`.\n`{{\"now\" | date: \"%b %d, %Y, %I:%M %p\", \"America/New_York\"}}` will be replaced with the current date and time in New York.\n Some VAPI reserved defaults:\n - *customer* - the customer object"
+ }
+ }
+ },
+ "TransferPhoneNumberHookAction": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the type of action - must be \"transfer\"",
+ "enum": [
+ "transfer"
+ ]
+ },
+ "destination": {
+ "description": "This is the destination details for the transfer - can be a phone number or SIP URI",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferDestinationNumber",
+ "title": "NumberTransferDestination"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationSip",
+ "title": "SipTransferDestination"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "SayPhoneNumberHookAction": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This is the type of action - must be \"say\"",
+ "enum": [
+ "say"
+ ]
+ },
+ "exact": {
+ "type": "string",
+ "description": "This is the message to say",
+ "maxLength": 4000
+ }
+ },
+ "required": [
+ "type",
+ "exact"
+ ]
+ },
"PhoneNumberHookCallRinging": {
"type": "object",
"properties": {
@@ -18097,6 +21018,11 @@
]
}
},
+ "smsEnabled": {
+ "type": "boolean",
+ "description": "Controls whether Vapi sets the messaging webhook URL on the Twilio number during import.\n\nIf set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is.\nIf `true` or omitted (default), Vapi will configure both the voice and messaging URLs.\n\n@default true",
+ "default": true
+ },
"twilioPhoneNumber": {
"type": "string",
"description": "These are the digits of the phone number you own on your Twilio.",
@@ -18110,6 +21036,14 @@
"type": "string",
"description": "This is the Twilio Auth Token that will be used to handle this phone number."
},
+ "twilioApiKey": {
+ "type": "string",
+ "description": "This is the Twilio API Key that will be used to handle this phone number. If AuthToken is provided, this will be ignored."
+ },
+ "twilioApiSecret": {
+ "type": "string",
+ "description": "This is the Twilio API Secret that will be used to handle this phone number. If AuthToken is provided, this will be ignored."
+ },
"name": {
"type": "string",
"description": "This is the name of the phone number. This is just for your own reference.",
@@ -18117,11 +21051,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -18134,8 +21072,7 @@
},
"required": [
"twilioPhoneNumber",
- "twilioAccountSid",
- "twilioAuthToken"
+ "twilioAccountSid"
]
},
"CreateCustomerDTO": {
@@ -18240,6 +21177,10 @@
{
"$ref": "#/components/schemas/AnalysisCost",
"title": "AnalysisCost"
+ },
+ {
+ "$ref": "#/components/schemas/KnowledgeBaseCost",
+ "title": "KnowledgeBaseCost"
}
]
}
@@ -18274,6 +21215,7 @@
"phoneCallProvider": {
"type": "string",
"description": "This is the provider of the call.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "deprecated": true,
"enum": [
"twilio",
"vonage",
@@ -18398,6 +21340,7 @@
"call.in-progress.error-vapifault-transport-never-connected",
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
+ "call.in-progress.error-vapifault-worker-died",
"call.in-progress.error-vapifault-openai-llm-failed",
"call.in-progress.error-vapifault-azure-openai-llm-failed",
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -18785,334 +21728,1115 @@
"phone-call-provider-closed-websocket",
"call.forwarding.operator-busy",
"silence-timed-out",
- "call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
+ "call.in-progress.error-sip-inbound-call-failed-to-connect",
+ "call.in-progress.error-providerfault-outbound-sip-403-forbidden",
+ "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
+ "call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
+ "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
+ "call.in-progress.error-sip-outbound-call-failed-to-connect",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
+ "call.ringing.sip-inbound-caller-hungup-before-call-connect",
+ "call.ringing.error-sip-inbound-call-failed-to-connect",
"twilio-failed-to-connect-call",
"twilio-reported-customer-misdialed",
"vonage-rejected",
"voicemail"
]
},
- "destination": {
- "description": "This is the destination where the call ended up being transferred to. If the call was not transferred, this will be empty.",
- "oneOf": [
+ "destination": {
+ "description": "This is the destination where the call ended up being transferred to. If the call was not transferred, this will be empty.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferDestinationNumber",
+ "title": "NumberTransferDestination"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationSip",
+ "title": "SipTransferDestination"
+ }
+ ]
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the call."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the org that this call belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the call was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the call was last updated."
+ },
+ "startedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the call was started."
+ },
+ "endedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the call was ended."
+ },
+ "cost": {
+ "type": "number",
+ "description": "This is the cost of the call in USD."
+ },
+ "costBreakdown": {
+ "description": "This is the cost of the call in USD.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CostBreakdown"
+ }
+ ]
+ },
+ "artifactPlan": {
+ "description": "This is a copy of assistant artifact plan. This isn't actually stored on the call but rather just returned in POST /call/web to enable artifact creation client side.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ArtifactPlan"
+ }
+ ]
+ },
+ "analysis": {
+ "description": "This is the analysis of the call. Configure in `assistant.analysisPlan`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Analysis"
+ }
+ ]
+ },
+ "monitor": {
+ "description": "This is to real-time monitor the call. Configure in `assistant.monitorPlan`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Monitor"
+ }
+ ]
+ },
+ "artifact": {
+ "description": "These are the artifacts created from the call. Configure in `assistant.artifactPlan`.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Artifact"
+ }
+ ]
+ },
+ "phoneCallProviderId": {
+ "type": "string",
+ "description": "The ID of the call as provided by the phone number service. callSid in Twilio. conversationUuid in Vonage. callControlId in Telnyx.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "deprecated": true
+ },
+ "assistantId": {
+ "type": "string",
+ "description": "This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.\n\nTo start a call with:\n- Assistant, use `assistantId` or `assistant`\n- Squad, use `squadId` or `squad`\n- Workflow, use `workflowId` or `workflow`"
+ },
+ "assistant": {
+ "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nTo start a call with:\n- Assistant, use `assistant`\n- Squad, use `squad`\n- Workflow, use `workflow`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
+ "assistantOverrides": {
+ "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/AssistantOverrides"
+ }
+ ]
+ },
+ "squadId": {
+ "type": "string",
+ "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "squad": {
+ "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateSquadDTO"
+ }
+ ]
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "workflow": {
+ "description": "This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
+ }
+ ]
+ },
+ "workflowOverrides": {
+ "description": "These are the overrides for the `workflow` or `workflowId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOverrides"
+ }
+ ]
+ },
+ "phoneNumberId": {
+ "type": "string",
+ "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ },
+ "phoneNumber": {
+ "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
+ }
+ ]
+ },
+ "customerId": {
+ "type": "string",
+ "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ },
+ "customer": {
+ "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the call. This is just for your own reference.",
+ "maxLength": 40
+ },
+ "schedulePlan": {
+ "description": "This is the schedule plan of the call.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/SchedulePlan"
+ }
+ ]
+ },
+ "transport": {
+ "type": "object",
+ "description": "This is the transport of the call."
+ }
+ },
+ "required": [
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
+ ]
+ },
+ "CallBatchError": {
+ "type": "object",
+ "properties": {
+ "customer": {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ },
+ "error": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "customer",
+ "error"
+ ]
+ },
+ "CallBatchResponse": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "description": "This is the list of calls that were created.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Call"
+ }
+ },
+ "errors": {
+ "description": "This is the list of calls that failed to be created.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CallBatchError"
+ }
+ }
+ },
+ "required": [
+ "results",
+ "errors"
+ ]
+ },
+ "CreateCallDTO": {
+ "type": "object",
+ "properties": {
+ "customers": {
+ "description": "This is used to issue batch calls to multiple customers.\n\nOnly relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the call. This is just for your own reference.",
+ "maxLength": 40
+ },
+ "schedulePlan": {
+ "description": "This is the schedule plan of the call.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/SchedulePlan"
+ }
+ ]
+ },
+ "transport": {
+ "type": "object",
+ "description": "This is the transport of the call."
+ },
+ "assistantId": {
+ "type": "string",
+ "description": "This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.\n\nTo start a call with:\n- Assistant, use `assistantId` or `assistant`\n- Squad, use `squadId` or `squad`\n- Workflow, use `workflowId` or `workflow`"
+ },
+ "assistant": {
+ "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nTo start a call with:\n- Assistant, use `assistant`\n- Squad, use `squad`\n- Workflow, use `workflow`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
+ "assistantOverrides": {
+ "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/AssistantOverrides"
+ }
+ ]
+ },
+ "squadId": {
+ "type": "string",
+ "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "squad": {
+ "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateSquadDTO"
+ }
+ ]
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "workflow": {
+ "description": "This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
+ }
+ ]
+ },
+ "workflowOverrides": {
+ "description": "These are the overrides for the `workflow` or `workflowId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOverrides"
+ }
+ ]
+ },
+ "phoneNumberId": {
+ "type": "string",
+ "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ },
+ "phoneNumber": {
+ "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
{
- "$ref": "#/components/schemas/TransferDestinationNumber",
- "title": "NumberTransferDestination"
- },
+ "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
+ }
+ ]
+ },
+ "customerId": {
+ "type": "string",
+ "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ },
+ "customer": {
+ "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
{
- "$ref": "#/components/schemas/TransferDestinationSip",
- "title": "SipTransferDestination"
+ "$ref": "#/components/schemas/CreateCustomerDTO"
}
]
+ }
+ }
+ },
+ "PaginationMeta": {
+ "type": "object",
+ "properties": {
+ "itemsPerPage": {
+ "type": "number"
},
- "id": {
+ "totalItems": {
+ "type": "number"
+ },
+ "currentPage": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "itemsPerPage",
+ "totalItems",
+ "currentPage"
+ ]
+ },
+ "CallPaginatedResponse": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Call"
+ }
+ },
+ "metadata": {
+ "$ref": "#/components/schemas/PaginationMeta"
+ }
+ },
+ "required": [
+ "results",
+ "metadata"
+ ]
+ },
+ "CreateOutboundCallDTO": {
+ "type": "object",
+ "properties": {
+ "customers": {
+ "description": "This is used to issue batch calls to multiple customers.\n\nOnly relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ },
+ "name": {
"type": "string",
- "description": "This is the unique identifier for the call."
+ "description": "This is the name of the call. This is just for your own reference.",
+ "maxLength": 40
},
- "orgId": {
+ "schedulePlan": {
+ "description": "This is the schedule plan of the call.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/SchedulePlan"
+ }
+ ]
+ },
+ "transport": {
+ "type": "object",
+ "description": "This is the transport of the call."
+ },
+ "assistantId": {
"type": "string",
- "description": "This is the unique identifier for the org that this call belongs to."
+ "description": "This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.\n\nTo start a call with:\n- Assistant, use `assistantId` or `assistant`\n- Squad, use `squadId` or `squad`\n- Workflow, use `workflowId` or `workflow`"
},
- "createdAt": {
- "format": "date-time",
+ "assistant": {
+ "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nTo start a call with:\n- Assistant, use `assistant`\n- Squad, use `squad`\n- Workflow, use `workflow`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
+ "assistantOverrides": {
+ "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/AssistantOverrides"
+ }
+ ]
+ },
+ "squadId": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the call was created."
+ "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
},
- "updatedAt": {
- "format": "date-time",
+ "squad": {
+ "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateSquadDTO"
+ }
+ ]
+ },
+ "workflowId": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the call was last updated."
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
},
- "startedAt": {
- "format": "date-time",
+ "workflow": {
+ "description": "This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
+ }
+ ]
+ },
+ "workflowOverrides": {
+ "description": "These are the overrides for the `workflow` or `workflowId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOverrides"
+ }
+ ]
+ },
+ "phoneNumberId": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the call was started."
+ "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
},
- "endedAt": {
- "format": "date-time",
+ "phoneNumber": {
+ "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
+ }
+ ]
+ },
+ "customerId": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the call was ended."
+ "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
},
- "cost": {
- "type": "number",
- "description": "This is the cost of the call in USD."
+ "customer": {
+ "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ }
+ }
+ },
+ "CreateWebCallDTO": {
+ "type": "object",
+ "properties": {
+ "assistantId": {
+ "type": "string",
+ "description": "This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.\n\nTo start a call with:\n- Assistant, use `assistantId` or `assistant`\n- Squad, use `squadId` or `squad`\n- Workflow, use `workflowId` or `workflow`"
},
- "costBreakdown": {
- "description": "This is the cost of the call in USD.",
+ "assistant": {
+ "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nTo start a call with:\n- Assistant, use `assistant`\n- Squad, use `squad`\n- Workflow, use `workflow`",
"allOf": [
{
- "$ref": "#/components/schemas/CostBreakdown"
+ "$ref": "#/components/schemas/CreateAssistantDTO"
}
]
},
- "artifactPlan": {
- "description": "This is a copy of assistant artifact plan. This isn't actually stored on the call but rather just returned in POST /call/web to enable artifact creation client side.",
+ "assistantOverrides": {
+ "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
"allOf": [
{
- "$ref": "#/components/schemas/ArtifactPlan"
+ "$ref": "#/components/schemas/AssistantOverrides"
}
]
},
- "analysis": {
- "description": "This is the analysis of the call. Configure in `assistant.analysisPlan`.",
+ "squadId": {
+ "type": "string",
+ "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "squad": {
+ "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
"allOf": [
{
- "$ref": "#/components/schemas/Analysis"
+ "$ref": "#/components/schemas/CreateSquadDTO"
}
]
},
- "monitor": {
- "description": "This is to real-time monitor the call. Configure in `assistant.monitorPlan`.",
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "workflow": {
+ "description": "This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
"allOf": [
{
- "$ref": "#/components/schemas/Monitor"
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
}
]
},
- "artifact": {
- "description": "These are the artifacts created from the call. Configure in `assistant.artifactPlan`.",
+ "workflowOverrides": {
+ "description": "These are the overrides for the `workflow` or `workflowId`'s settings and template variables.",
"allOf": [
{
- "$ref": "#/components/schemas/Artifact"
+ "$ref": "#/components/schemas/WorkflowOverrides"
}
]
+ }
+ }
+ },
+ "UpdateCallDTO": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "This is the name of the call. This is just for your own reference.",
+ "maxLength": 40
+ }
+ }
+ },
+ "DeveloperMessage": {
+ "type": "object",
+ "properties": {
+ "role": {
+ "type": "string",
+ "description": "This is the role of the message author",
+ "default": "developer",
+ "enum": [
+ "developer"
+ ]
},
- "phoneCallProviderId": {
+ "content": {
+ "type": "string",
+ "description": "This is the content of the developer message",
+ "maxLength": 10000
+ },
+ "name": {
+ "type": "string",
+ "description": "This is an optional name for the participant",
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "role",
+ "content"
+ ]
+ },
+ "SystemMessage": {
+ "type": "object",
+ "properties": {
+ "role": {
+ "type": "string",
+ "description": "The role of the system in the conversation."
+ },
+ "message": {
+ "type": "string",
+ "description": "The message content from the system."
+ },
+ "time": {
+ "type": "number",
+ "description": "The timestamp when the message was sent."
+ },
+ "secondsFromStart": {
+ "type": "number",
+ "description": "The number of seconds from the start of the conversation."
+ }
+ },
+ "required": [
+ "role",
+ "message",
+ "time",
+ "secondsFromStart"
+ ]
+ },
+ "UserMessage": {
+ "type": "object",
+ "properties": {
+ "role": {
+ "type": "string",
+ "description": "The role of the user in the conversation."
+ },
+ "message": {
+ "type": "string",
+ "description": "The message content from the user."
+ },
+ "time": {
+ "type": "number",
+ "description": "The timestamp when the message was sent."
+ },
+ "endTime": {
+ "type": "number",
+ "description": "The timestamp when the message ended."
+ },
+ "secondsFromStart": {
+ "type": "number",
+ "description": "The number of seconds from the start of the conversation."
+ },
+ "duration": {
+ "type": "number",
+ "description": "The duration of the message in seconds."
+ }
+ },
+ "required": [
+ "role",
+ "message",
+ "time",
+ "endTime",
+ "secondsFromStart"
+ ]
+ },
+ "ToolCallFunction": {
+ "type": "object",
+ "properties": {
+ "arguments": {
+ "type": "string",
+ "description": "This is the arguments to call the function with"
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the function to call",
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "arguments",
+ "name"
+ ]
+ },
+ "ToolCall": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "This is the ID of the tool call"
+ },
+ "type": {
+ "type": "string",
+ "description": "This is the type of tool"
+ },
+ "function": {
+ "description": "This is the function that was called",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ToolCallFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "function"
+ ]
+ },
+ "AssistantMessage": {
+ "type": "object",
+ "properties": {
+ "role": {
+ "type": "string",
+ "description": "This is the role of the message author",
+ "default": "assistant",
+ "enum": [
+ "assistant"
+ ]
+ },
+ "content": {
+ "type": "string",
+ "description": "This is the content of the assistant message",
+ "maxLength": 10000
+ },
+ "refusal": {
+ "type": "string",
+ "description": "This is the refusal message generated by the model",
+ "maxLength": 10000
+ },
+ "tool_calls": {
+ "description": "This is the tool calls generated by the model",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolCall"
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "This is an optional name for the participant",
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "role"
+ ]
+ },
+ "ToolMessage": {
+ "type": "object",
+ "properties": {
+ "role": {
+ "type": "string",
+ "description": "This is the role of the message author",
+ "default": "tool",
+ "enum": [
+ "tool"
+ ]
+ },
+ "content": {
+ "type": "string",
+ "description": "This is the content of the tool message",
+ "maxLength": 10000
+ },
+ "tool_call_id": {
+ "type": "string",
+ "description": "This is the ID of the tool call this message is responding to"
+ },
+ "name": {
+ "type": "string",
+ "description": "This is an optional name for the participant",
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "role",
+ "content",
+ "tool_call_id"
+ ]
+ },
+ "FunctionCall": {
+ "type": "object",
+ "properties": {
+ "arguments": {
+ "type": "string",
+ "description": "This is the arguments to call the function with"
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the function to call",
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "arguments",
+ "name"
+ ]
+ },
+ "Chat": {
+ "type": "object",
+ "properties": {
+ "assistantId": {
+ "type": "string",
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead."
+ },
+ "assistant": {
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the chat. This is just for your own reference.",
+ "maxLength": 40
+ },
+ "sessionId": {
+ "type": "string",
+ "description": "This is the ID of the session that will be used for the chat.\nMutually exclusive with previousChatId."
+ },
+ "input": {
+ "description": "This is the input text for the chat.\nCan be a string or an array of chat messages.",
+ "oneOf": [
+ {
+ "type": "string",
+ "title": "String"
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
+ },
+ "title": "MessageArray"
+ }
+ ],
+ "examples": [
+ "Hello, how can you help me?",
+ [
+ {
+ "role": "user",
+ "content": "Hello, how can you help me?"
+ }
+ ]
+ ]
+ },
+ "stream": {
+ "type": "boolean",
+ "description": "This is a flag that determines whether the response should be streamed.\nWhen true, the response will be sent as chunks of text.",
+ "default": false
+ },
+ "previousChatId": {
+ "type": "string",
+ "description": "This is the ID of the chat that will be used as context for the new chat.\nThe messages from the previous chat will be used as context.\nMutually exclusive with sessionId."
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the chat."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the org that this chat belongs to."
+ },
+ "messages": {
+ "type": "array",
+ "description": "This is an array of messages used as context for the chat.\nUsed to provide message history for multi-turn conversations.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
+ }
+ },
+ "output": {
+ "type": "array",
+ "description": "This is the output messages generated by the system in response to the input.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
+ }
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the chat was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
"type": "string",
- "description": "The ID of the call as provided by the phone number service. callSid in Twilio. conversationUuid in Vonage. callControlId in Telnyx.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
- },
+ "description": "This is the ISO 8601 date-time string of when the chat was last updated."
+ }
+ },
+ "required": [
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
+ ]
+ },
+ "CreateChatDTO": {
+ "type": "object",
+ "properties": {
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead."
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead."
},
"assistant": {
- "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.",
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
}
]
},
- "assistantOverrides": {
- "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AssistantOverrides"
- }
- ]
- },
- "squadId": {
- "type": "string",
- "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead."
- },
- "squad": {
- "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateSquadDTO"
- }
- ]
- },
- "phoneNumberId": {
+ "name": {
"type": "string",
- "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
- },
- "phoneNumber": {
- "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
- {
- "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
- }
- ]
+ "description": "This is the name of the chat. This is just for your own reference.",
+ "maxLength": 40
},
- "customerId": {
+ "sessionId": {
"type": "string",
- "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ "description": "This is the ID of the session that will be used for the chat.\nMutually exclusive with previousChatId."
},
- "customer": {
- "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
+ "input": {
+ "description": "This is the input text for the chat.\nCan be a string or an array of chat messages.\nThis field is REQUIRED for chat creation.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/CreateCustomerDTO"
- }
- ]
- },
- "name": {
- "type": "string",
- "description": "This is the name of the call. This is just for your own reference.",
- "maxLength": 40
- },
- "schedulePlan": {
- "description": "This is the schedule plan of the call.",
- "allOf": [
+ "type": "string",
+ "title": "String"
+ },
{
- "$ref": "#/components/schemas/SchedulePlan"
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
+ },
+ "title": "MessageArray"
}
+ ],
+ "examples": [
+ "Hello, how can you help me?",
+ [
+ {
+ "role": "user",
+ "content": "Hello, how can you help me?"
+ }
+ ]
]
},
- "transport": {
- "type": "object",
- "description": "This is the transport of the call."
- }
- },
- "required": [
- "id",
- "orgId",
- "createdAt",
- "updatedAt"
- ]
- },
- "CallBatchError": {
- "type": "object",
- "properties": {
- "customer": {
- "$ref": "#/components/schemas/CreateCustomerDTO"
- },
- "error": {
- "type": "string"
- }
- },
- "required": [
- "customer",
- "error"
- ]
- },
- "CallBatchResponse": {
- "type": "object",
- "properties": {
- "results": {
- "description": "This is the list of calls that were created.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Call"
- }
+ "stream": {
+ "type": "boolean",
+ "description": "This is a flag that determines whether the response should be streamed.\nWhen true, the response will be sent as chunks of text.",
+ "default": false
},
- "errors": {
- "description": "This is the list of calls that failed to be created.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/CallBatchError"
- }
+ "previousChatId": {
+ "type": "string",
+ "description": "This is the ID of the chat that will be used as context for the new chat.\nThe messages from the previous chat will be used as context.\nMutually exclusive with sessionId."
}
},
"required": [
- "results",
- "errors"
+ "input"
]
},
- "CreateCallDTO": {
+ "GetChatPaginatedDTO": {
"type": "object",
"properties": {
- "customers": {
- "description": "This is used to issue batch calls to multiple customers.\n\nOnly relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/CreateCustomerDTO"
- }
+ "assistantId": {
+ "type": "string",
+ "description": "This is the unique identifier for the assistant that will be used for the chat."
},
- "name": {
+ "workflowId": {
"type": "string",
- "description": "This is the name of the call. This is just for your own reference.",
- "maxLength": 40
+ "description": "This is the unique identifier for the workflow that will be used for the chat."
},
- "schedulePlan": {
- "description": "This is the schedule plan of the call.",
- "allOf": [
- {
- "$ref": "#/components/schemas/SchedulePlan"
- }
- ]
+ "sessionId": {
+ "type": "string",
+ "description": "This is the unique identifier for the session that will be used for the chat."
},
- "transport": {
- "type": "object",
- "description": "This is the transport of the call."
+ "page": {
+ "type": "number",
+ "description": "This is the page number to return. Defaults to 1.",
+ "minimum": 1
},
- "assistantId": {
+ "sortOrder": {
"type": "string",
- "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead."
- },
- "assistant": {
- "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateAssistantDTO"
- }
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "enum": [
+ "ASC",
+ "DESC"
]
},
- "assistantOverrides": {
- "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AssistantOverrides"
- }
- ]
+ "limit": {
+ "type": "number",
+ "description": "This is the maximum number of items to return. Defaults to 100.",
+ "minimum": 0,
+ "maximum": 1000
},
- "squadId": {
+ "createdAtGt": {
+ "format": "date-time",
"type": "string",
- "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead."
+ "description": "This will return items where the createdAt is greater than the specified value."
},
- "squad": {
- "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateSquadDTO"
- }
- ]
+ "createdAtLt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is less than the specified value."
},
- "phoneNumberId": {
+ "createdAtGe": {
+ "format": "date-time",
"type": "string",
- "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ "description": "This will return items where the createdAt is greater than or equal to the specified value."
},
- "phoneNumber": {
- "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
- {
- "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
- }
- ]
+ "createdAtLe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is less than or equal to the specified value."
},
- "customerId": {
+ "updatedAtGt": {
+ "format": "date-time",
"type": "string",
- "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
+ "description": "This will return items where the updatedAt is greater than the specified value."
},
- "customer": {
- "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateCustomerDTO"
- }
- ]
- }
- }
- },
- "PaginationMeta": {
- "type": "object",
- "properties": {
- "itemsPerPage": {
- "type": "number"
+ "updatedAtLt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is less than the specified value."
},
- "totalItems": {
- "type": "number"
+ "updatedAtGe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is greater than or equal to the specified value."
},
- "currentPage": {
- "type": "number"
+ "updatedAtLe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is less than or equal to the specified value."
}
- },
- "required": [
- "itemsPerPage",
- "totalItems",
- "currentPage"
- ]
+ }
},
- "CallPaginatedResponse": {
+ "ChatPaginatedResponse": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Call"
+ "$ref": "#/components/schemas/Chat"
}
},
"metadata": {
@@ -19124,568 +22848,717 @@
"metadata"
]
},
- "CreateOutboundCallDTO": {
+ "CreateChatStreamResponse": {
"type": "object",
"properties": {
- "customers": {
- "description": "This is used to issue batch calls to multiple customers.\n\nOnly relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/CreateCustomerDTO"
- }
- },
- "name": {
- "type": "string",
- "description": "This is the name of the call. This is just for your own reference.",
- "maxLength": 40
- },
- "schedulePlan": {
- "description": "This is the schedule plan of the call.",
- "allOf": [
- {
- "$ref": "#/components/schemas/SchedulePlan"
- }
- ]
- },
- "transport": {
- "type": "object",
- "description": "This is the transport of the call."
- },
- "assistantId": {
- "type": "string",
- "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead."
- },
- "assistant": {
- "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateAssistantDTO"
- }
- ]
- },
- "assistantOverrides": {
- "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AssistantOverrides"
- }
- ]
- },
- "squadId": {
+ "id": {
"type": "string",
- "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead."
- },
- "squad": {
- "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateSquadDTO"
- }
- ]
+ "description": "This is the unique identifier for the streaming response."
},
- "phoneNumberId": {
+ "path": {
"type": "string",
- "description": "This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
- },
- "phoneNumber": {
- "description": "This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
- {
- "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
- }
- ]
+ "description": "This is the path to the content being updated.\nFormat: `chat.output[{contentIndex}].content` where contentIndex identifies the specific content item.",
+ "example": "chat.output[0].content"
},
- "customerId": {
+ "delta": {
"type": "string",
- "description": "This is the customer that will be called. To call a transient customer , use `customer` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type."
- },
- "customer": {
- "description": "This is the customer that will be called. To call an existing customer, use `customerId` instead.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type.",
- "allOf": [
- {
- "$ref": "#/components/schemas/CreateCustomerDTO"
- }
- ]
+ "description": "This is the incremental content chunk being streamed."
}
- }
+ },
+ "required": [
+ "id",
+ "path",
+ "delta"
+ ]
},
- "CreateWebCallDTO": {
+ "OpenAIResponsesRequest": {
"type": "object",
"properties": {
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead."
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead."
},
"assistant": {
- "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.",
+ "description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
}
]
},
- "assistantOverrides": {
- "description": "These are the overrides for the `assistant` or `assistantId`'s settings and template variables.",
- "allOf": [
- {
- "$ref": "#/components/schemas/AssistantOverrides"
- }
- ]
+ "name": {
+ "type": "string",
+ "description": "This is the name of the chat. This is just for your own reference.",
+ "maxLength": 40
},
- "squadId": {
+ "sessionId": {
"type": "string",
- "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead."
+ "description": "This is the ID of the session that will be used for the chat.\nMutually exclusive with previousChatId."
},
- "squad": {
- "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.",
- "allOf": [
+ "input": {
+ "description": "This is the input text for the chat.\nCan be a string or an array of chat messages.\nThis field is REQUIRED for chat creation.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/CreateSquadDTO"
+ "type": "string",
+ "title": "String"
+ },
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
+ },
+ "title": "MessageArray"
}
+ ],
+ "examples": [
+ "Hello, how can you help me?",
+ [
+ {
+ "role": "user",
+ "content": "Hello, how can you help me?"
+ }
+ ]
]
- }
- }
- },
- "UpdateCallDTO": {
- "type": "object",
- "properties": {
- "name": {
+ },
+ "stream": {
+ "type": "boolean",
+ "description": "Whether to stream the response or not.",
+ "default": true
+ },
+ "previousChatId": {
"type": "string",
- "description": "This is the name of the call. This is just for your own reference.",
- "maxLength": 40
+ "description": "This is the ID of the chat that will be used as context for the new chat.\nThe messages from the previous chat will be used as context.\nMutually exclusive with sessionId."
}
- }
- },
- "ChatServiceResponse": {
- "type": "object",
- "properties": {}
+ },
+ "required": [
+ "input"
+ ]
},
- "ChatCompletionMessageMetadata": {
+ "ResponseOutputText": {
"type": "object",
"properties": {
- "taskName": {
- "type": "string"
- },
- "taskType": {
- "type": "string"
- },
- "taskOutput": {
- "type": "string"
- },
- "taskState": {
- "type": "object"
- },
- "nodeTrace": {
+ "annotations": {
+ "default": [],
+ "description": "Annotations in the text output",
"type": "array",
"items": {
- "type": "string"
+ "type": "object"
}
+ },
+ "text": {
+ "type": "string",
+ "description": "The text output from the model"
+ },
+ "type": {
+ "type": "string",
+ "default": "output_text",
+ "description": "The type of the output text",
+ "enum": [
+ "output_text"
+ ]
}
},
"required": [
- "taskName",
- "taskType",
- "taskOutput"
+ "annotations",
+ "text",
+ "type"
]
},
- "ChatCompletionMessageWorkflows": {
+ "ResponseOutputMessage": {
"type": "object",
"properties": {
- "role": {
- "type": "object"
+ "id": {
+ "type": "string",
+ "description": "The unique ID of the output message"
},
"content": {
+ "description": "Content of the output message",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ResponseOutputText"
+ }
+ },
+ "role": {
+ "type": "string",
+ "default": "assistant",
+ "description": "The role of the output message",
+ "enum": [
+ "assistant"
+ ]
+ },
+ "status": {
"type": "string",
- "nullable": true
+ "description": "The status of the message",
+ "enum": [
+ "in_progress",
+ "completed",
+ "incomplete"
+ ]
},
- "metadata": {
- "$ref": "#/components/schemas/ChatCompletionMessageMetadata"
+ "type": {
+ "type": "string",
+ "default": "message",
+ "description": "The type of the output message",
+ "enum": [
+ "message"
+ ]
}
},
"required": [
+ "id",
+ "content",
"role",
- "content"
+ "status",
+ "type"
]
},
- "Say": {
+ "ResponseObject": {
"type": "object",
"properties": {
- "type": {
+ "id": {
+ "type": "string",
+ "description": "Unique identifier for this Response"
+ },
+ "object": {
"type": "string",
+ "default": "response",
+ "description": "The object type",
"enum": [
- "say"
+ "response"
]
},
- "exact": {
- "type": "string",
- "maxLength": 1000
+ "created_at": {
+ "type": "number",
+ "description": "Unix timestamp (in seconds) of when this Response was created"
},
- "prompt": {
+ "status": {
"type": "string",
- "maxLength": 1000
+ "description": "Status of the response",
+ "enum": [
+ "completed",
+ "failed",
+ "in_progress",
+ "incomplete"
+ ]
},
- "name": {
+ "error": {
"type": "string",
- "maxLength": 80
+ "nullable": true,
+ "default": null,
+ "description": "Error message if the response failed"
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
+ "output": {
+ "description": "Output messages from the model",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ResponseOutputMessage"
+ }
}
},
"required": [
- "type",
- "name"
+ "id",
+ "object",
+ "created_at",
+ "status",
+ "output"
]
},
- "SayHook": {
+ "ResponseTextDeltaEvent": {
"type": "object",
"properties": {
+ "content_index": {
+ "type": "number",
+ "description": "Index of the content part"
+ },
+ "delta": {
+ "type": "string",
+ "description": "Text delta being added"
+ },
+ "item_id": {
+ "type": "string",
+ "description": "ID of the output item"
+ },
+ "output_index": {
+ "type": "number",
+ "description": "Index of the output item"
+ },
"type": {
"type": "string",
+ "default": "response.output_text.delta",
+ "description": "Event type",
"enum": [
- "say"
+ "response.output_text.delta"
]
+ }
+ },
+ "required": [
+ "content_index",
+ "delta",
+ "item_id",
+ "output_index",
+ "type"
+ ]
+ },
+ "ResponseTextDoneEvent": {
+ "type": "object",
+ "properties": {
+ "content_index": {
+ "type": "number",
+ "description": "Index of the content part"
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
+ "item_id": {
+ "type": "string",
+ "description": "ID of the output item"
},
- "exact": {
+ "output_index": {
+ "type": "number",
+ "description": "Index of the output item"
+ },
+ "text": {
"type": "string",
- "maxLength": 1000
+ "description": "Complete text content"
},
- "prompt": {
+ "type": {
"type": "string",
- "maxLength": 1000
+ "default": "response.output_text.done",
+ "description": "Event type",
+ "enum": [
+ "response.output_text.done"
+ ]
}
},
"required": [
+ "content_index",
+ "item_id",
+ "output_index",
+ "text",
"type"
]
},
- "Hook": {
+ "ResponseCompletedEvent": {
"type": "object",
"properties": {
- "on": {
+ "response": {
+ "description": "The completed response",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ResponseObject"
+ }
+ ]
+ },
+ "type": {
"type": "string",
+ "default": "response.completed",
+ "description": "Event type",
"enum": [
- "task.start",
- "task.output.confirmation",
- "task.delayed"
- ],
- "maxLength": 80
- },
- "do": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/SayHook"
- }
+ "response.completed"
+ ]
}
},
"required": [
- "on",
- "do"
+ "response",
+ "type"
]
},
- "Gather": {
+ "ResponseErrorEvent": {
"type": "object",
"properties": {
"type": {
"type": "string",
+ "default": "error",
+ "description": "Event type",
"enum": [
- "gather"
+ "error"
]
},
- "output": {
- "$ref": "#/components/schemas/JsonSchema"
- },
- "confirmContent": {
- "type": "boolean",
- "description": "This is whether or not the workflow should read back the gathered data to the user, and ask about its correctness."
- },
- "hooks": {
- "description": "This is a list of hooks for a task.\nEach hook is a list of tasks to run on a trigger (such as on start, on failure, etc).\nOnly Say is supported for now.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Hook"
- }
- },
- "maxRetries": {
- "type": "number",
- "description": "This is the number of times we should try to gather the information from the user before we failover to the fail path. An example of this would be a user refusing to give their phone number for privacy reasons, and then going down a different path on account of this"
+ "code": {
+ "type": "string",
+ "description": "Error code",
+ "example": "ERR_SOMETHING"
},
- "literalTemplate": {
+ "message": {
"type": "string",
- "description": "This is a liquid templating string. On the first call to Gather, the template will be filled out with variables from the context, and will be spoken verbatim to the user. An example would be \"Base on your zipcode, it looks like you could be in one of these counties: {{ counties | join: \", \" }}. Which one do you live in?\""
+ "description": "Error message",
+ "example": "Something went wrong"
},
- "name": {
+ "param": {
"type": "string",
- "maxLength": 80
+ "nullable": true,
+ "description": "Parameter that caused the error"
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
+ "sequence_number": {
+ "type": "number",
+ "description": "Sequence number of the event",
+ "example": 1
}
},
"required": [
"type",
- "output",
- "name"
+ "code",
+ "message",
+ "sequence_number"
]
},
- "ApiRequest": {
+ "Session": {
"type": "object",
"properties": {
- "type": {
+ "id": {
"type": "string",
- "enum": [
- "apiRequest"
- ]
+ "description": "This is the unique identifier for the session."
},
- "method": {
+ "orgId": {
"type": "string",
- "enum": [
- "POST",
- "GET"
- ]
+ "description": "This is the unique identifier for the organization that owns this session."
},
- "url": {
+ "createdAt": {
+ "format": "date-time",
"type": "string",
- "description": "Api endpoint to send requests to."
+ "description": "This is the ISO 8601 timestamp indicating when the session was created."
},
- "headers": {
- "description": "These are the custom headers to include in the Api Request sent.\n\nEach key-value pair represents a header name and its value.",
- "allOf": [
- {
- "$ref": "#/components/schemas/JsonSchema"
- }
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 timestamp indicating when the session was last updated."
+ },
+ "name": {
+ "type": "string",
+ "description": "This is a user-defined name for the session. Maximum length is 40 characters.",
+ "maxLength": 40
+ },
+ "status": {
+ "type": "string",
+ "description": "This is the current status of the session. Can be either 'active' or 'completed'.",
+ "enum": [
+ "active",
+ "completed"
]
},
- "body": {
- "description": "This defined the JSON body of your Api Request. For example, if `body_schema`\nincluded \"my_field\": \"my_gather_statement.user_age\", then the json body sent to the server would have that particular value assign to it.\nRight now, only data from gather statements are supported.",
+ "expirationSeconds": {
+ "type": "number",
+ "description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
+ "minimum": 60,
+ "maximum": 2592000,
+ "example": 86400
+ },
+ "assistantId": {
+ "type": "string",
+ "description": "This is the ID of the assistant associated with this session. Use this when referencing an existing assistant."
+ },
+ "assistant": {
+ "description": "This is the assistant configuration for this session. Use this when creating a new assistant configuration.\nIf assistantId is provided, this will be ignored.",
"allOf": [
{
- "$ref": "#/components/schemas/JsonSchema"
+ "$ref": "#/components/schemas/CreateAssistantDTO"
}
]
},
- "mode": {
- "type": "string",
- "description": "This is the mode of the Api Request.\nWe only support BLOCKING and BACKGROUND for now.",
- "enum": [
- "blocking",
- "background"
- ]
- },
- "hooks": {
- "description": "This is a list of hooks for a task.\nEach hook is a list of tasks to run on a trigger (such as on start, on failure, etc).\nOnly Say is supported for now.",
+ "messages": {
"type": "array",
+ "description": "This is an array of chat messages in the session.",
"items": {
- "$ref": "#/components/schemas/Hook"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
}
},
- "output": {
- "description": "This is the schema for the outputs of the Api Request.",
+ "customer": {
+ "description": "This is the customer information associated with this session.",
"allOf": [
{
- "$ref": "#/components/schemas/JsonSchema"
+ "$ref": "#/components/schemas/CreateCustomerDTO"
}
]
},
- "name": {
+ "phoneNumberId": {
"type": "string",
- "maxLength": 80
+ "description": "This is the ID of the phone number associated with this session."
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
+ "phoneNumber": {
+ "description": "This is the phone number configuration for this session.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
+ }
+ ]
}
},
"required": [
- "type",
- "method",
- "url",
- "mode",
- "name"
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
]
},
- "Hangup": {
+ "CreateSessionDTO": {
"type": "object",
"properties": {
- "type": {
- "type": "string",
- "enum": [
- "hangup"
- ]
- },
"name": {
"type": "string",
- "maxLength": 80
+ "description": "This is a user-defined name for the session. Maximum length is 40 characters.",
+ "maxLength": 40
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
- }
- },
- "required": [
- "type",
- "name"
- ]
- },
- "Transfer": {
- "type": "object",
- "properties": {
- "type": {
+ "status": {
"type": "string",
+ "description": "This is the current status of the session. Can be either 'active' or 'completed'.",
"enum": [
- "transfer"
+ "active",
+ "completed"
]
},
- "destination": {
- "type": "object"
+ "expirationSeconds": {
+ "type": "number",
+ "description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
+ "minimum": 60,
+ "maximum": 2592000,
+ "example": 86400
},
- "name": {
+ "assistantId": {
"type": "string",
- "maxLength": 80
+ "description": "This is the ID of the assistant associated with this session. Use this when referencing an existing assistant."
},
- "metadata": {
- "type": "object",
- "description": "This is for metadata you want to store on the task."
- }
- },
- "required": [
- "type",
- "destination",
- "name"
- ]
- },
- "CreateWorkflowDTO": {
- "type": "object",
- "properties": {
- "nodes": {
+ "assistant": {
+ "description": "This is the assistant configuration for this session. Use this when creating a new assistant configuration.\nIf assistantId is provided, this will be ignored.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
+ "messages": {
"type": "array",
+ "description": "This is an array of chat messages in the session.",
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/Say",
- "title": "Say"
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
},
{
- "$ref": "#/components/schemas/Gather",
- "title": "Gather"
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
},
{
- "$ref": "#/components/schemas/ApiRequest",
- "title": "ApiRequest"
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
},
{
- "$ref": "#/components/schemas/Hangup",
- "title": "Hangup"
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
},
{
- "$ref": "#/components/schemas/Transfer",
- "title": "Transfer"
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
}
]
}
},
- "model": {
- "description": "These are the options for the workflow's LLM.",
- "oneOf": [
- {
- "$ref": "#/components/schemas/AnthropicModel",
- "title": "Anthropic"
- },
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
- {
- "$ref": "#/components/schemas/CerebrasModel",
- "title": "Cerebras"
- },
- {
- "$ref": "#/components/schemas/CustomLLMModel",
- "title": "CustomLLM"
- },
- {
- "$ref": "#/components/schemas/DeepInfraModel",
- "title": "DeepInfra"
- },
- {
- "$ref": "#/components/schemas/DeepSeekModel",
- "title": "DeepSeek"
- },
- {
- "$ref": "#/components/schemas/GoogleModel",
- "title": "Google"
- },
- {
- "$ref": "#/components/schemas/GroqModel",
- "title": "Groq"
- },
- {
- "$ref": "#/components/schemas/InflectionAIModel",
- "title": "InflectionAI"
- },
- {
- "$ref": "#/components/schemas/OpenAIModel",
- "title": "OpenAI"
- },
- {
- "$ref": "#/components/schemas/OpenRouterModel",
- "title": "OpenRouter"
- },
- {
- "$ref": "#/components/schemas/PerplexityAIModel",
- "title": "PerplexityAI"
- },
- {
- "$ref": "#/components/schemas/TogetherAIModel",
- "title": "Together"
- },
+ "customer": {
+ "description": "This is the customer information associated with this session.",
+ "allOf": [
{
- "$ref": "#/components/schemas/XaiModel",
- "title": "XAI"
+ "$ref": "#/components/schemas/CreateCustomerDTO"
}
]
},
+ "phoneNumberId": {
+ "type": "string",
+ "description": "This is the ID of the phone number associated with this session."
+ },
+ "phoneNumber": {
+ "description": "This is the phone number configuration for this session.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ImportTwilioPhoneNumberDTO"
+ }
+ ]
+ }
+ }
+ },
+ "UpdateSessionDTO": {
+ "type": "object",
+ "properties": {
"name": {
"type": "string",
- "maxLength": 80
+ "description": "This is the new name for the session. Maximum length is 40 characters.",
+ "maxLength": 40
},
- "edges": {
+ "status": {
+ "type": "string",
+ "description": "This is the new status for the session.",
+ "enum": [
+ "active",
+ "completed"
+ ]
+ },
+ "expirationSeconds": {
+ "type": "number",
+ "description": "Session expiration time in seconds. Defaults to 24 hours (86400 seconds) if not set.",
+ "minimum": 60,
+ "maximum": 2592000,
+ "example": 86400
+ },
+ "messages": {
"type": "array",
+ "description": "This is the updated array of chat messages.",
"items": {
- "$ref": "#/components/schemas/Edge"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SystemMessage",
+ "title": "SystemMessage"
+ },
+ {
+ "$ref": "#/components/schemas/UserMessage",
+ "title": "UserMessage"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantMessage",
+ "title": "AssistantMessage"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessage",
+ "title": "ToolMessage"
+ },
+ {
+ "$ref": "#/components/schemas/DeveloperMessage",
+ "title": "DeveloperMessage"
+ }
+ ]
}
}
- },
- "required": [
- "nodes",
- "name",
- "edges"
- ]
+ }
},
- "ChatCompletionsDTO": {
+ "GetSessionPaginatedDTO": {
"type": "object",
"properties": {
- "messages": {
+ "name": {
+ "type": "string",
+ "description": "This is the name of the session to filter by."
+ },
+ "assistantId": {
+ "type": "string",
+ "description": "This is the ID of the assistant to filter sessions by."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the ID of the workflow to filter sessions by."
+ },
+ "page": {
+ "type": "number",
+ "description": "This is the page number to return. Defaults to 1.",
+ "minimum": 1
+ },
+ "sortOrder": {
+ "type": "string",
+ "description": "This is the sort order for pagination. Defaults to 'DESC'.",
+ "enum": [
+ "ASC",
+ "DESC"
+ ]
+ },
+ "limit": {
+ "type": "number",
+ "description": "This is the maximum number of items to return. Defaults to 100.",
+ "minimum": 0,
+ "maximum": 1000
+ },
+ "createdAtGt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is greater than the specified value."
+ },
+ "createdAtLt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is less than the specified value."
+ },
+ "createdAtGe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is greater than or equal to the specified value."
+ },
+ "createdAtLe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the createdAt is less than or equal to the specified value."
+ },
+ "updatedAtGt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is greater than the specified value."
+ },
+ "updatedAtLt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is less than the specified value."
+ },
+ "updatedAtGe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is greater than or equal to the specified value."
+ },
+ "updatedAtLe": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This will return items where the updatedAt is less than or equal to the specified value."
+ }
+ }
+ },
+ "SessionPaginatedResponse": {
+ "type": "object",
+ "properties": {
+ "results": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/ChatCompletionMessageWorkflows"
+ "$ref": "#/components/schemas/Session"
}
},
- "workflowId": {
- "type": "string"
- },
- "workflow": {
- "$ref": "#/components/schemas/CreateWorkflowDTO"
+ "metadata": {
+ "$ref": "#/components/schemas/PaginationMeta"
}
},
"required": [
- "messages"
+ "results",
+ "metadata"
]
},
"Assistant": {
@@ -19696,11 +23569,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AssemblyAITranscriber",
- "title": "AssemblyAI"
+ "title": "AssemblyAITranscriber"
},
{
"$ref": "#/components/schemas/AzureSpeechTranscriber",
- "title": "Azure"
+ "title": "AzureSpeechTranscriber"
},
{
"$ref": "#/components/schemas/CustomTranscriber",
@@ -19708,45 +23581,45 @@
},
{
"$ref": "#/components/schemas/DeepgramTranscriber",
- "title": "Deepgram"
+ "title": "DeepgramTranscriber"
},
{
"$ref": "#/components/schemas/ElevenLabsTranscriber",
- "title": "ElevenLabs"
+ "title": "ElevenLabsTranscriber"
},
{
"$ref": "#/components/schemas/GladiaTranscriber",
- "title": "Gladia"
+ "title": "GladiaTranscriber"
},
{
- "$ref": "#/components/schemas/SpeechmaticsTranscriber",
- "title": "Speechmatics"
+ "$ref": "#/components/schemas/GoogleTranscriber",
+ "title": "GoogleTranscriber"
},
{
- "$ref": "#/components/schemas/TalkscriberTranscriber",
- "title": "Talkscriber"
+ "$ref": "#/components/schemas/SpeechmaticsTranscriber",
+ "title": "SpeechmaticsTranscriber"
},
{
- "$ref": "#/components/schemas/GoogleTranscriber",
- "title": "Google"
+ "$ref": "#/components/schemas/TalkscriberTranscriber",
+ "title": "TalkscriberTranscriber"
},
{
"$ref": "#/components/schemas/OpenAITranscriber",
- "title": "OpenAI"
+ "title": "OpenAITranscriber"
}
]
},
"model": {
"description": "These are the options for the assistant's LLM.",
"oneOf": [
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
{
"$ref": "#/components/schemas/AnthropicModel",
"title": "Anthropic"
},
+ {
+ "$ref": "#/components/schemas/AnyscaleModel",
+ "title": "Anyscale"
+ },
{
"$ref": "#/components/schemas/CerebrasModel",
"title": "Cerebras"
@@ -19791,10 +23664,6 @@
"$ref": "#/components/schemas/TogetherAIModel",
"title": "Together"
},
- {
- "$ref": "#/components/schemas/VapiModel",
- "title": "Vapi"
- },
{
"$ref": "#/components/schemas/XaiModel",
"title": "XAI"
@@ -19806,11 +23675,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AzureVoice",
- "title": "Azure"
+ "title": "AzureVoice"
},
{
"$ref": "#/components/schemas/CartesiaVoice",
- "title": "Cartesia"
+ "title": "CartesiaVoice"
},
{
"$ref": "#/components/schemas/CustomVoice",
@@ -19818,39 +23687,39 @@
},
{
"$ref": "#/components/schemas/DeepgramVoice",
- "title": "Deepgram"
+ "title": "DeepgramVoice"
},
{
"$ref": "#/components/schemas/ElevenLabsVoice",
- "title": "ElevenLabs"
+ "title": "ElevenLabsVoice"
},
{
"$ref": "#/components/schemas/HumeVoice",
- "title": "Hume"
+ "title": "HumeVoice"
},
{
"$ref": "#/components/schemas/LMNTVoice",
- "title": "LMNT"
+ "title": "LMNTVoice"
},
{
"$ref": "#/components/schemas/NeuphonicVoice",
- "title": "Neuphonic"
+ "title": "NeuphonicVoice"
},
{
"$ref": "#/components/schemas/OpenAIVoice",
- "title": "OpenAI"
+ "title": "OpenAIVoice"
},
{
"$ref": "#/components/schemas/PlayHTVoice",
- "title": "PlayHT"
+ "title": "PlayHTVoice"
},
{
"$ref": "#/components/schemas/RimeAIVoice",
- "title": "RimeAI"
+ "title": "RimeAIVoice"
},
{
"$ref": "#/components/schemas/SmallestAIVoice",
- "title": "SmallestAI"
+ "title": "SmallestAIVoice"
},
{
"$ref": "#/components/schemas/TavusVoice",
@@ -19858,13 +23727,13 @@
},
{
"$ref": "#/components/schemas/VapiVoice",
- "title": "Vapi"
+ "title": "VapiVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SesameVoice",
+ "title": "SesameVoice"
}
- ],
- "default": {
- "provider": "playht",
- "voiceId": "jennifer"
- }
+ ]
},
"firstMessage": {
"type": "string",
@@ -19899,6 +23768,10 @@
{
"$ref": "#/components/schemas/TwilioVoicemailDetectionPlan",
"title": "Twilio"
+ },
+ {
+ "$ref": "#/components/schemas/VapiVoicemailDetectionPlan",
+ "title": "Vapi"
}
]
},
@@ -19917,6 +23790,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -19952,6 +23826,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -20031,7 +23906,6 @@
},
"backgroundSound": {
"description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.",
- "maxLength": 1000,
"oneOf": [
{
"type": "enum",
@@ -20276,6 +24150,10 @@
{
"$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
"title": "SlackOAuth2AuthorizationCredential"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO",
+ "title": "GoHighLevelMCPCredential"
}
],
"discriminator": {
@@ -20327,11 +24205,32 @@
"google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO",
"google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO",
"google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO",
- "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO"
+ "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
+ "ghl.oauth2-authorization": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO"
}
}
}
},
+ "hooks": {
+ "type": "array",
+ "description": "This is a set of actions that will be performed on certain events.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AssistantHookCallEnding",
+ "title": "AssistantHookCallEnding"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookAssistantSpeechInterrupted",
+ "title": "AssistantHookAssistantSpeechInterrupted"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookCustomerSpeechInterrupted",
+ "title": "AssistantHookCustomerSpeechInterrupted"
+ }
+ ]
+ }
+ },
"name": {
"type": "string",
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
@@ -20426,13 +24325,6 @@
}
]
},
- "hooks": {
- "description": "This is a set of actions that will be performed on certain events.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHooks"
- }
- },
"keypadInputPlan": {
"$ref": "#/components/schemas/KeypadInputPlan"
},
@@ -20480,6 +24372,24 @@
"metadata"
]
},
+ "AssistantVersionPaginatedResponse": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array"
+ },
+ "metadata": {
+ "$ref": "#/components/schemas/PaginationMeta"
+ },
+ "nextPageState": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "results",
+ "metadata"
+ ]
+ },
"UpdateAssistantDTO": {
"type": "object",
"properties": {
@@ -20488,11 +24398,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AssemblyAITranscriber",
- "title": "AssemblyAI"
+ "title": "AssemblyAITranscriber"
},
{
"$ref": "#/components/schemas/AzureSpeechTranscriber",
- "title": "Azure"
+ "title": "AzureSpeechTranscriber"
},
{
"$ref": "#/components/schemas/CustomTranscriber",
@@ -20500,45 +24410,45 @@
},
{
"$ref": "#/components/schemas/DeepgramTranscriber",
- "title": "Deepgram"
+ "title": "DeepgramTranscriber"
},
{
"$ref": "#/components/schemas/ElevenLabsTranscriber",
- "title": "ElevenLabs"
+ "title": "ElevenLabsTranscriber"
},
{
"$ref": "#/components/schemas/GladiaTranscriber",
- "title": "Gladia"
+ "title": "GladiaTranscriber"
},
{
- "$ref": "#/components/schemas/SpeechmaticsTranscriber",
- "title": "Speechmatics"
+ "$ref": "#/components/schemas/GoogleTranscriber",
+ "title": "GoogleTranscriber"
},
{
- "$ref": "#/components/schemas/TalkscriberTranscriber",
- "title": "Talkscriber"
+ "$ref": "#/components/schemas/SpeechmaticsTranscriber",
+ "title": "SpeechmaticsTranscriber"
},
{
- "$ref": "#/components/schemas/GoogleTranscriber",
- "title": "Google"
+ "$ref": "#/components/schemas/TalkscriberTranscriber",
+ "title": "TalkscriberTranscriber"
},
{
"$ref": "#/components/schemas/OpenAITranscriber",
- "title": "OpenAI"
+ "title": "OpenAITranscriber"
}
]
},
"model": {
"description": "These are the options for the assistant's LLM.",
"oneOf": [
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
{
"$ref": "#/components/schemas/AnthropicModel",
"title": "Anthropic"
},
+ {
+ "$ref": "#/components/schemas/AnyscaleModel",
+ "title": "Anyscale"
+ },
{
"$ref": "#/components/schemas/CerebrasModel",
"title": "Cerebras"
@@ -20583,10 +24493,6 @@
"$ref": "#/components/schemas/TogetherAIModel",
"title": "Together"
},
- {
- "$ref": "#/components/schemas/VapiModel",
- "title": "Vapi"
- },
{
"$ref": "#/components/schemas/XaiModel",
"title": "XAI"
@@ -20598,11 +24504,11 @@
"oneOf": [
{
"$ref": "#/components/schemas/AzureVoice",
- "title": "Azure"
+ "title": "AzureVoice"
},
{
"$ref": "#/components/schemas/CartesiaVoice",
- "title": "Cartesia"
+ "title": "CartesiaVoice"
},
{
"$ref": "#/components/schemas/CustomVoice",
@@ -20610,39 +24516,39 @@
},
{
"$ref": "#/components/schemas/DeepgramVoice",
- "title": "Deepgram"
+ "title": "DeepgramVoice"
},
{
"$ref": "#/components/schemas/ElevenLabsVoice",
- "title": "ElevenLabs"
+ "title": "ElevenLabsVoice"
},
{
"$ref": "#/components/schemas/HumeVoice",
- "title": "Hume"
+ "title": "HumeVoice"
},
{
"$ref": "#/components/schemas/LMNTVoice",
- "title": "LMNT"
+ "title": "LMNTVoice"
},
{
"$ref": "#/components/schemas/NeuphonicVoice",
- "title": "Neuphonic"
+ "title": "NeuphonicVoice"
},
{
"$ref": "#/components/schemas/OpenAIVoice",
- "title": "OpenAI"
+ "title": "OpenAIVoice"
},
{
"$ref": "#/components/schemas/PlayHTVoice",
- "title": "PlayHT"
+ "title": "PlayHTVoice"
},
{
"$ref": "#/components/schemas/RimeAIVoice",
- "title": "RimeAI"
+ "title": "RimeAIVoice"
},
{
"$ref": "#/components/schemas/SmallestAIVoice",
- "title": "SmallestAI"
+ "title": "SmallestAIVoice"
},
{
"$ref": "#/components/schemas/TavusVoice",
@@ -20650,13 +24556,13 @@
},
{
"$ref": "#/components/schemas/VapiVoice",
- "title": "Vapi"
+ "title": "VapiVoice"
+ },
+ {
+ "$ref": "#/components/schemas/SesameVoice",
+ "title": "SesameVoice"
}
- ],
- "default": {
- "provider": "playht",
- "voiceId": "jennifer"
- }
+ ]
},
"firstMessage": {
"type": "string",
@@ -20691,6 +24597,10 @@
{
"$ref": "#/components/schemas/TwilioVoicemailDetectionPlan",
"title": "Twilio"
+ },
+ {
+ "$ref": "#/components/schemas/VapiVoicemailDetectionPlan",
+ "title": "Vapi"
}
]
},
@@ -20709,6 +24619,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -20744,6 +24655,7 @@
"transcript",
"tool-calls",
"tool-calls-result",
+ "tool.completed",
"transfer-update",
"user-interrupted",
"voice-input",
@@ -20823,7 +24735,6 @@
},
"backgroundSound": {
"description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.",
- "maxLength": 1000,
"oneOf": [
{
"type": "enum",
@@ -21068,6 +24979,10 @@
{
"$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
"title": "SlackOAuth2AuthorizationCredential"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO",
+ "title": "GoHighLevelMCPCredential"
}
],
"discriminator": {
@@ -21119,11 +25034,32 @@
"google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO",
"google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO",
"google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO",
- "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO"
+ "slack.oauth2-authorization": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO",
+ "ghl.oauth2-authorization": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO"
}
}
}
},
+ "hooks": {
+ "type": "array",
+ "description": "This is a set of actions that will be performed on certain events.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/AssistantHookCallEnding",
+ "title": "AssistantHookCallEnding"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookAssistantSpeechInterrupted",
+ "title": "AssistantHookAssistantSpeechInterrupted"
+ },
+ {
+ "$ref": "#/components/schemas/AssistantHookCustomerSpeechInterrupted",
+ "title": "AssistantHookCustomerSpeechInterrupted"
+ }
+ ]
+ }
+ },
"name": {
"type": "string",
"description": "This is the name of the assistant.\n\nThis is required when you want to transfer between assistants in a call.",
@@ -21218,13 +25154,6 @@
}
]
},
- "hooks": {
- "description": "This is a set of actions that will be performed on certain events.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/AssistantHooks"
- }
- },
"keypadInputPlan": {
"$ref": "#/components/schemas/KeypadInputPlan"
}
@@ -21304,11 +25233,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21373,6 +25306,11 @@
"twilio"
]
},
+ "smsEnabled": {
+ "type": "boolean",
+ "description": "Controls whether Vapi sets the messaging webhook URL on the Twilio number during import.\n\nIf set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is.\nIf `true` or omitted (default), Vapi will configure both the voice and messaging URLs.\n\n@default true",
+ "default": true
+ },
"id": {
"type": "string",
"description": "This is the unique identifier for the phone number."
@@ -21400,6 +25338,18 @@
"blocked"
]
},
+ "twilioAuthToken": {
+ "type": "string",
+ "description": "This is the Twilio Auth Token for the phone number."
+ },
+ "twilioApiKey": {
+ "type": "string",
+ "description": "This is the Twilio API Key for the phone number."
+ },
+ "twilioApiSecret": {
+ "type": "string",
+ "description": "This is the Twilio API Secret for the phone number."
+ },
"name": {
"type": "string",
"description": "This is the name of the phone number. This is just for your own reference.",
@@ -21407,11 +25357,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21428,10 +25382,6 @@
"twilioAccountSid": {
"type": "string",
"description": "This is the Twilio Account SID for the phone number."
- },
- "twilioAuthToken": {
- "type": "string",
- "description": "This is the Twilio Auth Token for the phone number."
}
},
"required": [
@@ -21441,8 +25391,7 @@
"createdAt",
"updatedAt",
"number",
- "twilioAccountSid",
- "twilioAuthToken"
+ "twilioAccountSid"
]
},
"VonagePhoneNumber": {
@@ -21514,11 +25463,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21645,11 +25598,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21755,11 +25712,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21845,11 +25806,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21900,6 +25865,11 @@
"twilio"
]
},
+ "smsEnabled": {
+ "type": "boolean",
+ "description": "Controls whether Vapi sets the messaging webhook URL on the Twilio number during import.\n\nIf set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is.\nIf `true` or omitted (default), Vapi will configure both the voice and messaging URLs.\n\n@default true",
+ "default": true
+ },
"number": {
"type": "string",
"description": "These are the digits of the phone number you own on your Twilio."
@@ -21912,6 +25882,14 @@
"type": "string",
"description": "This is the Twilio Auth Token for the phone number."
},
+ "twilioApiKey": {
+ "type": "string",
+ "description": "This is the Twilio API Key for the phone number."
+ },
+ "twilioApiSecret": {
+ "type": "string",
+ "description": "This is the Twilio API Secret for the phone number."
+ },
"name": {
"type": "string",
"description": "This is the name of the phone number. This is just for your own reference.",
@@ -21919,11 +25897,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -21937,8 +25919,7 @@
"required": [
"provider",
"number",
- "twilioAccountSid",
- "twilioAuthToken"
+ "twilioAccountSid"
]
},
"CreateVonagePhoneNumberDTO": {
@@ -21991,11 +25972,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22072,11 +26057,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22139,13 +26128,17 @@
"description": "This is the name of the phone number. This is just for your own reference.",
"maxLength": 40
},
- "assistantId": {
+ "assistantId": {
+ "type": "string",
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22202,11 +26195,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22256,6 +26253,11 @@
]
}
},
+ "smsEnabled": {
+ "type": "boolean",
+ "description": "Controls whether Vapi sets the messaging webhook URL on the Twilio number during import.\n\nIf set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is.\nIf `true` or omitted (default), Vapi will configure both the voice and messaging URLs.\n\n@default true",
+ "default": true
+ },
"name": {
"type": "string",
"description": "This is the name of the phone number. This is just for your own reference.",
@@ -22263,11 +26265,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22288,6 +26294,14 @@
"twilioAuthToken": {
"type": "string",
"description": "This is the Twilio Auth Token for the phone number."
+ },
+ "twilioApiKey": {
+ "type": "string",
+ "description": "This is the Twilio API Key for the phone number."
+ },
+ "twilioApiSecret": {
+ "type": "string",
+ "description": "This is the Twilio API Secret for the phone number."
}
}
},
@@ -22326,11 +26340,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22385,11 +26403,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22448,11 +26470,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22516,11 +26542,15 @@
},
"assistantId": {
"type": "string",
- "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the assistant that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ },
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
+ "description": "This is the squad that will be used for incoming calls to this phone number.\n\nIf neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected."
},
"server": {
"description": "This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema.\n\nThe order of precedence is:\n\n1. assistant.server\n2. phoneNumber.server\n3. org.server",
@@ -22579,11 +26609,6 @@
"DtmfTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -22640,14 +26665,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -22661,11 +26678,6 @@
"EndCallTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -22722,14 +26734,88 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ },
+ "required": [
+ "type",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
+ ]
+ },
+ "FunctionTool": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "function"
+ ],
+ "description": "The type of tool. \"function\" for Function tool."
+ },
+ "async": {
+ "type": "boolean",
+ "example": false,
+ "description": "This determines if the tool is async.\n\n If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\n If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\n Defaults to synchronous (`false`)."
},
"server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
"$ref": "#/components/schemas/Server"
}
]
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the tool."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the organization that this tool belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
}
},
"required": [
@@ -22740,14 +26826,82 @@
"updatedAt"
]
},
- "FunctionTool": {
+ "GhlTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "ghl"
+ ],
+ "description": "The type of tool. \"ghl\" for GHL tool."
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the tool."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the organization that this tool belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
},
+ "metadata": {
+ "$ref": "#/components/schemas/GhlToolMetadata"
+ }
+ },
+ "required": [
+ "type",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt",
+ "metadata"
+ ]
+ },
+ "MakeTool": {
+ "type": "object",
+ "properties": {
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -22775,9 +26929,9 @@
"type": {
"type": "string",
"enum": [
- "function"
+ "make"
],
- "description": "The type of tool. \"function\" for Function tool."
+ "description": "The type of tool. \"make\" for Make tool."
},
"id": {
"type": "string",
@@ -22805,11 +26959,95 @@
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "metadata": {
+ "$ref": "#/components/schemas/MakeToolMetadata"
+ }
+ },
+ "required": [
+ "type",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt",
+ "metadata"
+ ]
+ },
+ "TransferCallTool": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "transferCall"
+ ]
+ },
+ "destinations": {
+ "type": "array",
+ "description": "These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TransferDestinationAssistant",
+ "title": "Assistant"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationNumber",
+ "title": "Number"
+ },
+ {
+ "$ref": "#/components/schemas/TransferDestinationSip",
+ "title": "Sip"
+ }
+ ]
+ }
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the tool."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the organization that this tool belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -22822,14 +27060,9 @@
"updatedAt"
]
},
- "GhlTool": {
+ "OutputTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -22857,9 +27090,9 @@
"type": {
"type": "string",
"enum": [
- "ghl"
+ "output"
],
- "description": "The type of tool. \"ghl\" for GHL tool."
+ "description": "The type of tool. \"output\" for Output tool."
},
"id": {
"type": "string",
@@ -22886,36 +27119,221 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ },
+ "required": [
+ "type",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
+ ]
+ },
+ "BashTool": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "bash"
+ ],
+ "description": "The type of tool. \"bash\" for Bash tool."
+ },
+ "subType": {
+ "type": "string",
+ "enum": [
+ "bash_20241022"
+ ],
+ "description": "The sub type of tool."
},
"server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
"$ref": "#/components/schemas/Server"
}
]
},
- "metadata": {
- "$ref": "#/components/schemas/GhlToolMetadata"
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the tool."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the organization that this tool belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the tool, fixed to 'bash'",
+ "default": "bash",
+ "enum": [
+ "bash"
+ ]
}
},
"required": [
"type",
+ "subType",
"id",
"orgId",
"createdAt",
"updatedAt",
- "metadata"
+ "name"
]
},
- "MakeTool": {
+ "ComputerTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "computer"
+ ],
+ "description": "The type of tool. \"computer\" for Computer tool."
+ },
+ "subType": {
+ "type": "string",
+ "enum": [
+ "computer_20241022"
+ ],
+ "description": "The sub type of tool."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the tool."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the organization that this tool belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the tool, fixed to 'computer'",
+ "default": "computer",
+ "enum": [
+ "computer"
+ ]
+ },
+ "displayWidthPx": {
+ "type": "number",
+ "description": "The display width in pixels"
+ },
+ "displayHeightPx": {
+ "type": "number",
+ "description": "The display height in pixels"
},
+ "displayNumber": {
+ "type": "number",
+ "description": "Optional display number"
+ }
+ },
+ "required": [
+ "type",
+ "subType",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt",
+ "name",
+ "displayWidthPx",
+ "displayHeightPx"
+ ]
+ },
+ "TextEditorTool": {
+ "type": "object",
+ "properties": {
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -22943,9 +27361,24 @@
"type": {
"type": "string",
"enum": [
- "make"
+ "textEditor"
],
- "description": "The type of tool. \"make\" for Make tool."
+ "description": "The type of tool. \"textEditor\" for Text Editor tool."
+ },
+ "subType": {
+ "type": "string",
+ "enum": [
+ "text_editor_20241022"
+ ],
+ "description": "The sub type of tool."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
},
"id": {
"type": "string",
@@ -22973,35 +27406,28 @@
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
+ "name": {
+ "type": "string",
+ "description": "The name of the tool, fixed to 'str_replace_editor'",
+ "default": "str_replace_editor",
+ "enum": [
+ "str_replace_editor"
]
- },
- "metadata": {
- "$ref": "#/components/schemas/MakeToolMetadata"
}
},
"required": [
"type",
+ "subType",
"id",
"orgId",
"createdAt",
"updatedAt",
- "metadata"
+ "name"
]
},
- "TransferCallTool": {
+ "QueryTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23029,31 +27455,15 @@
"type": {
"type": "string",
"enum": [
- "transferCall"
- ]
+ "query"
+ ],
+ "description": "The type of tool. \"query\" for Query tool."
},
- "destinations": {
+ "knowledgeBases": {
+ "description": "The knowledge bases to query",
"type": "array",
- "description": "These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called.",
"items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/TransferDestinationAssistant",
- "title": "Assistant"
- },
- {
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
- },
- {
- "$ref": "#/components/schemas/TransferDestinationNumber",
- "title": "Number"
- },
- {
- "$ref": "#/components/schemas/TransferDestinationSip",
- "title": "Sip"
- }
- ]
+ "$ref": "#/components/schemas/KnowledgeBase"
}
},
"id": {
@@ -23081,14 +27491,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23099,14 +27501,9 @@
"updatedAt"
]
},
- "OutputTool": {
+ "GoogleCalendarCreateEventTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23134,9 +27531,9 @@
"type": {
"type": "string",
"enum": [
- "output"
+ "google.calendar.event.create"
],
- "description": "The type of tool. \"output\" for Output tool."
+ "description": "The type of tool. \"google.calendar.event.create\" for Google Calendar tool."
},
"id": {
"type": "string",
@@ -23163,14 +27560,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23181,14 +27570,9 @@
"updatedAt"
]
},
- "BashTool": {
+ "GoogleSheetsRowAppendTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23216,16 +27600,9 @@
"type": {
"type": "string",
"enum": [
- "bash"
- ],
- "description": "The type of tool. \"bash\" for Bash tool."
- },
- "subType": {
- "type": "string",
- "enum": [
- "bash_20241022"
+ "google.sheets.row.append"
],
- "description": "The sub type of tool."
+ "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
},
"id": {
"type": "string",
@@ -23252,42 +27629,19 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- },
- "name": {
- "type": "string",
- "description": "The name of the tool, fixed to 'bash'",
- "default": "bash",
- "enum": [
- "bash"
- ]
}
},
"required": [
"type",
- "subType",
"id",
"orgId",
"createdAt",
- "updatedAt",
- "name"
+ "updatedAt"
]
},
- "ComputerTool": {
+ "GoogleCalendarCheckAvailabilityTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23315,16 +27669,9 @@
"type": {
"type": "string",
"enum": [
- "computer"
- ],
- "description": "The type of tool. \"computer\" for Computer tool."
- },
- "subType": {
- "type": "string",
- "enum": [
- "computer_20241022"
+ "google.calendar.availability.check"
],
- "description": "The sub type of tool."
+ "description": "The type of tool. \"google.calendar.availability.check\" for Google Calendar availability check tool."
},
"id": {
"type": "string",
@@ -23351,56 +27698,19 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- },
- "name": {
- "type": "string",
- "description": "The name of the tool, fixed to 'computer'",
- "default": "computer",
- "enum": [
- "computer"
- ]
- },
- "displayWidthPx": {
- "type": "number",
- "description": "The display width in pixels"
- },
- "displayHeightPx": {
- "type": "number",
- "description": "The display height in pixels"
- },
- "displayNumber": {
- "type": "number",
- "description": "Optional display number"
}
},
"required": [
"type",
- "subType",
"id",
"orgId",
"createdAt",
- "updatedAt",
- "name",
- "displayWidthPx",
- "displayHeightPx"
+ "updatedAt"
]
},
- "TextEditorTool": {
+ "SlackSendMessageTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23428,16 +27738,9 @@
"type": {
"type": "string",
"enum": [
- "textEditor"
- ],
- "description": "The type of tool. \"textEditor\" for Text Editor tool."
- },
- "subType": {
- "type": "string",
- "enum": [
- "text_editor_20241022"
+ "slack.message.send"
],
- "description": "The sub type of tool."
+ "description": "The type of tool. \"slack.message.send\" for Slack send message tool."
},
"id": {
"type": "string",
@@ -23464,42 +27767,19 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- },
- "name": {
- "type": "string",
- "description": "The name of the tool, fixed to 'str_replace_editor'",
- "default": "str_replace_editor",
- "enum": [
- "str_replace_editor"
- ]
}
},
"required": [
"type",
- "subType",
"id",
"orgId",
"createdAt",
- "updatedAt",
- "name"
+ "updatedAt"
]
},
- "QueryTool": {
+ "SmsTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23527,16 +27807,9 @@
"type": {
"type": "string",
"enum": [
- "query"
+ "sms"
],
- "description": "The type of tool. \"query\" for Query tool."
- },
- "knowledgeBases": {
- "description": "The knowledge bases to query",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/KnowledgeBase"
- }
+ "description": "The type of tool. \"sms\" for Twilio SMS sending tool."
},
"id": {
"type": "string",
@@ -23563,14 +27836,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23581,14 +27846,9 @@
"updatedAt"
]
},
- "GoogleCalendarCreateEventTool": {
+ "McpTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23616,9 +27876,17 @@
"type": {
"type": "string",
"enum": [
- "google.calendar.event.create"
+ "mcp"
],
- "description": "The type of tool. \"google.calendar.event.create\" for Google Calendar tool."
+ "description": "The type of tool. \"mcp\" for MCP tool."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
},
"id": {
"type": "string",
@@ -23645,14 +27913,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23663,14 +27923,9 @@
"updatedAt"
]
},
- "GoogleSheetsRowAppendTool": {
+ "GoHighLevelCalendarAvailabilityTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23698,9 +27953,9 @@
"type": {
"type": "string",
"enum": [
- "google.sheets.row.append"
+ "gohighlevel.calendar.availability.check"
],
- "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
+ "description": "The type of tool. \"gohighlevel.calendar.availability.check\" for GoHighLevel Calendar availability check tool."
},
"id": {
"type": "string",
@@ -23727,14 +27982,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23745,14 +27992,9 @@
"updatedAt"
]
},
- "GoogleCalendarCheckAvailabilityTool": {
+ "GoHighLevelCalendarEventCreateTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23780,9 +28022,9 @@
"type": {
"type": "string",
"enum": [
- "google.calendar.availability.check"
+ "gohighlevel.calendar.event.create"
],
- "description": "The type of tool. \"google.calendar.availability.check\" for Google Calendar availability check tool."
+ "description": "The type of tool. \"gohighlevel.calendar.event.create\" for GoHighLevel Calendar event create tool."
},
"id": {
"type": "string",
@@ -23809,14 +28051,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23827,14 +28061,9 @@
"updatedAt"
]
},
- "SlackSendMessageTool": {
+ "GoHighLevelContactCreateTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23862,9 +28091,9 @@
"type": {
"type": "string",
"enum": [
- "slack.message.send"
+ "gohighlevel.contact.create"
],
- "description": "The type of tool. \"slack.message.send\" for Slack send message tool."
+ "description": "The type of tool. \"gohighlevel.contact.create\" for GoHighLevel contact create tool."
},
"id": {
"type": "string",
@@ -23891,14 +28120,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23909,14 +28130,9 @@
"updatedAt"
]
},
- "SmsSendTool": {
+ "GoHighLevelContactGetTool": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -23944,9 +28160,9 @@
"type": {
"type": "string",
"enum": [
- "sms"
+ "gohighlevel.contact.get"
],
- "description": "The type of tool. \"sms\" for Twilio SMS sending tool."
+ "description": "The type of tool. \"gohighlevel.contact.get\" for GoHighLevel contact get tool."
},
"id": {
"type": "string",
@@ -23973,14 +28189,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -23991,14 +28199,9 @@
"updatedAt"
]
},
- "McpTool": {
+ "CreateApiRequestToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24026,61 +28229,80 @@
"type": {
"type": "string",
"enum": [
- "mcp"
+ "apiRequest"
],
- "description": "The type of tool. \"mcp\" for MCP tool."
+ "description": "The type of tool. \"apiRequest\" for API request tool."
},
- "id": {
+ "method": {
"type": "string",
- "description": "This is the unique identifier for the tool."
+ "enum": [
+ "POST",
+ "GET"
+ ]
},
- "orgId": {
+ "timeoutSeconds": {
+ "type": "number",
+ "description": "This is the timeout in seconds for the request. Defaults to 20 seconds.\n\n@default 20",
+ "minimum": 1,
+ "maximum": 300,
+ "example": 20
+ },
+ "name": {
"type": "string",
- "description": "This is the unique identifier for the organization that this tool belongs to."
+ "description": "This is the name of the tool. This will be passed to the model.",
+ "maxLength": 40
},
- "createdAt": {
- "format": "date-time",
+ "description": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the tool was created."
+ "description": "This is the description of the tool. This will be passed to the model.",
+ "maxLength": 1000
},
- "updatedAt": {
- "format": "date-time",
+ "url": {
"type": "string",
- "description": "This is the ISO 8601 date-time string of when the tool was last updated."
+ "description": "This is where the request will be sent."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "body": {
+ "description": "This is the body of the request.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/JsonSchema"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "headers": {
+ "description": "These are the headers to send in the request.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/JsonSchema"
+ }
+ ]
+ },
+ "backoffPlan": {
+ "description": "This is the backoff plan if the request fails. Defaults to undefined (the request will not be retried).\n\n@default undefined (the request will not be retried)",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/BackoffPlan"
+ }
+ ]
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
},
"required": [
"type",
- "id",
- "orgId",
- "createdAt",
- "updatedAt"
+ "method",
+ "url"
]
},
"CreateOutputToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24119,14 +28341,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -24136,11 +28350,6 @@
"CreateBashToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24179,6 +28388,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"name": {
"type": "string",
"description": "The name of the tool, fixed to 'bash'",
@@ -24194,14 +28411,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -24213,11 +28422,6 @@
"CreateComputerToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24256,6 +28460,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"name": {
"type": "string",
"description": "The name of the tool, fixed to 'computer'",
@@ -24283,14 +28495,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -24304,11 +28508,6 @@
"CreateTextEditorToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24347,6 +28546,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"name": {
"type": "string",
"description": "The name of the tool, fixed to 'str_replace_editor'",
@@ -24362,14 +28569,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -24378,14 +28577,9 @@
"name"
]
},
- "CreateSmsSendToolDTO": {
+ "CreateSmsToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24424,74 +28618,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- }
- },
- "required": [
- "type"
- ]
- },
- "CreateMcpToolDTO": {
- "type": "object",
- "properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
- "messages": {
- "type": "array",
- "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/ToolMessageStart",
- "title": "ToolMessageStart"
- },
- {
- "$ref": "#/components/schemas/ToolMessageComplete",
- "title": "ToolMessageComplete"
- },
- {
- "$ref": "#/components/schemas/ToolMessageFailed",
- "title": "ToolMessageFailed"
- },
- {
- "$ref": "#/components/schemas/ToolMessageDelayed",
- "title": "ToolMessageDelayed"
- }
- ]
- }
- },
- "type": {
- "type": "string",
- "enum": [
- "mcp"
- ],
- "description": "The type of tool. \"mcp\" for MCP tool."
- },
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
- "allOf": [
- {
- "$ref": "#/components/schemas/OpenAIFunction"
- }
- ]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -24501,11 +28627,6 @@
"UpdateDtmfToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24537,25 +28658,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
"UpdateEndCallToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24587,25 +28695,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
"UpdateFunctionToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24630,19 +28725,24 @@
]
}
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "async": {
+ "type": "boolean",
+ "example": false,
+ "description": "This determines if the tool is async.\n\n If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\n If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\n Defaults to synchronous (`false`)."
+ },
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -24651,11 +28751,6 @@
"UpdateGhlToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24688,14 +28783,6 @@
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- },
"metadata": {
"$ref": "#/components/schemas/GhlToolMetadata"
}
@@ -24704,11 +28791,6 @@
"UpdateMakeToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24741,14 +28823,6 @@
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
- },
"metadata": {
"$ref": "#/components/schemas/MakeToolMetadata"
}
@@ -24757,11 +28831,6 @@
"UpdateTransferCallToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24795,10 +28864,6 @@
"$ref": "#/components/schemas/TransferDestinationAssistant",
"title": "Assistant"
},
- {
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
- },
{
"$ref": "#/components/schemas/TransferDestinationNumber",
"title": "Number"
@@ -24817,25 +28882,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
"UpdateOutputToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24867,25 +28919,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
"UpdateBashToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24917,19 +28956,19 @@
],
"description": "The sub type of tool."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
},
@@ -24946,11 +28985,6 @@
"UpdateComputerToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -24982,19 +29016,19 @@
],
"description": "The sub type of tool."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
},
@@ -25023,11 +29057,6 @@
"UpdateTextEditorToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25059,19 +29088,19 @@
],
"description": "The sub type of tool."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
},
@@ -25088,11 +29117,6 @@
"UpdateQueryToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25131,25 +29155,49 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ }
+ },
+ "UpdateGoogleCalendarCreateEventToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
}
},
- "UpdateGoogleCalendarCreateEventToolDTO": {
+ "UpdateGoogleSheetsRowAppendToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25181,25 +29229,86 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ }
+ },
+ "UpdateGoogleCalendarCheckAvailabilityToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
}
},
- "UpdateGoogleSheetsRowAppendToolDTO": {
+ "UpdateSlackSendMessageToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ }
+ },
+ "UpdateSmsToolDTO": {
+ "type": "object",
+ "properties": {
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25231,25 +29340,57 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ }
+ },
+ "UpdateMcpToolDTO": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
"server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
"$ref": "#/components/schemas/Server"
}
]
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
}
}
},
- "UpdateGoogleCalendarCheckAvailabilityToolDTO": {
+ "UpdateGoHighLevelCalendarAvailabilityToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25281,25 +29422,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
- "UpdateSlackSendMessageToolDTO": {
+ "UpdateGoHighLevelCalendarEventCreateToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25331,25 +29459,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
- "UpdateSmsSendToolDTO": {
+ "UpdateGoHighLevelContactCreateToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25381,25 +29496,12 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
- "UpdateMcpToolDTO": {
+ "UpdateGoHighLevelContactGetToolDTO": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -25431,14 +29533,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
}
},
@@ -25809,7 +29903,7 @@
"providerId"
]
},
- "UpdateWorkflowDTO": {
+ "Workflow": {
"type": "object",
"properties": {
"nodes": {
@@ -25817,86 +29911,94 @@
"items": {
"oneOf": [
{
- "$ref": "#/components/schemas/Say",
- "title": "Say"
- },
- {
- "$ref": "#/components/schemas/Gather",
- "title": "Gather"
- },
- {
- "$ref": "#/components/schemas/ApiRequest",
- "title": "ApiRequest"
- },
- {
- "$ref": "#/components/schemas/Hangup",
- "title": "Hangup"
+ "$ref": "#/components/schemas/ConversationNode",
+ "title": "ConversationNode"
},
{
- "$ref": "#/components/schemas/Transfer",
- "title": "Transfer"
+ "$ref": "#/components/schemas/ToolNode",
+ "title": "ToolNode"
}
]
}
},
"model": {
- "description": "These are the options for the workflow's LLM.",
"oneOf": [
{
- "$ref": "#/components/schemas/AnthropicModel",
- "title": "Anthropic"
- },
- {
- "$ref": "#/components/schemas/AnyscaleModel",
- "title": "Anyscale"
- },
- {
- "$ref": "#/components/schemas/CerebrasModel",
- "title": "Cerebras"
- },
- {
- "$ref": "#/components/schemas/CustomLLMModel",
- "title": "CustomLLM"
+ "$ref": "#/components/schemas/WorkflowOpenAIModel",
+ "title": "WorkflowOpenAIModel"
},
{
- "$ref": "#/components/schemas/DeepInfraModel",
- "title": "DeepInfra"
- },
- {
- "$ref": "#/components/schemas/DeepSeekModel",
- "title": "DeepSeek"
- },
- {
- "$ref": "#/components/schemas/GoogleModel",
- "title": "Google"
- },
- {
- "$ref": "#/components/schemas/GroqModel",
- "title": "Groq"
- },
- {
- "$ref": "#/components/schemas/InflectionAIModel",
- "title": "InflectionAI"
- },
- {
- "$ref": "#/components/schemas/OpenAIModel",
- "title": "OpenAI"
- },
- {
- "$ref": "#/components/schemas/OpenRouterModel",
- "title": "OpenRouter"
- },
- {
- "$ref": "#/components/schemas/PerplexityAIModel",
- "title": "PerplexityAI"
- },
+ "$ref": "#/components/schemas/WorkflowAnthropicModel",
+ "title": "WorkflowAnthropicModel"
+ }
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "orgId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 80
+ },
+ "edges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Edge"
+ }
+ },
+ "globalPrompt": {
+ "type": "string",
+ "maxLength": 5000
+ }
+ },
+ "required": [
+ "nodes",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt",
+ "name",
+ "edges"
+ ]
+ },
+ "UpdateWorkflowDTO": {
+ "type": "object",
+ "properties": {
+ "nodes": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ConversationNode",
+ "title": "ConversationNode"
+ },
+ {
+ "$ref": "#/components/schemas/ToolNode",
+ "title": "ToolNode"
+ }
+ ]
+ }
+ },
+ "model": {
+ "oneOf": [
{
- "$ref": "#/components/schemas/TogetherAIModel",
- "title": "Together"
+ "$ref": "#/components/schemas/WorkflowOpenAIModel",
+ "title": "WorkflowOpenAIModel"
},
{
- "$ref": "#/components/schemas/XaiModel",
- "title": "XAI"
+ "$ref": "#/components/schemas/WorkflowAnthropicModel",
+ "title": "WorkflowAnthropicModel"
}
]
},
@@ -25909,6 +30011,10 @@
"items": {
"$ref": "#/components/schemas/Edge"
}
+ },
+ "globalPrompt": {
+ "type": "string",
+ "maxLength": 5000
}
}
},
@@ -26532,7 +30638,7 @@
"rubric": {
"type": "string",
"description": "This is the rubric used by the AI scorer.",
- "maxLength": 1000
+ "maxLength": 10000
}
},
"required": [
@@ -26599,7 +30705,7 @@
"rubric": {
"type": "string",
"description": "This is the rubric used by the AI scorer.",
- "maxLength": 1000
+ "maxLength": 10000
}
},
"required": [
@@ -26798,69 +30904,6 @@
}
}
},
- "Metrics": {
- "type": "object",
- "properties": {
- "orgId": {
- "type": "string"
- },
- "rangeStart": {
- "type": "string"
- },
- "rangeEnd": {
- "type": "string"
- },
- "bill": {
- "type": "number"
- },
- "billWithinBillingLimit": {
- "type": "boolean"
- },
- "billDailyBreakdown": {
- "type": "object"
- },
- "callActive": {
- "type": "number"
- },
- "callActiveWithinConcurrencyLimit": {
- "type": "boolean"
- },
- "callMinutes": {
- "type": "number"
- },
- "callMinutesDailyBreakdown": {
- "type": "object"
- },
- "callMinutesAverage": {
- "type": "number"
- },
- "callMinutesAverageDailyBreakdown": {
- "type": "object"
- },
- "callCount": {
- "type": "number"
- },
- "callCountDailyBreakdown": {
- "type": "object"
- }
- },
- "required": [
- "orgId",
- "rangeStart",
- "rangeEnd",
- "bill",
- "billWithinBillingLimit",
- "billDailyBreakdown",
- "callActive",
- "callActiveWithinConcurrencyLimit",
- "callMinutes",
- "callMinutesDailyBreakdown",
- "callMinutesAverage",
- "callMinutesAverageDailyBreakdown",
- "callCount",
- "callCountDailyBreakdown"
- ]
- },
"TimeRange": {
"type": "object",
"properties": {
@@ -27389,7 +31432,11 @@
"enum": [
"trial",
"pay-as-you-go",
- "enterprise"
+ "enterprise",
+ "agency",
+ "startup",
+ "growth",
+ "scale"
]
},
"status": {
@@ -27641,6 +31688,10 @@
"type": "string",
"description": "This is the secret key used for signing JWT tokens for the org."
},
+ "minutesUsed": {
+ "type": "number",
+ "description": "This is the total number of call minutes used by this org across all time."
+ },
"name": {
"type": "string",
"description": "This is the name of the org. This is just for your own reference.",
@@ -28240,10 +32291,13 @@
"models": {
"type": "array",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -28258,10 +32312,13 @@
"items": {
"type": "string",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -28570,6 +32627,10 @@
"format": "date-time",
"type": "string",
"description": "This is the OAuth2 access token expiration."
+ },
+ "refreshToken": {
+ "type": "string",
+ "description": "This is the OAuth2 refresh token."
}
}
},
@@ -30080,6 +34141,14 @@
"type": "string",
"description": "This is not returned in the API."
},
+ "apiKey": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
+ "apiSecret": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
"id": {
"type": "string",
"description": "This is the unique identifier for the credential."
@@ -30110,7 +34179,6 @@
},
"required": [
"provider",
- "authToken",
"id",
"orgId",
"createdAt",
@@ -30379,13 +34447,60 @@
"updatedAt"
]
},
- "GoogleSheetsOAuth2AuthorizationCredential": {
+ "GoogleSheetsOAuth2AuthorizationCredential": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "enum": [
+ "google.sheets.oauth2-authorization"
+ ]
+ },
+ "authorizationId": {
+ "type": "string",
+ "description": "The authorization ID for the OAuth2 authorization"
+ },
+ "id": {
+ "type": "string",
+ "description": "This is the unique identifier for the credential."
+ },
+ "orgId": {
+ "type": "string",
+ "description": "This is the unique identifier for the org that this credential belongs to."
+ },
+ "createdAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the credential was created."
+ },
+ "updatedAt": {
+ "format": "date-time",
+ "type": "string",
+ "description": "This is the ISO 8601 date-time string of when the assistant was last updated."
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of credential. This is just for your reference.",
+ "minLength": 1,
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "provider",
+ "authorizationId",
+ "id",
+ "orgId",
+ "createdAt",
+ "updatedAt"
+ ]
+ },
+ "SlackOAuth2AuthorizationCredential": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": [
- "google.sheets.oauth2-authorization"
+ "slack.oauth2-authorization"
]
},
"authorizationId": {
@@ -30426,18 +34541,22 @@
"updatedAt"
]
},
- "SlackOAuth2AuthorizationCredential": {
+ "GoHighLevelMCPCredential": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": [
- "slack.oauth2-authorization"
+ "ghl.oauth2-authorization"
]
},
- "authorizationId": {
- "type": "string",
- "description": "The authorization ID for the OAuth2 authorization"
+ "authenticationSession": {
+ "description": "This is the authentication session for the credential.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Oauth2AuthenticationSession"
+ }
+ ]
},
"id": {
"type": "string",
@@ -30466,7 +34585,7 @@
},
"required": [
"provider",
- "authorizationId",
+ "authenticationSession",
"id",
"orgId",
"createdAt",
@@ -30680,6 +34799,35 @@
"apiKey"
]
},
+ "CreateGoHighLevelMCPCredentialDTO": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "enum": [
+ "ghl.oauth2-authorization"
+ ]
+ },
+ "authenticationSession": {
+ "description": "This is the authentication session for the credential.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Oauth2AuthenticationSession"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of credential. This is just for your reference.",
+ "minLength": 1,
+ "maxLength": 40
+ }
+ },
+ "required": [
+ "provider",
+ "authenticationSession"
+ ]
+ },
"UpdateAnthropicCredentialDTO": {
"type": "object",
"properties": {
@@ -30813,10 +34961,13 @@
"models": {
"type": "array",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -30831,10 +34982,13 @@
"items": {
"type": "string",
"enum": [
+ "gpt-4.1-2025-04-14",
+ "gpt-4.1-mini-2025-04-14",
+ "gpt-4.1-nano-2025-04-14",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
- "gpt-4o-mini-2024-07-18",
"gpt-4o-2024-05-13",
+ "gpt-4o-mini-2024-07-18",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-1106-preview",
@@ -31496,6 +35650,14 @@
"type": "string",
"description": "This is not returned in the API."
},
+ "apiKey": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
+ "apiSecret": {
+ "type": "string",
+ "description": "This is not returned in the API."
+ },
"name": {
"type": "string",
"description": "This is the name of credential. This is just for your reference.",
@@ -31616,6 +35778,25 @@
}
}
},
+ "UpdateGoHighLevelMCPCredentialDTO": {
+ "type": "object",
+ "properties": {
+ "authenticationSession": {
+ "description": "This is the authentication session for the credential.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Oauth2AuthenticationSession"
+ }
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of credential. This is just for your reference.",
+ "minLength": 1,
+ "maxLength": 40
+ }
+ }
+ },
"CredentialSessionResponse": {
"type": "object",
"properties": {
@@ -31927,6 +36108,106 @@
"type"
]
},
+ "GoHighLevelCalendarAvailabilityToolProviderDetails": {
+ "type": "object",
+ "properties": {
+ "templateUrl": {
+ "type": "string",
+ "description": "This is the Template URL or the Snapshot URL corresponding to the Template."
+ },
+ "setupInstructions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolTemplateSetup"
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.calendar.availability.check"
+ ],
+ "description": "The type of tool. \"gohighlevel.calendar.availability.check\" for GoHighLevel Calendar availability check tool."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "GoHighLevelCalendarEventCreateToolProviderDetails": {
+ "type": "object",
+ "properties": {
+ "templateUrl": {
+ "type": "string",
+ "description": "This is the Template URL or the Snapshot URL corresponding to the Template."
+ },
+ "setupInstructions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolTemplateSetup"
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.calendar.event.create"
+ ],
+ "description": "The type of tool. \"gohighlevel.calendar.event.create\" for GoHighLevel Calendar event create tool."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "GoHighLevelContactCreateToolProviderDetails": {
+ "type": "object",
+ "properties": {
+ "templateUrl": {
+ "type": "string",
+ "description": "This is the Template URL or the Snapshot URL corresponding to the Template."
+ },
+ "setupInstructions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolTemplateSetup"
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.contact.create"
+ ],
+ "description": "The type of tool. \"gohighlevel.contact.create\" for GoHighLevel contact create tool."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "GoHighLevelContactGetToolProviderDetails": {
+ "type": "object",
+ "properties": {
+ "templateUrl": {
+ "type": "string",
+ "description": "This is the Template URL or the Snapshot URL corresponding to the Template."
+ },
+ "setupInstructions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ToolTemplateSetup"
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.contact.get"
+ ],
+ "description": "The type of tool. \"gohighlevel.contact.get\" for GoHighLevel contact get tool."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
"ToolTemplateMetadata": {
"type": "object",
"properties": {
@@ -31946,6 +36227,18 @@
"properties": {
"details": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -31954,25 +36247,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferCallTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -31981,6 +36278,30 @@
{
"$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
"title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
},
@@ -32005,6 +36326,22 @@
{
"$ref": "#/components/schemas/GoogleSheetsRowAppendToolProviderDetails",
"title": "GoogleSheetsRowAppendToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityToolProviderDetails",
+ "title": "GoHighLevelCalendarAvailabilityToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateToolProviderDetails",
+ "title": "GoHighLevelCalendarEventCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateToolProviderDetails",
+ "title": "GoHighLevelContactCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetToolProviderDetails",
+ "title": "GoHighLevelContactGetToolProviderDetails"
}
]
},
@@ -32049,6 +36386,18 @@
"properties": {
"details": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -32057,25 +36406,29 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferCallTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
},
{
"$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
@@ -32084,6 +36437,30 @@
{
"$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
"title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
},
@@ -32108,6 +36485,22 @@
{
"$ref": "#/components/schemas/GoogleSheetsRowAppendToolProviderDetails",
"title": "GoogleSheetsRowAppendToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityToolProviderDetails",
+ "title": "GoHighLevelCalendarAvailabilityToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateToolProviderDetails",
+ "title": "GoHighLevelCalendarEventCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateToolProviderDetails",
+ "title": "GoHighLevelContactCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetToolProviderDetails",
+ "title": "GoHighLevelContactGetToolProviderDetails"
}
]
},
@@ -32174,6 +36567,18 @@
"properties": {
"details": {
"oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateApiRequestToolDTO",
+ "title": "ApiRequestTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateBashToolDTO",
+ "title": "BashTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateComputerToolDTO",
+ "title": "ComputerTool"
+ },
{
"$ref": "#/components/schemas/CreateDtmfToolDTO",
"title": "DtmfTool"
@@ -32182,33 +36587,61 @@
"$ref": "#/components/schemas/CreateEndCallToolDTO",
"title": "EndCallTool"
},
- {
- "$ref": "#/components/schemas/CreateVoicemailToolDTO",
- "title": "VoicemailTool"
- },
{
"$ref": "#/components/schemas/CreateFunctionToolDTO",
"title": "FunctionTool"
},
{
- "$ref": "#/components/schemas/CreateGhlToolDTO",
- "title": "GhlTool"
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO",
+ "title": "GoHighLevelCalendarAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO",
+ "title": "GoHighLevelCalendarEventCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactCreateToolDTO",
+ "title": "GoHighLevelContactCreateTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoHighLevelContactGetToolDTO",
+ "title": "GoHighLevelContactGetTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO",
+ "title": "GoogleCalendarCheckAvailabilityTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
+ "title": "GoogleCalendarCreateEventTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
+ "title": "GoogleSheetsRowAppendTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateMcpToolDTO",
+ "title": "McpTool"
+ },
+ {
+ "$ref": "#/components/schemas/CreateQueryToolDTO",
+ "title": "QueryTool"
},
{
- "$ref": "#/components/schemas/CreateMakeToolDTO",
- "title": "MakeTool"
+ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO",
+ "title": "SlackSendMessageTool"
},
{
- "$ref": "#/components/schemas/CreateTransferCallToolDTO",
- "title": "TransferCallTool"
+ "$ref": "#/components/schemas/CreateSmsToolDTO",
+ "title": "SmsTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleCalendarCreateEventToolDTO",
- "title": "GoogleCalendarCreateEventTool"
+ "$ref": "#/components/schemas/CreateTextEditorToolDTO",
+ "title": "TextEditorTool"
},
{
- "$ref": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO",
- "title": "GoogleSheetsRowAppendTool"
+ "$ref": "#/components/schemas/CreateTransferCallToolDTO",
+ "title": "TransferCallTool"
}
]
},
@@ -32233,6 +36666,22 @@
{
"$ref": "#/components/schemas/GoogleSheetsRowAppendToolProviderDetails",
"title": "GoogleSheetsRowAppendToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarAvailabilityToolProviderDetails",
+ "title": "GoHighLevelCalendarAvailabilityToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelCalendarEventCreateToolProviderDetails",
+ "title": "GoHighLevelCalendarEventCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactCreateToolProviderDetails",
+ "title": "GoHighLevelContactCreateToolProviderDetails"
+ },
+ {
+ "$ref": "#/components/schemas/GoHighLevelContactGetToolProviderDetails",
+ "title": "GoHighLevelContactGetToolProviderDetails"
}
]
},
@@ -32527,6 +36976,31 @@
"ClientMessageWorkflowNodeStarted": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"workflow.node.started\" is sent when the active node changes.",
@@ -32534,6 +37008,34 @@
"workflow.node.started"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"node": {
"type": "object",
"description": "This is the active node."
@@ -32547,6 +37049,31 @@
"ClientMessageConversationUpdate": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"conversation-update\" is sent when an update is committed to the conversation history.",
@@ -32588,6 +37115,34 @@
"items": {
"$ref": "#/components/schemas/OpenAIMessage"
}
+ },
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
}
},
"required": [
@@ -32598,12 +37153,65 @@
"ClientMessageHang": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"hang\" is sent when the assistant is hanging due to a delay. The delay can be caused by many factors, such as:\n- the model is too slow to respond\n- the voice is too slow to respond\n- the tool call is still waiting for a response from your server\n- etc.",
"enum": [
"hang"
]
+ },
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
}
},
"required": [
@@ -32613,6 +37221,31 @@
"ClientMessageMetadata": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"metadata\" is sent to forward metadata to the client.",
@@ -32620,6 +37253,34 @@
"metadata"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"metadata": {
"type": "string",
"description": "This is the metadata content"
@@ -32633,6 +37294,31 @@
"ClientMessageModelOutput": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"model-output\" is sent as the model outputs tokens.",
@@ -32640,6 +37326,34 @@
"model-output"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"output": {
"type": "object",
"description": "This is the output of the model. It can be a token or tool call."
@@ -32653,6 +37367,31 @@
"ClientMessageSpeechUpdate": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"speech-update\" is sent whenever assistant or user start or stop speaking.",
@@ -32679,6 +37418,34 @@
"turn": {
"type": "number",
"description": "This is the turn number of the speech update (0-indexed)."
+ },
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
}
},
"required": [
@@ -32690,6 +37457,31 @@
"ClientMessageTranscript": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"transcript\" is sent as transcriber outputs partial or final transcript.",
@@ -32698,6 +37490,34 @@
"transcript[transcriptType=\"final\"]"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"role": {
"type": "string",
"description": "This is the role for which the transcript is for.",
@@ -32726,55 +37546,34 @@
"transcript"
]
},
- "ToolCallFunction": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "This is the name of the function the model called."
- },
- "arguments": {
- "type": "object",
- "description": "These are the arguments that the function was called with."
- }
- },
- "required": [
- "name",
- "arguments"
- ]
- },
- "ToolCall": {
+ "ClientMessageToolCalls": {
"type": "object",
"properties": {
- "type": {
- "type": "string",
- "description": "This is the type of tool the model called.",
- "enum": [
- "function"
- ]
- },
- "function": {
- "description": "This is the function the model called.",
- "allOf": [
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
{
- "$ref": "#/components/schemas/ToolCallFunction"
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
- "id": {
- "type": "string",
- "description": "This is the unique identifier for the tool call."
- }
- },
- "required": [
- "type",
- "function",
- "id"
- ]
- },
- "ClientMessageToolCalls": {
- "type": "object",
- "properties": {
"type": {
"type": "string",
"description": "This is the type of the message. \"tool-calls\" is sent to call a tool.",
@@ -32818,6 +37617,34 @@
]
}
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"toolCallList": {
"description": "This is the list of tool calls that the model is requesting.",
"type": "array",
@@ -32834,6 +37661,31 @@
"ClientMessageToolCallsResult": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"tool-calls-result\" is sent to forward the result of a tool call to the client.",
@@ -32841,6 +37693,34 @@
"tool-calls-result"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"toolCallResult": {
"type": "object",
"description": "This is the result of the tool call."
@@ -32854,6 +37734,31 @@
"ClientMessageTransferUpdate": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"transfer-update\" is sent whenever a transfer happens.",
@@ -32868,10 +37773,6 @@
"$ref": "#/components/schemas/TransferDestinationAssistant",
"title": "Assistant"
},
- {
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
- },
{
"$ref": "#/components/schemas/TransferDestinationNumber",
"title": "Number"
@@ -32882,6 +37783,34 @@
}
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"toAssistant": {
"description": "This is the assistant that the call is being transferred to. This is only sent if `destination.type` is \"assistant\".",
"allOf": [
@@ -32914,12 +37843,65 @@
"ClientMessageUserInterrupted": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"user-interrupted\" is sent when the user interrupts the assistant.",
"enum": [
"user-interrupted"
]
+ },
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
}
},
"required": [
@@ -32929,6 +37911,31 @@
"ClientMessageLanguageChangeDetected": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"language-change-detected\" is sent when the transcriber is automatically switched based on the detected language.",
@@ -32936,6 +37943,34 @@
"language-change-detected"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"language": {
"type": "string",
"description": "This is the language the transcriber is switched to."
@@ -32949,6 +37984,31 @@
"ClientMessageVoiceInput": {
"type": "object",
"properties": {
+ "phoneNumber": {
+ "description": "This is the phone number that the message is associated with.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
+ "title": "ByoPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTwilioPhoneNumberDTO",
+ "title": "TwilioPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVonagePhoneNumberDTO",
+ "title": "VonagePhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
+ "title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
+ }
+ ]
+ },
"type": {
"type": "string",
"description": "This is the type of the message. \"voice-input\" is sent when a generation is requested from voice provider.",
@@ -32956,6 +38016,34 @@
"voice-input"
]
},
+ "timestamp": {
+ "type": "number",
+ "description": "This is the timestamp of the message."
+ },
+ "call": {
+ "description": "This is the call that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Call"
+ }
+ ]
+ },
+ "customer": {
+ "description": "This is the customer that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateCustomerDTO"
+ }
+ ]
+ },
+ "assistant": {
+ "description": "This is the assistant that the message is associated with.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateAssistantDTO"
+ }
+ ]
+ },
"input": {
"type": "string",
"description": "This is the voice input content"
@@ -33035,7 +38123,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -33052,6 +38140,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -33064,7 +38156,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -33075,7 +38167,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -33083,7 +38175,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -33091,7 +38183,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -33107,7 +38199,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -33124,6 +38216,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -33171,7 +38267,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -33182,7 +38278,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -33190,7 +38286,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -33198,7 +38294,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -33215,7 +38311,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -33232,6 +38328,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -33339,6 +38439,7 @@
"call.in-progress.error-vapifault-transport-never-connected",
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
+ "call.in-progress.error-vapifault-worker-died",
"call.in-progress.error-vapifault-openai-llm-failed",
"call.in-progress.error-vapifault-azure-openai-llm-failed",
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -33726,9 +38827,16 @@
"phone-call-provider-closed-websocket",
"call.forwarding.operator-busy",
"silence-timed-out",
- "call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
+ "call.in-progress.error-sip-inbound-call-failed-to-connect",
+ "call.in-progress.error-providerfault-outbound-sip-403-forbidden",
+ "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
+ "call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
+ "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
+ "call.in-progress.error-sip-outbound-call-failed-to-connect",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
+ "call.ringing.sip-inbound-caller-hungup-before-call-connect",
+ "call.ringing.error-sip-inbound-call-failed-to-connect",
"twilio-failed-to-connect-call",
"twilio-reported-customer-misdialed",
"vonage-rejected",
@@ -33771,13 +38879,17 @@
{
"$ref": "#/components/schemas/AnalysisCost",
"title": "AnalysisCost"
+ },
+ {
+ "$ref": "#/components/schemas/KnowledgeBaseCost",
+ "title": "KnowledgeBaseCost"
}
]
}
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "These are the artifacts from the call. This can also be found at `call.artifact` on GET /call/:id.",
@@ -33788,7 +38900,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -33796,7 +38908,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -33804,7 +38916,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -33841,7 +38953,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -33858,6 +38970,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -33870,7 +38986,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -33881,7 +38997,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -33889,7 +39005,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -33897,7 +39013,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -33913,7 +39029,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -33930,6 +39046,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -33977,7 +39097,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -33988,7 +39108,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -33996,7 +39116,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -34004,7 +39124,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -34021,7 +39141,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -34038,6 +39158,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -34050,7 +39174,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -34061,7 +39185,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -34069,7 +39193,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -34077,7 +39201,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -34098,7 +39222,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -34115,6 +39239,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -34148,7 +39276,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -34159,7 +39287,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -34167,7 +39295,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -34175,7 +39303,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -34192,7 +39320,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -34209,6 +39337,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -34241,7 +39373,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -34252,7 +39384,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -34260,7 +39392,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -34268,7 +39400,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -34286,7 +39418,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -34303,6 +39435,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -34422,6 +39558,7 @@
"call.in-progress.error-vapifault-transport-never-connected",
"call.in-progress.error-vapifault-transport-connected-but-call-not-active",
"call.in-progress.error-vapifault-call-started-but-connection-to-transport-missing",
+ "call.in-progress.error-vapifault-worker-died",
"call.in-progress.error-vapifault-openai-llm-failed",
"call.in-progress.error-vapifault-azure-openai-llm-failed",
"call.in-progress.error-vapifault-groq-llm-failed",
@@ -34809,9 +39946,16 @@
"phone-call-provider-closed-websocket",
"call.forwarding.operator-busy",
"silence-timed-out",
- "call.in-progress.error-sip-telephony-provider-failed-to-connect-call",
+ "call.in-progress.error-sip-inbound-call-failed-to-connect",
+ "call.in-progress.error-providerfault-outbound-sip-403-forbidden",
+ "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required",
+ "call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
+ "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
+ "call.in-progress.error-sip-outbound-call-failed-to-connect",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
+ "call.ringing.sip-inbound-caller-hungup-before-call-connect",
+ "call.ringing.error-sip-inbound-call-failed-to-connect",
"twilio-failed-to-connect-call",
"twilio-reported-customer-misdialed",
"vonage-rejected",
@@ -34868,7 +40012,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -34879,7 +40023,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -34887,7 +40031,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -34895,7 +40039,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -34924,7 +40068,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -34941,6 +40085,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -34989,7 +40137,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35000,7 +40148,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35008,7 +40156,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35016,7 +40164,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35040,7 +40188,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35057,6 +40205,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35069,7 +40221,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35080,7 +40232,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35088,7 +40240,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35096,7 +40248,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35112,7 +40264,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35129,6 +40281,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35146,10 +40302,6 @@
"$ref": "#/components/schemas/TransferDestinationAssistant",
"title": "Assistant"
},
- {
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
- },
{
"$ref": "#/components/schemas/TransferDestinationNumber",
"title": "Number"
@@ -35162,7 +40314,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35173,7 +40325,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35181,7 +40333,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35189,7 +40341,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35229,7 +40381,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35246,6 +40398,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35259,7 +40415,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35270,7 +40426,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35278,7 +40434,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35286,7 +40442,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35325,7 +40481,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35342,6 +40498,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35354,7 +40514,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35365,7 +40525,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35373,7 +40533,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35381,7 +40541,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35397,7 +40557,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35414,6 +40574,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35426,7 +40590,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35437,7 +40601,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35445,7 +40609,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35453,7 +40617,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35474,7 +40638,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35491,6 +40655,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35503,7 +40671,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35514,7 +40682,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35522,7 +40690,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35530,7 +40698,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35551,7 +40719,7 @@
"type": "object",
"properties": {
"phoneNumber": {
- "description": "This is the phone number associated with the call.\n\nThis matches one of the following:\n- `call.phoneNumber`,\n- `call.phoneNumberId`.",
+ "description": "This is the phone number that the message is associated with.",
"oneOf": [
{
"$ref": "#/components/schemas/CreateByoPhoneNumberDTO",
@@ -35568,6 +40736,10 @@
{
"$ref": "#/components/schemas/CreateVapiPhoneNumberDTO",
"title": "VapiPhoneNumber"
+ },
+ {
+ "$ref": "#/components/schemas/CreateTelnyxPhoneNumberDTO",
+ "title": "TelnyxPhoneNumber"
}
]
},
@@ -35580,7 +40752,7 @@
},
"timestamp": {
"type": "number",
- "description": "This is the timestamp of when the message was sent in milliseconds since Unix Epoch."
+ "description": "This is the timestamp of the message."
},
"artifact": {
"description": "This is a live version of the `call.artifact`.\n\nThis matches what is stored on `call.artifact` after the call.",
@@ -35591,7 +40763,7 @@
]
},
"assistant": {
- "description": "This is the assistant that is currently active. This is provided for convenience.\n\nThis matches one of the following:\n- `call.assistant`,\n- `call.assistantId`,\n- `call.squad[n].assistant`,\n- `call.squad[n].assistantId`,\n- `call.squadId->[n].assistant`,\n- `call.squadId->[n].assistantId`.",
+ "description": "This is the assistant that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35599,7 +40771,7 @@
]
},
"customer": {
- "description": "This is the customer associated with the call.\n\nThis matches one of the following:\n- `call.customer`,\n- `call.customerId`.",
+ "description": "This is the customer that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/CreateCustomerDTO"
@@ -35607,7 +40779,7 @@
]
},
"call": {
- "description": "This is the call object.\n\nThis matches what was returned in POST /call.\n\nNote: This might get stale during the call. To get the latest call object, especially after the call is ended, use GET /call/:id.",
+ "description": "This is the call that the message is associated with.",
"allOf": [
{
"$ref": "#/components/schemas/Call"
@@ -35728,11 +40900,10 @@
},
"assistantId": {
"type": "string",
- "nullable": true,
- "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead."
+ "description": "This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.\n\nTo start a call with:\n- Assistant, use `assistantId` or `assistant`\n- Squad, use `squadId` or `squad`\n- Workflow, use `workflowId` or `workflow`"
},
"assistant": {
- "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nIf you're unsure why you're getting an invalid assistant, try logging your response and send the JSON blob to POST /assistant which will return the validation errors.",
+ "description": "This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.\n\nTo start a call with:\n- Assistant, use `assistant`\n- Squad, use `squad`\n- Workflow, use `workflow`",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
@@ -35749,16 +40920,36 @@
},
"squadId": {
"type": "string",
- "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead."
+ "description": "This is the squad that will be used for the call. To use a transient squad, use `squad` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
},
"squad": {
- "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.",
+ "description": "This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
"allOf": [
{
"$ref": "#/components/schemas/CreateSquadDTO"
}
]
},
+ "workflowId": {
+ "type": "string",
+ "description": "This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`"
+ },
+ "workflow": {
+ "description": "This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.\n\nTo start a call with:\n- Assistant, use `assistant` or `assistantId`\n- Squad, use `squad` or `squadId`\n- Workflow, use `workflow` or `workflowId`",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/CreateWorkflowDTO"
+ }
+ ]
+ },
+ "workflowOverrides": {
+ "description": "These are the overrides for the `workflow` or `workflowId`'s settings and template variables.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/WorkflowOverrides"
+ }
+ ]
+ },
"error": {
"type": "string",
"description": "This is the error if the call shouldn't be accepted. This is spoken to the customer.\n\nIf this is sent, `assistantId`, `assistant`, `squadId`, `squad`, and `destination` are ignored."
@@ -35810,20 +41001,17 @@
"type": "object",
"properties": {
"message": {
- "type": "array",
"description": "This is the message that will be spoken to the user.\n\nIf this is not returned, assistant will speak:\n1. a `request-complete` or `request-failed` message from `tool.messages`, if it exists\n2. a response generated by the model, if not",
- "items": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/ToolMessageComplete",
- "title": "ToolMessageComplete"
- },
- {
- "$ref": "#/components/schemas/ToolMessageFailed",
- "title": "ToolMessageFailed"
- }
- ]
- }
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ }
+ ]
},
"name": {
"type": "string",
@@ -35840,6 +41028,10 @@
"error": {
"type": "string",
"description": "This is the error if the tool call was not successful. This is added to the conversation history.\n\nFurther, if this is returned, assistant will speak:\n1. the `message`, if it exists and is of type `request-failed`\n2. a `request-failed` message from `tool.messages`, if it exists\n3. a response generated by the model, if neither exist"
+ },
+ "metadata": {
+ "type": "object",
+ "description": "This is optional metadata for the tool call result to be sent to the client."
}
},
"required": [
@@ -35873,10 +41065,6 @@
"$ref": "#/components/schemas/TransferDestinationAssistant",
"title": "Assistant"
},
- {
- "$ref": "#/components/schemas/TransferDestinationStep",
- "title": "Step"
- },
{
"$ref": "#/components/schemas/TransferDestinationNumber",
"title": "Number"
@@ -36096,69 +41284,6 @@
"message"
]
},
- "UserMessage": {
- "type": "object",
- "properties": {
- "role": {
- "type": "string",
- "description": "The role of the user in the conversation."
- },
- "message": {
- "type": "string",
- "description": "The message content from the user."
- },
- "time": {
- "type": "number",
- "description": "The timestamp when the message was sent."
- },
- "endTime": {
- "type": "number",
- "description": "The timestamp when the message ended."
- },
- "secondsFromStart": {
- "type": "number",
- "description": "The number of seconds from the start of the conversation."
- },
- "duration": {
- "type": "number",
- "description": "The duration of the message in seconds."
- }
- },
- "required": [
- "role",
- "message",
- "time",
- "endTime",
- "secondsFromStart"
- ]
- },
- "SystemMessage": {
- "type": "object",
- "properties": {
- "role": {
- "type": "string",
- "description": "The role of the system in the conversation."
- },
- "message": {
- "type": "string",
- "description": "The message content from the system."
- },
- "time": {
- "type": "number",
- "description": "The timestamp when the message was sent."
- },
- "secondsFromStart": {
- "type": "number",
- "description": "The number of seconds from the start of the conversation."
- }
- },
- "required": [
- "role",
- "message",
- "time",
- "secondsFromStart"
- ]
- },
"BotMessage": {
"type": "object",
"properties": {
@@ -36260,6 +41385,10 @@
"secondsFromStart": {
"type": "number",
"description": "The number of seconds from the start of the conversation."
+ },
+ "metadata": {
+ "type": "object",
+ "description": "The metadata for the tool call result."
}
},
"required": [
@@ -36498,7 +41627,8 @@
"enum": [
"twilio",
"google",
- "openai"
+ "openai",
+ "vapi"
]
},
"promptTextTokens": {
@@ -36533,14 +41663,44 @@
"cost"
]
},
- "FunctionToolWithToolCall": {
+ "KnowledgeBaseCost": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
+ "type": {
+ "type": "string",
+ "description": "This is the type of cost, always 'knowledge-base' for this class.",
+ "enum": [
+ "knowledge-base"
+ ]
},
+ "model": {
+ "type": "object",
+ "description": "This is the model that was used for processing the knowledge base."
+ },
+ "promptTokens": {
+ "type": "number",
+ "description": "This is the number of prompt tokens used in the knowledge base query."
+ },
+ "completionTokens": {
+ "type": "number",
+ "description": "This is the number of completion tokens generated in the knowledge base query."
+ },
+ "cost": {
+ "type": "number",
+ "description": "This is the cost of the component in USD."
+ }
+ },
+ "required": [
+ "type",
+ "model",
+ "promptTokens",
+ "completionTokens",
+ "cost"
+ ]
+ },
+ "FunctionToolWithToolCall": {
+ "type": "object",
+ "properties": {
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36572,22 +41732,27 @@
],
"description": "The type of tool. \"function\" for Function tool."
},
- "toolCall": {
- "$ref": "#/components/schemas/ToolCall"
+ "async": {
+ "type": "boolean",
+ "example": false,
+ "description": "This determines if the tool is async.\n\n If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\n If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\n Defaults to synchronous (`false`)."
},
- "function": {
- "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
"allOf": [
{
- "$ref": "#/components/schemas/OpenAIFunction"
+ "$ref": "#/components/schemas/Server"
}
]
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "toolCall": {
+ "$ref": "#/components/schemas/ToolCall"
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -36600,11 +41765,6 @@
"GhlToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36649,14 +41809,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -36668,11 +41820,6 @@
"MakeToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36717,14 +41864,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -36736,11 +41875,6 @@
"BashToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36779,6 +41913,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"toolCall": {
"$ref": "#/components/schemas/ToolCall"
},
@@ -36797,14 +41939,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -36817,11 +41951,6 @@
"ComputerToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36860,6 +41989,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"toolCall": {
"$ref": "#/components/schemas/ToolCall"
},
@@ -36890,14 +42027,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -36912,11 +42041,6 @@
"TextEditorToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -36955,6 +42079,14 @@
],
"description": "The sub type of tool."
},
+ "server": {
+ "description": "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Server"
+ }
+ ]
+ },
"toolCall": {
"$ref": "#/components/schemas/ToolCall"
},
@@ -36973,14 +42105,6 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
- },
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
- "allOf": [
- {
- "$ref": "#/components/schemas/Server"
- }
- ]
}
},
"required": [
@@ -36993,11 +42117,6 @@
"GoogleCalendarCreateEventToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
- },
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -37039,12 +42158,106 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ },
+ "required": [
+ "type",
+ "toolCall"
+ ]
+ },
+ "GoogleSheetsRowAppendToolWithToolCall": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "google.sheets.row.append"
+ ],
+ "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
+ },
+ "toolCall": {
+ "$ref": "#/components/schemas/ToolCall"
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "toolCall"
+ ]
+ },
+ "GoHighLevelCalendarAvailabilityToolWithToolCall": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.calendar.availability.check"
+ ],
+ "description": "The type of tool. \"gohighlevel.calendar.availability.check\" for GoHighLevel Calendar availability check tool."
+ },
+ "toolCall": {
+ "$ref": "#/components/schemas/ToolCall"
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}
@@ -37054,14 +42267,60 @@
"toolCall"
]
},
- "GoogleSheetsRowAppendToolWithToolCall": {
+ "GoHighLevelCalendarEventCreateToolWithToolCall": {
"type": "object",
"properties": {
- "async": {
- "type": "boolean",
- "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).",
- "example": false
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.calendar.event.create"
+ ],
+ "description": "The type of tool. \"gohighlevel.calendar.event.create\" for GoHighLevel Calendar event create tool."
+ },
+ "toolCall": {
+ "$ref": "#/components/schemas/ToolCall"
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIFunction"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "toolCall"
+ ]
+ },
+ "GoHighLevelContactCreateToolWithToolCall": {
+ "type": "object",
+ "properties": {
"messages": {
"type": "array",
"description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
@@ -37089,9 +42348,9 @@
"type": {
"type": "string",
"enum": [
- "google.sheets.row.append"
+ "gohighlevel.contact.create"
],
- "description": "The type of tool. \"google.sheets.row.append\" for Google Sheets tool."
+ "description": "The type of tool. \"gohighlevel.contact.create\" for GoHighLevel contact create tool."
},
"toolCall": {
"$ref": "#/components/schemas/ToolCall"
@@ -37103,12 +42362,55 @@
"$ref": "#/components/schemas/OpenAIFunction"
}
]
+ }
+ },
+ "required": [
+ "type",
+ "toolCall"
+ ]
+ },
+ "GoHighLevelContactGetToolWithToolCall": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ToolMessageStart",
+ "title": "ToolMessageStart"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageComplete",
+ "title": "ToolMessageComplete"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageFailed",
+ "title": "ToolMessageFailed"
+ },
+ {
+ "$ref": "#/components/schemas/ToolMessageDelayed",
+ "title": "ToolMessageDelayed"
+ }
+ ]
+ }
},
- "server": {
- "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.",
+ "type": {
+ "type": "string",
+ "enum": [
+ "gohighlevel.contact.get"
+ ],
+ "description": "The type of tool. \"gohighlevel.contact.get\" for GoHighLevel contact get tool."
+ },
+ "toolCall": {
+ "$ref": "#/components/schemas/ToolCall"
+ },
+ "function": {
+ "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.",
"allOf": [
{
- "$ref": "#/components/schemas/Server"
+ "$ref": "#/components/schemas/OpenAIFunction"
}
]
}