Vapi · Schema

ToolNode

AIVoiceAgentsRealtimeCPaaS

Properties

Name Type Description
type string This is the Tool node. This can be used to call a tool in your workflow. The flow is: - Workflow starts the tool node - Model is called to extract parameters needed by the tool from the conversation h
tool object This is the tool to call. To use an existing tool, send `toolId` instead.
toolId string This is the tool to call. To use a transient tool, send `tool` instead.
name string
isStart boolean This is whether or not the node is the start of the workflow.
metadata object This is for metadata you want to store on the task.
View JSON Schema on GitHub

JSON Schema

vapi-toolnode-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ToolNode",
  "title": "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"
      ]
    },
    "tool": {
      "description": "This is the tool to call. To use an existing tool, send `toolId` instead.",
      "oneOf": [
        {
          "$ref": "#/components/schemas/CreateApiRequestToolDTO",
          "title": "ApiRequestTool"
        },
        {
          "$ref": "#/components/schemas/CreateBashToolDTO",
          "title": "BashTool"
        },
        {
          "$ref": "#/components/schemas/CreateCodeToolDTO",
          "title": "CodeTool"
        },
        {
          "$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/CreateHandoffToolDTO",
          "title": "HandoffTool"
        },
        {
          "$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"
        },
        {
          "$ref": "#/components/schemas/CreateSipRequestToolDTO",
          "title": "SipRequestTool"
        },
        {
          "$ref": "#/components/schemas/CreateVoicemailToolDTO",
          "title": "VoicemailTool"
        }
      ]
    },
    "toolId": {
      "type": "string",
      "description": "This is the tool to call. To use a transient tool, send `tool` instead."
    },
    "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"
  ]
}