diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index f27b852f6..31fe1370e 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -11267,6 +11267,220 @@ "name" ] }, + "MessagePlan": { + "type": "object", + "properties": { + "idleMessages": { + "description": "This are the messages that the assistant will speak when the user hasn't responded for `idleTimeoutSeconds`. Each time the timeout is triggered, a random message will be chosen from this array.\n\nUsage:\n- If user gets distracted and doesn't respond for a while, this can be used to grab their attention.\n- If the transcriber doesn't pick up what the user said, this can be used to ask the user to repeat themselves. (From the perspective of the assistant, the conversation is idle since it didn't \"hear\" any user messages.)\n\n@default null (no idle message is spoken)", + "type": "array", + "items": { + "type": "string", + "maxLength": 1000 + } + }, + "idleMessageMaxSpokenCount": { + "type": "number", + "description": "This determines the maximum number of times `idleMessages` can be spoken during the call.\n\n@default 3", + "minimum": 1, + "maximum": 10 + }, + "idleMessageResetCountOnUserSpeechEnabled": { + "type": "boolean", + "description": "This determines whether the idle message count is reset whenever the user speaks.\n\n@default false" + }, + "idleTimeoutSeconds": { + "type": "number", + "description": "This is the timeout in seconds before a message from `idleMessages` is spoken. The clock starts when the assistant finishes speaking and remains active until the user speaks.\n\n@default 10", + "minimum": 5, + "maximum": 60 + }, + "silenceTimeoutMessage": { + "type": "string", + "description": "This is the message that the assistant will say if the call ends due to silence.\n\nIf unspecified, it will hang up without saying anything.", + "maxLength": 1000 + } + } + }, + "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": "" + } + } + }, + "Conversation": { + "type": "object", + "properties": { + "type": { + "type": "string", + "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" + } + ], + "default": { + "provider": "openai" + } + }, + "transcriber": { + "description": "These are the options for the assistant's transcriber.", + "oneOf": [ + { + "$ref": "#/components/schemas/AssemblyAITranscriber", + "title": "AssemblyAI" + }, + { + "$ref": "#/components/schemas/AzureSpeechTranscriber", + "title": "Azure" + }, + { + "$ref": "#/components/schemas/CustomTranscriber", + "title": "CustomTranscriber" + }, + { + "$ref": "#/components/schemas/DeepgramTranscriber", + "title": "Deepgram" + }, + { + "$ref": "#/components/schemas/ElevenLabsTranscriber", + "title": "ElevenLabs" + }, + { + "$ref": "#/components/schemas/GladiaTranscriber", + "title": "Gladia" + }, + { + "$ref": "#/components/schemas/SpeechmaticsTranscriber", + "title": "Speechmatics" + }, + { + "$ref": "#/components/schemas/TalkscriberTranscriber", + "title": "Talkscriber" + }, + { + "$ref": "#/components/schemas/GoogleTranscriber", + "title": "Google" + }, + { + "$ref": "#/components/schemas/OpenAITranscriber", + "title": "OpenAI" + } + ] + }, + "voice": { + "description": "These are the options for the assistant's voice.", + "oneOf": [ + { + "$ref": "#/components/schemas/AzureVoice", + "title": "Azure" + }, + { + "$ref": "#/components/schemas/CartesiaVoice", + "title": "Cartesia" + }, + { + "$ref": "#/components/schemas/CustomVoice", + "title": "CustomVoice" + }, + { + "$ref": "#/components/schemas/DeepgramVoice", + "title": "Deepgram" + }, + { + "$ref": "#/components/schemas/ElevenLabsVoice", + "title": "ElevenLabs" + }, + { + "$ref": "#/components/schemas/HumeVoice", + "title": "Hume" + }, + { + "$ref": "#/components/schemas/LMNTVoice", + "title": "LMNT" + }, + { + "$ref": "#/components/schemas/NeuphonicVoice", + "title": "Neuphonic" + }, + { + "$ref": "#/components/schemas/OpenAIVoice", + "title": "OpenAI" + }, + { + "$ref": "#/components/schemas/PlayHTVoice", + "title": "PlayHT" + }, + { + "$ref": "#/components/schemas/RimeAIVoice", + "title": "RimeAI" + }, + { + "$ref": "#/components/schemas/SmallestAIVoice", + "title": "SmallestAI" + }, + { + "$ref": "#/components/schemas/TavusVoice", + "title": "TavusVoice" + }, + { + "$ref": "#/components/schemas/VapiVoice", + "title": "Vapi" + } + ], + "default": { + "provider": "playht", + "voiceId": "jennifer" + } + }, + "prompt": { + "type": "string", + "maxLength": 5000 + }, + "messagePlan": { + "$ref": "#/components/schemas/MessagePlan" + }, + "globalNodePlan": { + "description": "This is the plan for the global node.", + "allOf": [ + { + "$ref": "#/components/schemas/GlobalNodePlan" + } + ] + }, + "name": { + "type": "string", + "maxLength": 80 + }, + "metadata": { + "type": "object", + "description": "This is for metadata you want to store on the task." + } + }, + "required": [ + "type", + "name" + ] + }, "AIEdgeCondition": { "type": "object", "properties": { @@ -11391,6 +11605,10 @@ { "$ref": "#/components/schemas/Transfer", "title": "Transfer" + }, + { + "$ref": "#/components/schemas/Conversation", + "title": "Conversation" } ] } @@ -16849,40 +17067,6 @@ } } }, - "MessagePlan": { - "type": "object", - "properties": { - "idleMessages": { - "description": "This are the messages that the assistant will speak when the user hasn't responded for `idleTimeoutSeconds`. Each time the timeout is triggered, a random message will be chosen from this array.\n\nUsage:\n- If user gets distracted and doesn't respond for a while, this can be used to grab their attention.\n- If the transcriber doesn't pick up what the user said, this can be used to ask the user to repeat themselves. (From the perspective of the assistant, the conversation is idle since it didn't \"hear\" any user messages.)\n\n@default null (no idle message is spoken)", - "type": "array", - "items": { - "type": "string", - "maxLength": 1000 - } - }, - "idleMessageMaxSpokenCount": { - "type": "number", - "description": "This determines the maximum number of times `idleMessages` can be spoken during the call.\n\n@default 3", - "minimum": 1, - "maximum": 10 - }, - "idleMessageResetCountOnUserSpeechEnabled": { - "type": "boolean", - "description": "This determines whether the idle message count is reset whenever the user speaks.\n\n@default false" - }, - "idleTimeoutSeconds": { - "type": "number", - "description": "This is the timeout in seconds before a message from `idleMessages` is spoken. The clock starts when the assistant finishes speaking and remains active until the user speaks.\n\n@default 10", - "minimum": 5, - "maximum": 60 - }, - "silenceTimeoutMessage": { - "type": "string", - "description": "This is the message that the assistant will say if the call ends due to silence.\n\nIf unspecified, it will hang up without saying anything.", - "maxLength": 1000 - } - } - }, "AssistantCustomEndpointingRule": { "type": "object", "properties": { @@ -17526,49 +17710,117 @@ }, "clientMessages": { "type": "array", + "enum": [ + "conversation-update", + "function-call", + "function-call-result", + "hang", + "language-changed", + "metadata", + "model-output", + "speech-update", + "status-update", + "transcript", + "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "example": [ + "conversation-update", + "function-call", + "hang", + "model-output", + "speech-update", + "status-update", + "transfer-update", + "transcript", + "tool-calls", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "function-call", + "function-call-result", "hang", + "language-changed", + "metadata", "model-output", "speech-update", "status-update", - "transfer-update", "transcript", "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", "user-interrupted", "voice-input", "workflow.node.started" - ], - "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", - "type": "array", - "items": { - "type": "object" - } + ] } }, "serverMessages": { "type": "array", + "enum": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", + "speech-update", + "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", + "tool-calls", + "transfer-destination-request", + "transfer-update", + "user-interrupted", + "voice-input" + ], + "example": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "speech-update", + "status-update", + "tool-calls", + "transfer-destination-request", + "user-interrupted" + ], + "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "end-of-call-report", "function-call", "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", "speech-update", "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", "tool-calls", "transfer-destination-request", - "user-interrupted" - ], - "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", - "type": "array", - "items": { - "type": "object" - } + "transfer-update", + "user-interrupted", + "voice-input" + ] } }, "silenceTimeoutSeconds": { @@ -17832,6 +18084,10 @@ { "$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO", "title": "SlackOAuth2AuthorizationCredential" + }, + { + "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO", + "title": "GoHighLevelMCPCredential" } ], "discriminator": { @@ -17883,7 +18139,8 @@ "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" } } } @@ -18005,11 +18262,7 @@ "keypadInputPlan": { "$ref": "#/components/schemas/KeypadInputPlan" } - }, - "required": [ - "clientMessages", - "serverMessages" - ] + } }, "AssistantOverrides": { "type": "object", @@ -18231,49 +18484,117 @@ }, "clientMessages": { "type": "array", + "enum": [ + "conversation-update", + "function-call", + "function-call-result", + "hang", + "language-changed", + "metadata", + "model-output", + "speech-update", + "status-update", + "transcript", + "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "example": [ + "conversation-update", + "function-call", + "hang", + "model-output", + "speech-update", + "status-update", + "transfer-update", + "transcript", + "tool-calls", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "function-call", + "function-call-result", "hang", + "language-changed", + "metadata", "model-output", "speech-update", "status-update", - "transfer-update", "transcript", "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", "user-interrupted", "voice-input", "workflow.node.started" - ], - "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", - "type": "array", - "items": { - "type": "object" - } + ] } }, "serverMessages": { "type": "array", + "enum": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", + "speech-update", + "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", + "tool-calls", + "transfer-destination-request", + "transfer-update", + "user-interrupted", + "voice-input" + ], + "example": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "speech-update", + "status-update", + "tool-calls", + "transfer-destination-request", + "user-interrupted" + ], + "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "end-of-call-report", "function-call", "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", "speech-update", "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", "tool-calls", "transfer-destination-request", - "user-interrupted" - ], - "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", - "type": "array", - "items": { - "type": "object" - } + "transfer-update", + "user-interrupted", + "voice-input" + ] } }, "silenceTimeoutSeconds": { @@ -18537,6 +18858,10 @@ { "$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO", "title": "SlackOAuth2AuthorizationCredential" + }, + { + "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO", + "title": "GoHighLevelMCPCredential" } ], "discriminator": { @@ -18588,7 +18913,8 @@ "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" } } } @@ -18714,11 +19040,7 @@ "keypadInputPlan": { "$ref": "#/components/schemas/KeypadInputPlan" } - }, - "required": [ - "clientMessages", - "serverMessages" - ] + } }, "SquadMemberDTO": { "type": "object", @@ -18814,6 +19136,10 @@ { "$ref": "#/components/schemas/Transfer", "title": "Transfer" + }, + { + "$ref": "#/components/schemas/Conversation", + "title": "Conversation" } ] } @@ -20562,49 +20888,117 @@ }, "clientMessages": { "type": "array", + "enum": [ + "conversation-update", + "function-call", + "function-call-result", + "hang", + "language-changed", + "metadata", + "model-output", + "speech-update", + "status-update", + "transcript", + "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "example": [ + "conversation-update", + "function-call", + "hang", + "model-output", + "speech-update", + "status-update", + "transfer-update", + "transcript", + "tool-calls", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "function-call", + "function-call-result", "hang", + "language-changed", + "metadata", "model-output", "speech-update", "status-update", - "transfer-update", "transcript", "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", "user-interrupted", "voice-input", "workflow.node.started" - ], - "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", - "type": "array", - "items": { - "type": "object" - } + ] } }, "serverMessages": { "type": "array", + "enum": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", + "speech-update", + "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", + "tool-calls", + "transfer-destination-request", + "transfer-update", + "user-interrupted", + "voice-input" + ], + "example": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "speech-update", + "status-update", + "tool-calls", + "transfer-destination-request", + "user-interrupted" + ], + "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "end-of-call-report", "function-call", "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", "speech-update", "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", "tool-calls", "transfer-destination-request", - "user-interrupted" - ], - "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", - "type": "array", - "items": { - "type": "object" - } + "transfer-update", + "user-interrupted", + "voice-input" + ] } }, "silenceTimeoutSeconds": { @@ -20868,6 +21262,10 @@ { "$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO", "title": "SlackOAuth2AuthorizationCredential" + }, + { + "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO", + "title": "GoHighLevelMCPCredential" } ], "discriminator": { @@ -20919,7 +21317,8 @@ "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" } } } @@ -21041,11 +21440,7 @@ "keypadInputPlan": { "$ref": "#/components/schemas/KeypadInputPlan" } - }, - "required": [ - "clientMessages", - "serverMessages" - ] + } }, "ByoPhoneNumber": { "type": "object", @@ -25761,6 +26156,10 @@ { "$ref": "#/components/schemas/Transfer", "title": "Transfer" + }, + { + "$ref": "#/components/schemas/Conversation", + "title": "Conversation" } ] } @@ -25895,6 +26294,10 @@ { "$ref": "#/components/schemas/Transfer", "title": "Transfer" + }, + { + "$ref": "#/components/schemas/Conversation", + "title": "Conversation" } ] } @@ -28630,6 +29033,10 @@ "format": "date-time", "type": "string", "description": "This is the OAuth2 access token expiration." + }, + "refreshToken": { + "type": "string", + "description": "This is the OAuth2 refresh token." } } }, @@ -30540,6 +30947,57 @@ "updatedAt" ] }, + "GoHighLevelMCPCredential": { + "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" + } + ] + }, + "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", + "authenticationSession", + "id", + "orgId", + "createdAt", + "updatedAt" + ] + }, "CreateCerebrasCredentialDTO": { "type": "object", "properties": { @@ -30747,6 +31205,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": { @@ -31691,6 +32178,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": { @@ -32858,49 +33364,117 @@ }, "clientMessages": { "type": "array", + "enum": [ + "conversation-update", + "function-call", + "function-call-result", + "hang", + "language-changed", + "metadata", + "model-output", + "speech-update", + "status-update", + "transcript", + "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "example": [ + "conversation-update", + "function-call", + "hang", + "model-output", + "speech-update", + "status-update", + "transfer-update", + "transcript", + "tool-calls", + "user-interrupted", + "voice-input", + "workflow.node.started" + ], + "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "function-call", + "function-call-result", "hang", + "language-changed", + "metadata", "model-output", "speech-update", "status-update", - "transfer-update", "transcript", "tool-calls", + "tool-calls-result", + "tool.completed", + "transfer-update", "user-interrupted", "voice-input", "workflow.node.started" - ], - "description": "These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started. You can check the shape of the messages in ClientMessage schema.", - "type": "array", - "items": { - "type": "object" - } + ] } }, "serverMessages": { "type": "array", + "enum": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", + "speech-update", + "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", + "tool-calls", + "transfer-destination-request", + "transfer-update", + "user-interrupted", + "voice-input" + ], + "example": [ + "conversation-update", + "end-of-call-report", + "function-call", + "hang", + "speech-update", + "status-update", + "tool-calls", + "transfer-destination-request", + "user-interrupted" + ], + "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", "items": { - "required": false, - "example": [ + "type": "string", + "enum": [ "conversation-update", "end-of-call-report", "function-call", "hang", + "language-changed", + "language-change-detected", + "model-output", + "phone-call-control", "speech-update", "status-update", + "transcript", + "transcript[transcriptType=\"final\"]", "tool-calls", "transfer-destination-request", - "user-interrupted" - ], - "description": "These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.", - "type": "array", - "items": { - "type": "object" - } + "transfer-update", + "user-interrupted", + "voice-input" + ] } }, "silenceTimeoutSeconds": { @@ -33164,6 +33738,10 @@ { "$ref": "#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO", "title": "SlackOAuth2AuthorizationCredential" + }, + { + "$ref": "#/components/schemas/CreateGoHighLevelMCPCredentialDTO", + "title": "GoHighLevelMCPCredential" } ], "discriminator": { @@ -33215,7 +33793,8 @@ "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" } } } @@ -33337,11 +33916,7 @@ "keypadInputPlan": { "$ref": "#/components/schemas/KeypadInputPlan" } - }, - "required": [ - "clientMessages", - "serverMessages" - ] + } }, "ClientMessageWorkflowNodeStarted": { "type": "object",