> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interactly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Assistant

> Update Assistant Details by ID



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/common/api.json patch /assistants/v1/assistants/{id}
openapi: 3.1.0
info:
  title: Interactly API
  description: API for building interactly.ai services
  version: 1.1.0
  contact:
    name: Interactly
    url: https://interactly.ai
    email: developers@interactly.ai
servers:
  - url: https://api-prod.interactly.ai
    description: API Server
security: []
paths:
  /assistants/v1/assistants/{id}:
    patch:
      tags:
        - Assistants
      summary: Update Assistant
      description: Update Assistant Details by ID
      operationId: updateAssistant
      parameters:
        - name: id
          in: path
          description: Assistant ID
          required: true
          schema:
            type: string
          example: 5f7b1b1b1b1b1b1b1b1b1b1b
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAssistantDTO'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assistant'
      security:
        - bearer: []
components:
  schemas:
    UpdateAssistantDTO:
      type: object
      allOf:
        - $ref: '#/components/schemas/AssistantCommon'
      required:
        - name
    Assistant:
      type: object
      properties:
        _id:
          type: string
          description: This is the unique identifier of the assistant.
          example: 5f7b1b1b1b1b1b1b1b1b1b1b
        teamId:
          type: string
          description: >-
            This is the unique identifier of the team that the assistant belongs
            to.
          example: 1f7b1b1b1b1b1b1b1b1b1b1b
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      allOf:
        - $ref: '#/components/schemas/AssistantCommon'
    AssistantCommon:
      type: object
      properties:
        name:
          type: string
          description: This is the name of the assistant.
          example: My Assistant
        welcomeMessage:
          type: string
          description: This is the welcome message of the assistant.
          default: hi
          example: Hello! How can I help you?
        welcomeMessageMode:
          type: string
          description: >-
            This is the mode of the welcome message. It can be one of the
            following: 'assistant-speaks-first', 'assistant-waits-for-user',
            'automatic'.
          example: assistant-speaks-first
          default: automatic
        welcomeMessageInterruptionsEnabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the interruptions are
            enabled during the welcome message. If set to false, the user can
            not interrupt the welcome message.
          example: false
          default: false
        assistantProvider:
          type: string
          description: This is the provider of the assistant.
          enum:
            - openai
            - azure
            - gemini
            - deepseek
            - bedrock
            - custom-llm
          default: azure
          example: openai
        assistantModel:
          type: string
          description: >-
            The type of model used for the assistant depends on the provider.

             For openai - Available Options: `gpt-4`, `gpt-4o`, `gpt-4o-mini`, `gpt-3.5-turbo`. 

            For azure - Available Options:  `gpt-4`, `gpt-4o`, `gpt-4o-mini`. 


            For gemini - Available Options:
            `gemini-1.5-flash-latest`,`gemini-1.5-pro-latest`,`gemini-1.5-flash`. 


            For deepseek - Available Options: `V3`. 


            For bedrock - Available Options: `anthropic.claude-3-5-sonnet`,
            `anthropic.claude-3-5-haiku`, `meta.llama3-1-8b-instruct`.
          example: gpt-4o-mini
          default: gpt-4o-mini
          discriminator:
            propertyName: assistantProvider
            mapping:
              openai:
                $ref: '#/components/schemas/OpenAIModels'
              azure:
                $ref: '#/components/schemas/AzureModels'
              gemini:
                $ref: '#/components/schemas/GeminiModels'
              deepseek:
                $ref: '#/components/schemas/DeepseekModels'
              bedrock:
                $ref: '#/components/schemas/BedrockModels'
              custom-llm:
                $ref: '#/components/schemas/CustomLLMModels'
        assistantLLMUrl:
          type: string
          description: >-
            Provider your LLM Base URL here when `assistantProvider=custom-llm`.


            Ex: `https://your-server.com/custom-llm`. 


            Please note that, we will append `/chat/completions` to your base
            URL before calling LLM endpoints.

            The LLM URL should be accessible from the Interactly server.

            If you are using a local server, you can use ngrok to expose your
            local server to the internet.
        assistantSystemPrompt:
          type: string
          description: This system prompt guides the assistant's operations.
          example: You are AI assistant to help patients with their health care needs.
        assistantTemperature:
          type: number
          description: This is the temperature of the assistant.
          default: 0
          example: 0
        assistantMaxTokens:
          type: integer
          description: >-
            This is the maximum number of tokens that the assistant can
            generate.
          default: 256
          example: 256
        assistantResponseSplitter:
          type: string
          description: Use this Delimiter to split the AI responses into separate lines.
          example: ','
        config:
          $ref: '#/components/schemas/AssistantConfig'
        hints:
          type: array
          description: >-
            Provide keyword hints to help the assistant better recognize and
            transcribe important words or phrases.
          items:
            type: string
        backgroundSound:
          description: >-
            This is the background sound in the call. Default is 'disable'. You
            can also provide a custom sound by providing a URL to an audio file.
            URL should be publicly accessible and should starts with https://
            only. 


            Note: Currently custom sound is not supported in `twilio` phone
            vendor.
          maxLength: 1000
          oneOf:
            - $ref: '#/components/schemas/BackgroundSoundNative'
              title: Interactly Supported Sounds
            - $ref: '#/components/schemas/BackgroundSoundCustom'
              title: Custom Sound URL
        backgroundSoundVolume:
          type: number
          description: >-
            This is the volume of the background sound. It is a number between 1
            and 100.
          default: 50
          example: 50
        ttsCacheEnabled:
          type: boolean
          description: This is the enabled flag of the tts cache.
          example: false
        ttsAudioCacheScope:
          type: string
          description: >-
            This is the storage scope of the tts audio cache. It can be one of
            the following: 'assistant', 'team', 'global'. 'global' is deprecated
            and will be removed in future.
          enum:
            - assistant
            - team
            - global
        maxConsecutiveTtsFailures:
          type: integer
          description: >-
            Maximum number of consecutive TTS turn failures before the call is
            ended automatically.
          default: 2
          example: 2
          minimum: 0
        recordingEnabled:
          type: boolean
          description: Controls whether call recording is enabled for this assistant.
          default: true
          example: true
        recordAfterTransfer:
          type: boolean
          description: >-
            When enabled, call recording continues after the call is forwarded
            or warm-transferred to another party.
          default: false
          example: false
        postCallTranscriptsEnabled:
          type: boolean
          description: >-
            When enabled, a post-call transcript file is generated and stored
            alongside the call recording after the call ends.
          default: false
          example: false
        assistantBackchannelingEnabled:
          type: boolean
          description: This is the backchanneling enabled of the assistant.
          example: false
        dtmfInputEnabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the DTMF input is enabled
            for the assistant.
          example: false
        maxCallDuration:
          type: integer
          description: This is the max call duration(in minutes) of the assistant.
          example: 900
          minimum: 1
          maximum: 120
        idleTimeout:
          type: integer
          description: >-
            How long should the assistant wait in silence before confirming the
            user's presence and playing an idle message?
          default: 30
          example: 20
          minimum: 5
          maximum: 600
        maxIdleMessagesInSequence:
          type: integer
          description: Maximum number of times to repeat the idle message in sequence
          example: 3
          minimum: 1
          maximum: 5
        startSpeakingOptions:
          type: object
          description: Configuration for when the assistant should start talking.
          properties:
            waitSeconds:
              type: number
              description: Number of seconds to wait before starting to process speech
              default: 0
            smartEndpointing:
              type: string
              description: >-
                Controls the endpointing strategy for detecting when a user has
                finished speaking
              enum:
                - Interactly
                - 'Off'
                - LiveKit
              default: Interactly
            onPunctuationSeconds:
              type: number
              description: >-
                The minimum number of seconds to wait after transcription ending
                with punctuation before sending a request to the model. 


                This is only used if `smartEndpointing` is set to `Off`.
              default: 0
            onNoPunctuationSeconds:
              type: number
              description: >-
                The minimum number of seconds to wait after transcription ending
                without punctuation before sending a request to the model. 


                This is only used if `smartEndpointing` is set to `Off`.
              default: 0
            onNumberSeconds:
              type: number
              description: >-
                The minimum number of seconds to wait after transcription ending
                with a number before sending a request to the model. 


                This is only used if `smartEndpointing` is set to `Off`.
              default: 0
            LiveKitBaseValue:
              type: number
              description: >-
                In the expression where X is the probability that the user is
                still speaking: 

                `LiveKitBaseValue + (LiveKitScaleValue * X)`
                 This is the base timeout value in milliseconds.

                This is only used if `smartEndpointing` is set to `LiveKit`.
              default: 100
            LiveKitScaleValue:
              type: number
              description: >-
                In the expression where X is the probability that the user is
                still speaking: 

                `LiveKitBaseValue + (LiveKitScaleValue * X)`
                 This is the scaling factor for LiveKit endpointing that adjusts based on speech probability.

                This is only used if `smartEndpointing` is set to `LiveKit`.
              default: 1000
        stopSpeakingOptions:
          type: object
          description: >-
            Configuration for detecting when when assistant should stop talking
            on customer interruption.
          properties:
            numberOfWords:
              type: number
              description: >-
                This is the number of words that the customer has to say before
                the assistant will stop talking.
              default: 3
            voiceSeconds:
              type: number
              description: >-
                This is the seconds customer has to speak before the assistant
                stops talking. This uses the VAD (Voice Activity Detection)
                spike to determine if the customer has started speaking.
              default: 0
        userInterruptionAckPlan:
          type: object
          description: >-
            This is the plan to respond to early interruptions by user with
            polite filler phrases.
          properties:
            enabled:
              type: boolean
              description: This is the enabled flag of the user interruption ack plan.
            count:
              type: number
              description: >-
                This is the number of times the user will interrupt the
                assistant before responding with a polite filler phrase.
              default: 2
            words:
              type: number
              description: >-
                This is the number of words that the user will interrupt the
                assistant
              default: 4
            phrases:
              type: array
              description: >-
                This is the list of phrases that the assistant will use to
                respond to the user's early interruptions.
              items:
                type: string
              example:
                - Please hold on while I check your account.
                - one moment please
                - let me just check that for you
        assistantToolIds:
          type: array
          items:
            type: string
          description: This is the list of tool IDs of the assistant.
          example: []
        assistantPredefinedTools:
          type: object
          description: >-
            Enable or disable specific tools that the assistant can use to
            improve its functionality.
          properties:
            knowledgeBase:
              type: boolean
              description: This will allow the assistant to end the call from its side.
              default: false
            endCall:
              type: boolean
              description: This will allow the assistant to end the call from its side.
              default: false
            appointment:
              type: boolean
              description: >-
                This will allow the assistant to manage appointments, including
                scheduling, rescheduling, and cancellations.
              default: false
            volumeControl:
              type: boolean
              description: This will allow the assistant to adjust the call volume.
              default: false
            waitList:
              type: boolean
              description: This will allow the assistant to access the wait list.
              default: false
            callForward:
              type: boolean
              description: >-
                This will allow the assistant to forward calls to the desired
                recipient or queue.
              default: false
            sendSms:
              type: boolean
              description: >-
                This will allow the assistant to send SMS messages during the
                call.
              default: false
        assistantType:
          type: string
          description: >-
            This is the type of the assistant. It can be one of the following:
            'single_prompt', 'workflow_based'.
          enum:
            - single_prompt
            - workflow_based
          default: single_prompt
        assistantKnowledgeBaseIds:
          type: array
          items:
            type: string
          description: >-
            This is the list of knowledge base IDs of the assistant. Provide
            only when `assistantPredefinedTools.knowledgeBase` is enabled
          example: []
        endCallMessage:
          type: string
          description: >-
            This is the message that the assistant will say if it ends the call.
            Provide only when `assistantPredefinedTools.endCall` is enabled
          example: Goodbye!
        endCallToolDescription:
          type: string
          description: >-
            This is the description of the tool that the assistant will use to
            end the call. Provide only when `assistantPredefinedTools.endCall`
            is enabled
          example: >-
            Trigger the end call only when the user is done with the
            conversation.
        endCallPhrases:
          type: array
          description: >-
            List of phrases that the assistant will listen to end the call.
            Provide only when `assistantPredefinedTools.endCall` is enabled
          items:
            type: string
          example:
            - goodbye
            - bye
        callForwardData:
          type: array
          items:
            type: object
            properties:
              phoneNumber:
                type: string
                description: Phone number used to forward the call.
                example: '+1234567890'
              extension:
                type: string
                description: >-
                  This is the extension of the assistant. Leave it empty if
                  there is no extension.
                example: ''
              name:
                type: string
                description: This is a friendly name for the call forward.
                example: call-forward-name
              onFailedMessage:
                type: string
                description: >-
                  This is the message that the assistant will say if the call
                  forward fails.
                example: The call forward failed. Please try again later.
                required: false
          description: This is the call-forwarding data of the assistant.
          example:
            phoneNumber: '+1234567890'
            extension: ''
            name: call-forward-name
        warmTransferEnabled:
          type: boolean
          description: >-
            Enables warm transfer when forwarding calls. The receiving agent is
            connected before the caller is transferred, allowing a briefing
            before handoff. Requires `assistantPredefinedTools.callForward` to
            be enabled.
          default: false
          example: false
        warmTransferConversational:
          type: boolean
          description: >-
            When enabled with `warmTransferEnabled`, the assistant converses
            with the receiving agent before completing the transfer. When
            disabled, a pre-generated briefing message is played to the agent
            instead.
          default: false
          example: false
        holdMusicUrl:
          type: string
          description: >-
            URL of the hold music played to the caller while a conversational
            warm transfer is in progress. Must be a publicly accessible HTTPS
            URL.
          default: ''
          example: https://www.soundjay.com/ambient/sounds/people-in-lounge-1.mp3
        warmTransferTimeout:
          type: integer
          description: >-
            Maximum time in seconds to wait for the receiving agent to answer
            during a warm transfer before the transfer is considered failed.
          default: 300
          example: 300
          minimum: 1
          maximum: 3600
        assistantAnalysis:
          $ref: '#/components/schemas/AssistantAnalysis'
        assistantOverrides:
          $ref: '#/components/schemas/AssistantOverrides'
        assistantServer:
          $ref: '#/components/schemas/AssistantServer'
        assistantOutcome:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: This is the type of the outcome.
              field:
                type: string
                description: This is the field of the outcome.
        smsConfiguration:
          type: object
          description: Control how the assistant composes outbound SMS.
          properties:
            enabled:
              type: boolean
              description: This is the enabled flag of the sms configuration.
            sameAsAssistant:
              type: boolean
              description: >-
                Use the same prompt as the assistant, or provide a custom SMS
                prompt.
            smsPrompt:
              type: string
              description: This is the sms prompt for handling sms responses.
        persistHistory:
          type: object
          description: Remember users and keep conversation history for follow-ups.
          properties:
            enabled:
              type: boolean
              description: This is the enabled flag of the persist history.
            call:
              type: boolean
              description: >-
                Store metadata and transcripts of calls in persisted data for
                future personalization and context.
            sms:
              type: boolean
              description: >-
                Keep outbound and inbound SMS content so follow-ups can
                reference earlier messages.
            retentionPeriod:
              type: number
              description: >-
                This is, how long(in number of days) to retain persisted data.
                Set to 0 to keep nothing.
              example: 7
    CreatedAt:
      type: string
      format: date-time
      description: This is the ISO 8601 date-time string of when the record was created.
      example: '2020-10-05T00:00:00.000Z'
    UpdatedAt:
      type: string
      format: date-time
      description: >-
        This is the ISO 8601 date-time string of when the record was last
        updated.
      example: '2020-10-05T00:00:00.000Z'
    OpenAIModels:
      type: string
      description: List of OpenAI models that can be used for the assistant.
      enum:
        - gpt-4
        - gpt-4o
        - gpt-4o-mini
        - gpt-3.5-turbo
      example: gpt-4
    AzureModels:
      type: string
      description: List of Azure models that can be used for the assistant.
      enum:
        - gpt-4
        - gpt-4o
        - gpt-4o-mini
      example: gpt-4
    GeminiModels:
      type: string
      description: List of Gemini models that can be used for the assistant.
      enum:
        - gemini-1.5-flash-latest
        - gemini-1.5-pro-latest
        - gemini-1.5-flash
      example: gemini-1.5-flash-latest
    DeepseekModels:
      type: string
      description: List of Deepseek models that can be used for the assistant.
      enum:
        - V3
      example: V3
    BedrockModels:
      type: string
      description: List of Bedrock models that can be used for the assistant.
      enum:
        - anthropic.claude-3-5-sonnet
        - anthropic.claude-3-5-haiku
        - meta.llama3-1-8b-instruct
      example: anthropic.claude-3-5-sonnet
    CustomLLMModels:
      type: string
      description: List of Custom LLM models that can be used for the assistant.
    AssistantConfig:
      type: object
      description: >-
        This is the stt and tts configuration of the assistant. You can add one
        stt and multiple tts configurations. check [here](/vendors) for the list
        of supported vendors and models.
      properties:
        speech:
          type: object
          properties:
            stt:
              description: >-
                This section allows you to configure the transcription settings
                for the assistant.
              oneOf:
                - $ref: '#/components/schemas/MicrosoftSTT'
                  title: Microsoft STT
                - $ref: '#/components/schemas/DeepgramSTT'
                  title: Deepgram STT
            sttFallback:
              description: >-
                This is the fallback speech to text configuration of the
                assistant. When the main stt configuration fails, the fallback
                stt configuration will be used. You can enable or disable the
                fallback stt configuration with `enabled` field.
              allOf:
                - type: object
                  description: >-
                    This flag can enable or disable the fallback stt
                    configuration.
                  properties:
                    enabled:
                      type: boolean
                      default: true
                - oneOf:
                    - $ref: '#/components/schemas/MicrosoftSTT'
                      title: Microsoft STT
                    - $ref: '#/components/schemas/DeepgramSTT'
                      title: Deepgram STT
            ttsData:
              description: >-
                This is the text to speech configuration of the assistant. You
                can add multiple tts configurations.
              type: array
              items:
                allOf:
                  - type: object
                    properties:
                      enabled:
                        description: >-
                          If you want to use multiple voices for multiple
                          languages, you can add multiple tts configurations and
                          set the `enabled` flag to true for only one of the
                          desired tts configuration that will be used as main
                          tts configuration. If the language of assistant is not
                          present in the tts configuration, the `default` tts
                          configuration will be used.
                        type: boolean
                        default: true
                        example: true
                  - oneOf:
                      - $ref: '#/components/schemas/ElevenLabsTTS'
                        title: Eleven Labs TTS
                      - $ref: '#/components/schemas/DeepgramTTS'
                        title: Deepgram TTS
                      - $ref: '#/components/schemas/MicrosoftTTS'
                        title: Microsoft TTS
                      - $ref: '#/components/schemas/CartesiaTTS'
                        title: Cartesia TTS
    BackgroundSoundNative:
      type: string
      enum:
        - enable
        - disable
      example: enable
    BackgroundSoundCustom:
      type: string
      format: uri
      example: https://www.soundjay.com/ambient/sounds/people-in-lounge-1.mp3
    AssistantAnalysis:
      type: object
      properties:
        summary:
          description: >-
            This is the plan for generating the summary of the call. This
            outputs to `call.analysis.summary`.
          allOf:
            - $ref: '#/components/schemas/AssistantAnalysisSummary'
        successEvaluation:
          description: >-
            This is the plan for generating the success evaluation of the call.
            This outputs to `call.analysis.successEvaluation`.
          allOf:
            - $ref: '#/components/schemas/AssistantAnalysisSuccessEvaluation'
        structuredData:
          description: >-
            This is the plan for generating the structured data from the call.
            This outputs to `call.analysis.structuredData`.
          allOf:
            - $ref: '#/components/schemas/AssistantAnalysisStructuredData'
    AssistantOverrides:
      type: object
      description: This is where you can override the default behavior of the assistant.
      properties:
        welcomeMessage:
          type: string
          description: >-
            This is the message that the assistant will say when the call
            starts.
          example: Hello, how can I help you today?
        welcomeMessageMode:
          type: string
          description: >-
            This is the mode of the welcome message. It can be one of the
            following: 'assistant-speaks-first', 'assistant-waits-for-user',
            'automatic'.
          example: assistant-speaks-first
          default: automatic
        welcomeMessageInterruptionsEnabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the interruptions are
            enabled during the welcome message. If set to false, the user can
            not interrupt the welcome message.
          example: false
          default: false
        recordingEnabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the recording is enabled. If
            set to false, the model will not record the call.


            @default true
          default: true
          example: true
        recordAfterTransfer:
          type: boolean
          description: >-
            When enabled, call recording continues after the call is forwarded
            or warm-transferred to another party.
          default: false
          example: false
        postCallTranscriptsEnabled:
          type: boolean
          description: >-
            When enabled, a post-call transcript file is generated and stored
            alongside the call recording after the call ends.
          default: false
          example: false
        maxConsecutiveTtsFailures:
          type: integer
          description: >-
            Maximum number of consecutive TTS turn failures before the call is
            ended automatically.
          default: 2
          example: 2
          minimum: 0
        warmTransferEnabled:
          type: boolean
          description: >-
            Enables warm transfer when forwarding calls. The receiving agent is
            connected before the caller is transferred.
          default: false
          example: false
        warmTransferConversational:
          type: boolean
          description: >-
            When enabled with `warmTransferEnabled`, the assistant converses
            with the receiving agent via WebSocket before completing the
            transfer.
          default: false
          example: false
        holdMusicUrl:
          type: string
          description: >-
            URL of the hold music played to the caller while a conversational
            warm transfer is in progress.
          default: ''
          example: https://www.soundjay.com/ambient/sounds/people-in-lounge-1.mp3
        warmTransferTimeout:
          type: integer
          description: >-
            Maximum time in seconds to wait for the receiving agent to answer
            during a warm transfer.
          default: 300
          example: 300
          minimum: 1
          maximum: 3600
        recordingPath:
          type: string
          description: >-
            This is the path where the recording will be stored. If not
            provided, the recording will be stored in the default path.
          example: /recordings
        dynamicVariables:
          type: object
          description: >-
            This is the dynamic variables of the conversation. Values in this
            object will be replaced in the assistant system prompt, welcome
            message, end call message. If your dynamic variable is `user_name`,
            you can use it in the system prompt message as `Hello,
            {{user_name}}`.
          example:
            user_name: John Doe
    AssistantServer:
      type: object
      description: >-
        This is where Interactly will send webhooks. You can find all webhooks
        available along with their shape in ServerMessage schema.
      properties:
        enabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the server is enabled. If
            set to false, the model will not send webhooks to the server.


            @default false
          example: false
        messages:
          type: array
          enum:
            - status-update
            - conversation-update
            - hang
            - end-of-call-report
            - error
          example:
            - status-update
            - conversation-update
            - hang
            - end-of-call-report
            - error
          description: These are the messages that will be sent to your Server URL.
          items:
            type: string
            enum:
              - status-update
              - conversation-update
              - hang
              - end-of-call-report
              - error
      allOf:
        - $ref: '#/components/schemas/Server'
    MicrosoftSTT:
      type: object
      properties:
        vendor:
          type: string
          description: This is the vendor of the speech to text.
          example: microsoft
          default: microsoft
          enum:
            - microsoft
        languages:
          type: array
          description: This is the list of languages that the assistant can understand.
          items:
            type: string
            enum:
              - en-US
              - en-IN
              - en-GB
              - es-US
              - es-MX
              - fr-FR
              - fr-CA
              - zh-CN
              - pt-BR
              - pt-PT
              - hi-IN
          example: en-US
          default:
            - en-US
    DeepgramSTT:
      type: object
      properties:
        vendor:
          type: string
          description: This is the vendor of the speech to text.
          example: deepgram
          default: deepgram
          enum:
            - deepgram
        languages:
          type: array
          description: This is the list of languages that the assistant can understand.
          items:
            type: string
            enum:
              - en-US
          example: en-US
          default:
            - en-US
        deepgramOptions:
          type: object
          description: This is the configuration of the deepgram text to speech.
          properties:
            model:
              type: string
              description: This is the model of the deepgram speech to text.
              example: nova-3
              enum:
                - nova-3
                - nova-3-medical
                - nova-2
                - nova-2-phonecall
                - nova-2-meeting
                - nova-2-conversationalai
                - nova-2-medical
                - flux-general-en
            punctuate:
              type: boolean
              description: >-
                Enable punctuation in the transcription output. This is enabled
                by default.
              example: true
              default: true
            endpointing:
              type: number
              description: >-
                The number of seconds of silence after which the speech is
                considered to be ended. This is set to 10 seconds by default.
              example: 10
              default: 10
            smart_format:
              type: boolean
              description: >-
                Enable smart formatting in the transcription output. This is
                enabled by default.
              example: true
              default: true
            no_delay:
              type: boolean
              description: >-
                Enable no delay in the transcription output. This is enabled by
                default.
              example: true
              default: true
            numerals:
              type: boolean
              description: >-
                Enable numerals in the transcription output. This is enabled by
                default.
              example: true
              default: true
            eagerEotThreshold:
              type: number
              description: >-
                The threshold for the end of turn detection. This is set to 0.5
                by default. Valid Values 0.3 - 0.9. Used for flux-general-en
                model.
              example: 0.5
              default: 0.5
            eotThreshold:
              type: number
              description: >-
                The threshold for the end of turn detection. This is set to 0.8
                by default. Valid Values 0.5 - 0.9. Used for flux-general-en
                model.
              example: 0.8
              default: 0.8
            eotTimeoutMs:
              type: number
              description: >-
                The timeout for the end of turn detection. This is set to 5000
                milliseconds by default. Valid Values 100 - 10000 milliseconds.
                Used for flux-general-en model.
              example: 5000
              default: 5000
    ElevenLabsTTS:
      type: object
      properties:
        vendor:
          type: string
          example: eleven-labs
          enum:
            - eleven-labs
        language:
          type: string
          description: This is the language of the text to speech.
          example: en-US
          enum:
            - en-US
            - es-US
            - fr-FR
            - zh-CN
            - hi-IN
        voice:
          type: string
          description: >-
            Provider voice ID. Ex: Voice ID will be `ZeK6O9RfGNGj0cJT2HoJ` for
            `Shanaya (female)-Customer Care Agent` voice.
          example: ZeK6O9RfGNGj0cJT2HoJ
        config:
          type: object
          description: This is the configuration of the eleven labs text to speech.
          properties:
            modelId:
              type: string
              description: This is the model id of the eleven labs text to speech.
              example: eleven_multilingual_v2
              enum:
                - eleven_multilingual_v2
                - eleven_turbo_v2_5
                - eleven_flash_v2_5
                - eleven_turbo_v2
                - eleven_flash_v2
              default: eleven_turbo_v2
            stability:
              type: number
              description: This is the stability of the eleven labs text to speech.
              example: 0.7
              default: 0.7
              minimum: 0
              maximum: 1
            similarityBoost:
              type: number
              description: >-
                Determines how closely the AI should adhere to the original
                voice when attempting to replicate it.
              example: 0.85
              default: 0.85
              minimum: 0
              maximum: 1
            speakerBoost:
              type: boolean
              description: This is the speaker boost of the eleven labs text to speech.
              example: true
              default: true
            styleExaggeration:
              type: number
              description: >-
                Determines the style exaggeration of the voice. This setting
                attempts to amplify the style of the original speaker. It does
                consume additional computational resources and might increase
                latency if set to anything other than 0.
              example: 0.5
              default: 0
              minimum: 0
              maximum: 1
            seed:
              type: number
              description: >-
                If specified, our system will make a best effort to sample
                deterministically, such that repeated requests with the same
                seed and parameters should return the same result. Determinism
                is not guaranteed. Must be integer between 0 and 4294967295.
              example: 42
              default: null
            speed:
              type: number
              description: >-
                Adjusts the speed of the voice. A value of 1.0 is the default
                speed, while values less than 1.0 slow down the speech, and
                values greater than 1.0 speed it up.
              example: 1
              default: 1
              minimum: 0.5
              maximum: 2
            applyTextNormalization:
              type: boolean
              description: >-
                This is the apply text normalization of the eleven labs text to
                speech.
              example: true
              default: false
    DeepgramTTS:
      type: object
      properties:
        vendor:
          type: string
          example: deepgram
          enum:
            - deepgram
        language:
          type: string
          description: This is the language of the text to speech.
          example: en-US
          enum:
            - en-US
            - en-UK
        voice:
          type: string
          description: >-
            Provider voice ID. Ex: Voice ID will be `aura-luna-en` for `Luna
            (US) Female` voice.
          example: aura-luna-en
    MicrosoftTTS:
      type: object
      properties:
        vendor:
          type: string
          example: microsoft
          enum:
            - microsoft
        language:
          type: string
          description: This is the language of the text to speech.
          example: en-US
          enum:
            - en-US
            - es-ES
            - fr-FR
            - hi-In
        voice:
          type: string
          description: >-
            Provider voice ID. Ex: Voice ID will be `en-US-JennyNeural` for
            `Jenny (Female)` voice.
          example: en-US-JennyNeural
    CartesiaTTS:
      type: object
      properties:
        vendor:
          type: string
          example: cartesia
          enum:
            - cartesia
        language:
          type: string
          description: This is the language of the text to speech.
          example: en
          enum:
            - en
            - es
            - fr
            - zh
            - hi
        voice:
          type: string
          description: >-
            Provider voice ID. Ex: Voice ID will be
            `79f8b5fb-2cc8-479a-80df-29f7a7cf1a3e` for `Nonfiction Man` voice.
          example: 79f8b5fb-2cc8-479a-80df-29f7a7cf1a3e
    AssistantAnalysisSummary:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the summary is generated. If
            set to false, the model will not generate a summary of the call.


            @default false
          example: false
        prompt:
          type: string
          description: >-
            This is the prompt that the model will use to generate the summary
            of the call.
          example: Generate a summary of the call.
        timeoutSeconds:
          type: number
          description: >-
            This is how long the request is tried before giving up. When request
            times out, `call.analysis.summary` will be empty. 
             Usage: 
            - To guarantee the summary is generated, set this value high. Note,
            this will delay the end of call report in cases where model is slow
            to respond. 
             @default 5 seconds
          minimum: 1
          maximum: 60
          example: 30
    AssistantAnalysisSuccessEvaluation:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            This is a boolean that controls whether the success evaluation is
            generated. If set to false, the model will not generate a success
            evaluation of the call.


            @default false
          example: false
        prompt:
          type: string
          description: >-
            This is the prompt that the model will use to generate the success
            evaluation of the call.
          example: Evaluate the success of the call.
        rubric:
          type: string
          enum:
            - NumericScale
            - DescriptiveScale
            - Checklist
            - Matrix
            - PercentageScale
            - LikertScale
            - AutomaticRubric
            - PassFail
          description: >-
            This enforces the rubric of the evaluation. The output is stored in
            `call.analysis.successEvaluation`.


            Options include:

            - 'NumericScale': A scale of 1 to 10.

            - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.

            - 'Checklist': A checklist of criteria and their status.

            - 'Matrix': A grid that evaluates multiple criteria across different
            performance levels.

            - 'PercentageScale': A scale of 0% to 100%.

            - 'LikertScale': A scale of Strongly Agree, Agree, Neutral,
            Disagree, Strongly Disagree.

            - 'AutomaticRubric': Automatically break down evaluation into
            several criteria, each with its own score.

            - 'PassFail': A simple 'true' if call passed, 'false' if not.


            Default is 'PassFail'.
        timeoutSeconds:
          type: number
          description: >-
            This is how long the request is tried before giving up. When request
            times out, `call.analysis.summary` will be empty. 
             Usage: 
            - To guarantee the summary is generated, set this value high. Note,
            this will delay the end of call report in cases where model is slow
            to respond. 
             @default 5 seconds
          minimum: 1
          maximum: 60
          example: 30
    AssistantAnalysisStructuredData:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            This determines whether structured data is generated and stored in
            `call.analysis.structuredData`. Defaults to false.


            Usage:

            - If you want to extract structured data, set this to true and
            provide a `schema`.


            @default false
          default: false
        prompt:
          type: string
          description: >-
            This is the prompt that the model will use to generate the
            structured data of the call.
          example: Extract structured data from the call.
        timeoutSeconds:
          type: number
          description: >-
            This is how long the request is tried before giving up. When request
            times out, `call.analysis.structuredData` will be empty.


            Usage:

            - To guarantee the structured data is generated, set this value
            high. Note, this will delay the end of call report in cases where
            model is slow to respond.


            @default 5 seconds
          minimum: 1
          maximum: 60
          example: 30
        schema:
          description: >-
            This is the schema of the structured data. The output is stored in
            `call.analysis.structuredData`.


            Complete guide on JSON Schema can be found
            [here](https://ajv.js.org/json-schema.html#json-data-type).
          allOf:
            - $ref: '#/components/schemas/JsonSchema'
          example:
            type: object
            properties:
              name:
                type: string
                description: This is the name of the user.
                example: John Doe
              dob:
                type: string
                format: date
                description: This is the date of birth of the user.
                example: '1990-03-08'
    Server:
      type: object
      properties:
        timeoutSeconds:
          type: number
          description: >-
            This is the timeout in seconds for the request to your server.
            Defaults to 20 seconds.


            @default 20
          minimum: 1
          maximum: 120
          example: 20
        url:
          type: string
          description: API endpoint to send requests to.
          example: https://api.example.com/v1/getUserDetails
        secret:
          type: string
          description: >-
            This is the secret you can set that Interactly will send with every
            request to your server. Will be sent as a header called
            x-interactly-secret.
          example: my-secret
        headers:
          type: object
          description: >-
            These are the custom headers to include in the request sent to your
            server.


            Each key-value pair represents a header name and its value.
          example: {}
      required:
        - url
    JsonSchema:
      type: object
      properties:
        type:
          type: string
          description: >-
            This is the type of output you'd like.


            `string`, `number`, `integer`, `boolean` are the primitive types and
            should be obvious.


            `array` and `object` are more interesting and quite powerful. They
            allow you to define nested structures.


            For `array`, you can define the schema of the items in the array
            using the `items` property.


            For `object`, you can define the properties of the object using the
            `properties` property.
          enum:
            - string
            - number
            - integer
            - boolean
            - array
            - object
        items:
          type: object
          description: >-
            This is required if the type is "array". This is the schema of the
            items in the array.


            This is of type JsonSchema. However, Swagger doesn't support
            circular references.
        properties:
          type: object
          description: >-
            This is required if the type is "object". This specifies the
            properties of the object.


            This is a map of string to JsonSchema. However, Swagger doesn't
            support circular references.
        description:
          type: string
          description: >-
            This is the description to help the model understand what it needs
            to output.
        required:
          description: |-
            This is a list of properties that are required.

            This only makes sense if the type is "object".
          type: array
          items:
            type: string
      required:
        - type
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````