> ## 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.

# Set channel automatic replies

> Requires `channels:write`. Update only respondEnabled for the authenticated business. Read the current channel version first. A changed version returns 409; propose and approve a new update. This setting does not repair provider permissions or prove message delivery.



## OpenAPI

````yaml /openapi.json patch /channels/{channelId}/respond-enabled
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:
  /channels/{channelId}/respond-enabled:
    patch:
      tags:
        - Channels
      summary: Set channel automatic replies
      description: >-
        Requires `channels:write`. Update only respondEnabled for the
        authenticated business. Read the current channel version first. A
        changed version returns 409; propose and approve a new update. This
        setting does not repair provider permissions or prove message delivery.
      operationId: set_channel_response_enabled
      parameters:
        - name: channelId
          in: path
          required: true
          schema:
            type: string
            maxLength: 200
            minLength: 1
          description: >-
            Stored channel.id from list_channels or get_channel. Provider page,
            phone, account and WABA IDs are not this ID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                respondEnabled:
                  type: boolean
                expectedUpdatedAt:
                  type: string
                  format: date-time
                  maxLength: 40
              required:
                - respondEnabled
                - expectedUpdatedAt
              additionalProperties: false
      responses:
        '200':
          description: Updated channel configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
        '409':
          description: Resource version changed; read and propose again
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        default:
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    Channel:
      type: object
      required:
        - id
        - tenantId
        - propertyIds
        - provider
        - type
        - active
        - respondEnabled
        - degraded
        - identifiers
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
        tenantId:
          type: string
        propertyId:
          type: string
        propertyIds:
          type: array
          items:
            type: string
        provider:
          type: string
          enum:
            - meta
            - native
            - tiktok
        type:
          type: string
          enum:
            - whatsapp
            - instagram
            - messenger
            - webchat
            - tiktok
        name:
          type: string
        active:
          type: boolean
        respondEnabled:
          type: boolean
        degraded:
          type: boolean
        identifiers:
          type: object
          properties:
            phoneNumberId:
              type: string
            phoneNumber:
              type: string
            wabaId:
              type: string
            igAccountId:
              type: string
            pageId:
              type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        externalId:
          type: string
        appId:
          type: string
        metaAppKey:
          type: string
        igGraphApi:
          type: string
        waConnectionMode:
          type: string
        waActivationStatus:
          type: string
        tokenStatus:
          type: string
        tokenRefreshErrorCode:
          type: string
        degradedCode:
          type: string
        degradedByService:
          type: string
        expiresAt:
          type: string
          format: date-time
        tokenLastRefreshedAt:
          type: string
          format: date-time
        tokenRefreshErrorAt:
          type: string
          format: date-time
        degradedAt:
          type: string
          format: date-time
        degradedWindowStartedAt:
          type: string
          format: date-time
        degradedLastErrorAt:
          type: string
          format: date-time
        waActivationUpdatedAt:
          type: string
          format: date-time
        degradedSignalCount:
          type: integer
        instagramResponsePolicy:
          type: object
          properties:
            storyMentions:
              type: boolean
            storyReplies:
              type: boolean
          additionalProperties: false
          required:
            - storyMentions
            - storyReplies
      additionalProperties: false
      description: >-
        Saved channel configuration and readiness signals. Active/respondEnabled
        do not prove provider readiness or message delivery. Error codes are
        safe diagnostics; raw provider error text and credentials are omitted.
    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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.