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

# Update Outbound Settings

> Updates the outbound settings for the specified Pearl.



## OpenAPI

````yaml put /v2/Pearl/{pearlId}/Settings/Outbound
openapi: 3.0.1
info:
  title: NLPearl Client API
  description: A sample API that demonstrates features in the OpenAPI specification
  version: v2
servers:
  - url: https://api.nlpearl.ai
    description: Production Environement
security:
  - bearer_auth: []
paths:
  /v2/Pearl/{pearlId}/Settings/Outbound:
    put:
      tags:
        - Pearl
      summary: Update Outbound Settings
      description: Updates the outbound settings for the specified Pearl.
      parameters:
        - name: pearlId
          in: path
          description: The unique identifier of the Pearl.
          required: true
          schema:
            type: string
      requestBody:
        description: The outbound settings to apply.
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/OutboundSettingsApi'
          text/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/OutboundSettingsApi'
          application/*+json:
            schema:
              allOf:
                - $ref: '#/components/schemas/OutboundSettingsApi'
      responses:
        '200':
          description: Outbound settings updated successfully.
          content:
            text/plain:
              schema:
                type: boolean
            application/json:
              schema:
                type: boolean
            text/json:
              schema:
                type: boolean
        '400':
          description: The request is invalid or the data is malformed.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
components:
  schemas:
    OutboundSettingsApi:
      type: object
      properties:
        phoneNumberId:
          type: string
          description: "The phone number ID to use for this Pearl.\r\nTo retrieve available phone numbers, see: [Get Phone Numbers](/api-reference/v2/pearlSettings/get-phones)"
          nullable: true
        totalAgents:
          type: integer
          description: Total number of agents allocated to this outbound activity.
          format: int32
        recordingTrack:
          allOf:
            - $ref: '#/components/schemas/eRecordingTrack'
          description: |+
            Call recording track selection.

            - Both: Records both sides of the call (agent and lead/customer).
            - Outbound: Records only the agent side.
            - Inbound: Records only the lead/customer side.
            - None: Disables call recording.

            `1 - Outbound`

            `2 - Inbound`

            `3 - Both`

            `4 - None`

        isStopRecordingAfterTransferCall:
          type: boolean
          description: >-
            Indicates whether recording should continue after a call is
            transferred.
          nullable: true
        transcriptOptions:
          allOf:
            - $ref: '#/components/schemas/eTranscriptOptions'
          description: |+
            `1 - FullTranscript`

            `2 - SensitiveInfoRemoved`

            `3 - NoTranscript`

        budgetTotal:
          type: integer
          description: "Total budget allocated for the outbound activity.\r\nIf null, the outbound activity runs without a budget limit."
          format: int32
          nullable: true
        timeZone:
          type: string
          description: "Default time zone for the outbound activity.\r\n            \r\nLeads are called according to this time zone unless a lead-specific time zone is provided when adding leads.\r\nFor accepted values, refer to the [Windows Time Zones list](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11).\r\n            \r\nExample: \"Pacific Standard Time\", \"Romance Standard Time\"."
          nullable: true
        maximumCallAttempts:
          type: integer
          description: "Maximum number of call attempts per lead.\r\n            \r\nConstraints:\r\n- Max 5 attempts."
          format: int32
        minimumRetryIntervalHours:
          allOf:
            - $ref: '#/components/schemas/eMinimumRetryIntervalHours'
          description: |+
            `1 - Every6Hours`

            `2 - OnceADay`

            `3 - OnceEvery3Days`

            `4 - OnceAWeek`

            `5 - OnceAMonth`

            `6 - Every3Hours`

        ringDuration:
          type: integer
          description: "Ringing duration (in seconds) before considering the call unanswered.\r\n            \r\nConstraints:\r\n- Min 10 seconds.\r\n- Max 50 seconds."
          format: int32
          nullable: true
        callTimeout:
          type: integer
          description: "Maximum call duration (in minutes). The call is ended when this limit is reached.\r\n            \r\nConstraints:\r\n- Min 1 minute.\r\n- Max 120 minutes."
          format: int32
          nullable: true
        voiceMail:
          type: string
          description: "`🧩 May support variables`\r\n            \r\nVoicemail message left when a voicemail/answering machine is detected.\r\nIf empty, the agent will not leave voicemails.\r\n            \r\nNotes:\r\n- Supports pre-call variables only.\r\n- When a voicemail is left, the call is marked as \"voicemail left\" and no further retries are attempted.\r\n            \r\nMax 500 characters only."
          nullable: true
        bypassIVRInstruction:
          type: string
          description: "`🧩 May support variables`\r\n            \r\nInstructions used to bypass IVR (Interactive Voice Response) systems.\r\n            \r\nAutomatically navigates external IVR systems by detecting voice menu options\r\nand executing the appropriate DTMF inputs, enabling Pearl to reach its intended goal.\r\n            \r\nNotes:\r\n- Supports pre-call variables only.\r\n- Instructions should be clear, sequential, and action-oriented.\r\n- If empty, no IVR bypass will be attempted.\r\n            \r\nExample:\r\n\"If prompted, press 1 for English, then press 2 for support, then press 3 for billing.\"\r\n            \r\nMax 500 characters only."
          nullable: true
        callingHours:
          type: array
          items:
            $ref: '#/components/schemas/DayWorkingHours'
          description: Allowed calling hours for the outbound activity.
          nullable: true
        callWebhookUrl:
          type: string
          description: >-
            Optional webhook URL to receive call events (for example call
            started and call ended).
          nullable: true
        leadWebhookUrl:
          type: string
          description: >-
            Optional webhook URL to receive lead events (for example lead
            created/updated).
          nullable: true
      additionalProperties: false
    ValidationProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
      additionalProperties: {}
    eRecordingTrack:
      type: integer
      description: |+
        Call recording track selection.

        - Both: Records both sides of the call (agent and lead/customer).
        - Outbound: Records only the agent side.
        - Inbound: Records only the lead/customer side.
        - None: Disables call recording.

        `1 - Outbound`

        `2 - Inbound`

        `3 - Both`

        `4 - None`

      format: int32
    eTranscriptOptions:
      type: integer
      description: |+
        `1 - FullTranscript`

        `2 - SensitiveInfoRemoved`

        `3 - NoTranscript`

      format: int32
    eMinimumRetryIntervalHours:
      type: integer
      description: |+
        `1 - Every6Hours`

        `2 - OnceADay`

        `3 - OnceEvery3Days`

        `4 - OnceAWeek`

        `5 - OnceAMonth`

        `6 - Every3Hours`

      format: int32
    DayWorkingHours:
      type: object
      properties:
        day:
          allOf:
            - $ref: '#/components/schemas/DayOfWeek'
          description: |+
            `0 - Sunday`

            `1 - Monday`

            `2 - Tuesday`

            `3 - Wednesday`

            `4 - Thursday`

            `5 - Friday`

            `6 - Saturday`

        start:
          type: string
          description: "Start time of the allowed calling window (based on the campaign time zone).\r\n            \r\nConstraints:\r\n- Must be before End."
          format: date-span
        end:
          type: string
          description: "End time of the allowed calling window (based on the campaign time zone).\r\n            \r\nConstraints:\r\n- Must be after Start."
          format: date-span
      additionalProperties: false
    DayOfWeek:
      type: integer
      description: |+
        `0 - Sunday`

        `1 - Monday`

        `2 - Tuesday`

        `3 - Wednesday`

        `4 - Thursday`

        `5 - Friday`

        `6 - Saturday`

      format: int32
  securitySchemes:
    bearer_auth:
      type: http
      description: >-
        Specify the authorization token.


        For more information, check out the [Authorization
        Guide](/api-reference/authorization).
      scheme: bearer

````