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

# Update conversation policy

> Requires `conversations:policy:write`. At least one operation is required. freezeForMinutes conflicts with unfreeze=true. Unresolved handoffs lock policy changes.



## OpenAPI

````yaml /openapi.json patch /conversations/{conversationId}/policy
openapi: 3.0.3
info:
  title: Visito M2M API
  version: 1.0.0
  description: >-
    Tenant-scoped server-to-server API for channels, conversations, commerce,
    custom AI tools, and WhatsApp templates. Send operations are asynchronous
    and return queued acknowledgements. Expansion adds conversation controls,
    knowledge, sales opportunities, delivery status, reporting, and signed
    webhooks.
servers:
  - url: https://platform-api.visitoai.com/m2m/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Channels
  - name: Conversations
  - name: Commerce
  - name: Custom tools
  - name: WhatsApp templates
  - name: Properties
  - name: Knowledge
  - name: Sales CRM
  - name: Delivery
  - name: Reporting
  - name: Webhooks
paths:
  /conversations/{conversationId}/policy:
    patch:
      tags:
        - Conversations
      summary: Update conversation policy
      description: >-
        Requires `conversations:policy:write`. At least one operation is
        required. freezeForMinutes conflicts with unfreeze=true. Unresolved
        handoffs lock policy changes.
      operationId: m2mPatchConversationsConversationidPolicy
      parameters:
        - name: conversationId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationPolicyPatch'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationPolicyMutation'
        default:
          $ref: '#/components/responses/Error'
components:
  schemas:
    ConversationPolicyPatch:
      type: object
      properties:
        statusAction:
          type: string
          enum:
            - archive
            - unarchive
            - block
            - unblock
        manualEnabled:
          type: boolean
        freezeForMinutes:
          type: number
          minimum: 1
          maximum: 120
        unfreeze:
          type: boolean
    ConversationPolicyMutation:
      type: object
      properties:
        ok:
          type: boolean
        conversationId:
          type: string
        changed:
          type: boolean
        statusBefore:
          type: string
        statusAfter:
          type: string
        manualEnabledBefore:
          type: boolean
        manualEnabledAfter:
          type: boolean
        frozenUntilAtAfter:
          type: string
          format: date-time
          nullable: true
        conversationKey:
          type: string
        frozenUntilAtBefore:
          type: string
        isFrozenBefore:
          type: boolean
        isFrozenAfter:
          type: boolean
        frozenSecondsRemainingAfter:
          type: integer
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: M2M_AUTH_INSUFFICIENT_SCOPE
            message:
              type: string
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: M2M_AUTH_INSUFFICIENT_SCOPE
          message: M2M credential does not have required scope.
          details:
            requiredScopes:
              - conversations:write
            missingScopes:
              - conversations:write
  responses:
    Error:
      description: Structured error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Visito M2M API key
      description: Server-side tenant-scoped credential created from Build > API Keys.

````