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

# Update quick link settings

> Updates the saved QuickLink settings for the authenticated organization or project and returns the saved record.

Requires `quicklink:manage`. Project tokens only access resources in their own project.



## OpenAPI

````yaml api-reference/features/integrate.json PUT /platform/quicklink
openapi: 3.0.3
info:
  title: Integrate API methods
  version: 1.0.0
  description: Task-focused integrate methods across supported Polymorfa connection types.
servers: []
security: []
paths:
  /platform/quicklink:
    put:
      tags:
        - Quicklink
      summary: Update quick link settings
      description: >-
        Updates the saved QuickLink settings for the authenticated organization
        or project and returns the saved record.


        Requires `quicklink:manage`. Project tokens only access resources in
        their own project.
      operationId: managementUpdateQuickLinkSettings
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/management__UpdateQuickLinkSettingsRequest'
      responses:
        '200':
          description: Success
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Stable request correlation identifier.
            Polymorfa-Version:
              schema:
                type: string
              description: API version applied to this response.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    allOf:
                      - $ref: '#/components/schemas/management__QuickLinkSettings'
                    description: Structured data carried by this object.
                required:
                  - data
        '400':
          $ref: '#/components/responses/management__BadRequest'
        '401':
          $ref: '#/components/responses/management__Unauthorized'
        '403':
          $ref: '#/components/responses/management__Forbidden'
      security:
        - management__ApiKeyAuth: []
      servers:
        - url: https://api.polymorfa.com
        - url: http://localhost:8080
          description: local dev
components:
  schemas:
    management__UpdateQuickLinkSettingsRequest:
      type: object
      additionalProperties: false
      description: >-
        QuickLink settings for the organization or one project. Omitted fields
        keep their saved value; `null` clears an optional field.
      properties:
        projectId:
          allOf:
            - $ref: '#/components/schemas/management__ProjectId'
          description: |-
            Identifier of the Polymorfa project that owns this resource.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
        enabled:
          type: boolean
          description: Allows QuickLinks to be created for the scope.
        allowedRedirectUris:
          type: array
          maxItems: 50
          items:
            type: string
            format: uri
            pattern: ^[Hh][Tt][Tt][Pp][Ss]://
            maxLength: 2048
          description: >-
            Up to 50 exact HTTPS callback URLs without credentials. A QuickLink
            callbackUrl must match one of them.


            <!-- polymorfa-input-table -->

            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | Array size | At most `50` items |

            | Item string length | At most `2048` characters |

            | Item format | `uri` |

            | Item pattern | `^[Hh][Tt][Tt][Pp][Ss]://` |
        businessName:
          type: string
          maxLength: 120
          nullable: true
          description: >-
            Business name shown to the customer.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `120`
            characters |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `120` characters |
        headline:
          type: string
          maxLength: 80
          nullable: true
          description: >-
            Page title shown above the pairing flow. Defaults to “Connect
            WhatsApp”.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `80`
            characters |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `80` characters |
        description:
          type: string
          maxLength: 280
          nullable: true
          description: >-
            Intro sentence shown under the headline.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `280`
            characters |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `280` characters |
        successMessage:
          type: string
          maxLength: 280
          nullable: true
          description: >-
            Message shown after the number connects.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `280`
            characters |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `280` characters |
        supportUrl:
          type: string
          format: uri
          pattern: ^[Hh][Tt][Tt][Pp][Ss]://
          maxLength: 2048
          nullable: true
          description: >-
            Help link shown on the page.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `2048`
            characters; Format: `uri`; Pattern: `^[Hh][Tt][Tt][Pp][Ss]://` |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `2048` characters |

            | Format | `uri` |

            | Pattern | `^[Hh][Tt][Tt][Pp][Ss]://` |
        privacyUrl:
          type: string
          format: uri
          pattern: ^[Hh][Tt][Tt][Pp][Ss]://
          maxLength: 2048
          nullable: true
          description: >-
            Privacy policy link shown on the consent step.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `2048`
            characters; Format: `uri`; Pattern: `^[Hh][Tt][Tt][Pp][Ss]://` |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `2048` characters |

            | Format | `uri` |

            | Pattern | `^[Hh][Tt][Tt][Pp][Ss]://` |
        termsUrl:
          type: string
          format: uri
          pattern: ^[Hh][Tt][Tt][Pp][Ss]://
          maxLength: 2048
          nullable: true
          description: >-
            Terms link shown on the consent step.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `2048`
            characters; Format: `uri`; Pattern: `^[Hh][Tt][Tt][Pp][Ss]://` |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `2048` characters |

            | Format | `uri` |

            | Pattern | `^[Hh][Tt][Tt][Pp][Ss]://` |
        accent:
          type: string
          pattern: ^#[0-9A-Fa-f]{6}$
          nullable: true
          description: >-
            Specifies accent for this management update quick link settings
            request.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; Pattern: `^#[0-9A-Fa-f]{6}$` |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | Pattern | `^#[0-9A-Fa-f]{6}$` |
        theme:
          type: string
          enum:
            - light
            - dark
            - system
          description: |-
            Visual theme used by the widget.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `light` | Light. |
            | `dark` | Dark. |
            | `system` | System. |
        hideWatermark:
          type: boolean
          description: Whether hide watermark.
        shape:
          type: string
          enum:
            - square
            - rounded
            - pill
            - null
          nullable: true
          description: >-
            Specifies shape for this management update quick link settings
            request.


            <!-- polymorfa-input-table -->

            **Allowed values**

            | Value | Meaning |

            | --- | --- |

            | `square` | Square. |

            | `rounded` | Rounded. |

            | `pill` | Pill. |

            | `null` | Null. |


            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; Value `square` or `rounded` or
            `pill` |

            | Alternative 2 | `null` |
        radiusPx:
          type: number
          minimum: 0
          maximum: 999
          nullable: true
          description: >-
            Specifies radius px for this management update quick link settings
            request.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `number`; Numeric value: `0` through `999`
            (inclusive) |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | Numeric value | `0` through `999` (inclusive) |
        logoMode:
          type: string
          enum:
            - none
            - custom
            - organization
            - project
          description: |-
            Behavior selected for logo.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `none` | None. |
            | `custom` | Custom. |
            | `organization` | Organization. |
            | `project` | Project. |
        logoStorageId:
          type: string
          nullable: true
          description: |-
            Identifier for the logo storage.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        logoSourceStorageId:
          type: string
          nullable: true
          description: |-
            Identifier for the logo source storage.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        historySync:
          type: string
          enum:
            - ask
            - force_on
            - force_off
          description: |-
            History synchronization behavior for newly connected sessions.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `ask` | Ask. |
            | `force_on` | Force on. |
            | `force_off` | Force off. |
        methods:
          type: array
          nullable: true
          minItems: 1
          maxItems: 2
          uniqueItems: true
          items:
            type: string
            enum:
              - qr
              - pairing
          description: >-
            Connection methods offered on hosted QuickLink pages.


            <!-- polymorfa-input-table -->

            **Allowed item values**

            | Item value | Meaning |

            | --- | --- |

            | `qr` | Qr. |

            | `pairing` | Pairing. |


            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `array`; Array size: `1` through `2` items;
            Duplicates: Not accepted; every array item must be unique |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | Array size | `1` through `2` items |

            | Duplicates | Not accepted; every array item must be unique |
        defaultMethod:
          type: string
          enum:
            - qr
            - pairing
            - null
          nullable: true
          description: |-
            Method the page opens first. Unset lets the page choose by device.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `qr` | Qr. |
            | `pairing` | Pairing. |
            | `null` | Null. |

            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Value `qr` or `pairing` |
            | Alternative 2 | `null` |
    management__QuickLinkSettings:
      type: object
      additionalProperties: false
      description: >-
        Saved QuickLink settings for one scope. `logoUrl` is a short-lived read
        URL for the saved logo.
      properties:
        id:
          type: string
          format: uuid
          description: |-
            Identifier for this resource.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
        projectId:
          type: string
          format: uuid
          nullable: true
          description: |-
            Identifier of the Polymorfa project that owns this resource.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `uuid` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
        enabled:
          type: boolean
          description: Whether this feature is enabled.
        allowedRedirectUris:
          type: array
          items:
            type: string
          description: >-
            Allowed redirect uris associated with this management quick link
            setting.
        businessName:
          type: string
          nullable: true
          description: |-
            Business name shown to the customer.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        headline:
          type: string
          nullable: true
          description: |-
            Specifies headline for this management quick link setting.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        description:
          type: string
          nullable: true
          description: |-
            Human-readable description of this resource.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        successMessage:
          type: string
          nullable: true
          description: |-
            Specifies success message for this management quick link setting.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        supportUrl:
          type: string
          nullable: true
          description: |-
            URL for the support.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        privacyUrl:
          type: string
          nullable: true
          description: |-
            URL for the privacy.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        termsUrl:
          type: string
          nullable: true
          description: |-
            URL for the terms.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        accent:
          type: string
          nullable: true
          description: |-
            Specifies accent for this management quick link setting.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        theme:
          type: string
          enum:
            - light
            - dark
            - system
          description: |-
            Visual theme used by the widget.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `light` | Light. |
            | `dark` | Dark. |
            | `system` | System. |
        hideWatermark:
          type: boolean
          description: Whether hide watermark.
        shape:
          type: string
          enum:
            - square
            - rounded
            - pill
            - null
          nullable: true
          description: >-
            Specifies shape for this management quick link setting.


            <!-- polymorfa-input-table -->

            **Allowed values**

            | Value | Meaning |

            | --- | --- |

            | `square` | Square. |

            | `rounded` | Rounded. |

            | `pill` | Pill. |

            | `null` | Null. |


            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; Value `square` or `rounded` or
            `pill` |

            | Alternative 2 | `null` |
        radiusPx:
          type: number
          nullable: true
          description: |-
            Specifies radius px for this management quick link setting.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `number` |
            | Alternative 2 | `null` |
        logoMode:
          type: string
          enum:
            - none
            - custom
            - organization
            - project
          description: |-
            Behavior selected for logo.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `none` | None. |
            | `custom` | Custom. |
            | `organization` | Organization. |
            | `project` | Project. |
        logoStorageId:
          type: string
          nullable: true
          description: |-
            Identifier for the logo storage.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        logoSourceStorageId:
          type: string
          nullable: true
          description: |-
            Identifier for the logo source storage.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        logoUrl:
          type: string
          nullable: true
          description: |-
            URL for the logo.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        historySync:
          type: string
          enum:
            - ask
            - force_on
            - force_off
          description: |-
            History synchronization behavior for newly connected sessions.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `ask` | Ask. |
            | `force_on` | Force on. |
            | `force_off` | Force off. |
        methods:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - qr
              - pairing
          description: |-
            Connection methods enabled for the widget.

            <!-- polymorfa-input-table -->
            **Allowed item values**
            | Item value | Meaning |
            | --- | --- |
            | `qr` | Qr. |
            | `pairing` | Pairing. |

            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `array` |
            | Alternative 2 | `null` |
        defaultMethod:
          type: string
          enum:
            - qr
            - pairing
            - null
          nullable: true
          description: |-
            Specifies default method for this management quick link setting.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `qr` | Qr. |
            | `pairing` | Pairing. |
            | `null` | Null. |

            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Value `qr` or `pairing` |
            | Alternative 2 | `null` |
        createdAt:
          type: integer
          description: Unix timestamp in milliseconds when this resource was created.
        updatedAt:
          type: integer
          description: Unix timestamp in milliseconds when this resource was last updated.
      required:
        - id
        - projectId
        - enabled
        - allowedRedirectUris
        - businessName
        - headline
        - description
        - successMessage
        - supportUrl
        - privacyUrl
        - termsUrl
        - accent
        - theme
        - hideWatermark
        - shape
        - radiusPx
        - logoMode
        - logoStorageId
        - logoSourceStorageId
        - logoUrl
        - historySync
        - methods
        - defaultMethod
        - createdAt
        - updatedAt
    management__ProjectId:
      type: string
      format: uuid
      description: >-
        Project UUID. Optional where an operation can infer or search
        organization scope; required where the operation creates a project-owned
        resource.
    management__ErrorEnvelope:
      type: object
      required:
        - error
        - data
        - docs
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - param
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - conflict_error
                - rate_limit_error
                - api_error
                - upstream_error
              description: |-
                Type discriminator for this object.

                <!-- polymorfa-input-table -->
                **Allowed values**
                | Value | Meaning |
                | --- | --- |
                | `invalid_request_error` | Invalid request error. |
                | `authentication_error` | Authentication error. |
                | `permission_error` | Permission error. |
                | `conflict_error` | Conflict error. |
                | `rate_limit_error` | Rate limit error. |
                | `api_error` | Api error. |
                | `upstream_error` | Upstream error. |
            code:
              type: string
              description: Stable failure code. Use this value for programmatic handling.
            message:
              type: string
              description: Safe explanation of the failure.
            param:
              type: string
              nullable: true
              description: |-
                Invalid request field, or null when no field applies.

                <!-- polymorfa-input-table -->
                **Accepted alternatives**
                | Alternative | Accepted input |
                | --- | --- |
                | Alternative 1 | Type: `string` |
                | Alternative 2 | `null` |
          description: Error details returned when the operation fails.
        data:
          type: string
          nullable: true
          enum:
            - null
          description: |-
            Always null for a failed request.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `null` | Null. |

            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        docs:
          type: string
          format: uri
          description: |-
            Documentation link to this failure code.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uri` |
  responses:
    management__BadRequest:
      description: A path, query, or request-body value did not pass validation.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
    management__Unauthorized:
      description: Missing/invalid credential for this audience.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
    management__Forbidden:
      description: Authenticated but lacks the required scope/role/audience.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
  securitySchemes:
    management__ApiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        Polymorfa server credential: a scoped pmfa_ organization key, or a
        pmfa_pt_ project token on project- and session-bound operations inside
        its exact authenticated project. Keys may be personal or service-account
        owned. Both enforce selected action scopes; organization keys can
        address team resources and every project in the organization. Listener
        and browser client credentials are rejected.

````