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

# Cuerpo de la solicitud Webhook de opt-out

> Este endpoint debe ser implementado en TU servidor (por ejemplo: https://tudominio.com/webhooks/on-optout). Treble llamará a este webhook cuando un usuario decida darse de baja o salir de la conversación. Debes configurar la URL de este webhook en el panel de administración de Treble.



## OpenAPI

````yaml open-api-files/treble-api-es.json POST /webhooks/on-optout
openapi: 3.0.1
info:
  title: API de Treble Poll
  description: Documentación para el endpoint de despliegue de polls en Treble
  version: 1.0.0
servers:
  - url: https://main.treble.ai
    description: Servidor principal de Treble
  - url: https://tudominio.com
    description: >-
      Servidor de ejemplo para implementar los webhooks. Esto representa TU
      servidor donde debes implementar los endpoints que Treble llamará.
security: []
tags:
  - name: Webhooks
    description: >-
      Endpoints que Treble llamará en tu servidor. Estos no son endpoints reales
      que puedas llamar, sino una representación de los webhooks que Treble
      invocará en tu sistema.
paths:
  /webhooks/on-optout:
    post:
      tags:
        - Webhooks
      summary: Webhook - Cuando un usuario se da de baja (opt-out)
      description: >-
        Este endpoint debe ser implementado en TU servidor (por ejemplo:
        https://tudominio.com/webhooks/on-optout). Treble llamará a este webhook
        cuando un usuario decida darse de baja o salir de la conversación. Debes
        configurar la URL de este webhook en el panel de administración de
        Treble.
      requestBody:
        description: Información del evento de opt-out
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OptOutEvent'
            example:
              country_code: '+57'
              cellphone: '3176477608'
              session_id: 85b398ef5bcb20c355f3710c4509349784c907673c9118fb7a89c7a8
              conversation_id: 54263
              question:
                type: closed
                text: >-
                  Hi! Thanks for attending our webinar today. We would like to
                  have a feedback about our session and we would be very
                  grateful if you could help us with that. 
                answers:
                  - text: Sure
                  - text: No, thanks
                  - text: DEFAULT
              sent_at: '2021-10-22 00:15:39.044704'
              sent_text: >-
                Hi! Thanks for attending our webinar today. We would like to
                have a feedback about our session and we would be very grateful
                if you could help us with that. 

                1) Sure

                2) No, thanks

                3) DEFAULT
              user_session_keys: []
              classified_answer:
                text: No, thanks
              reason: OPTOUT
      responses:
        '200':
          description: Respuesta para actualizar o agregar información a la sesión
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Objeto JSON con la nueva información que será reemplazada o
                  agregada a la sesión para uso futuro. El servicio debe
                  responder en menos de 10 segundos.
      servers:
        - url: https://tudominio.com
          description: Tu servidor donde debes implementar este webhook
components:
  schemas:
    OptOutEvent:
      type: object
      required:
        - country_code
        - cellphone
        - session_id
        - conversation_id
        - question
        - sent_at
        - sent_text
        - classified_answer
        - reason
      description: >-
        Evento que se dispara cuando un usuario decide darse de baja o salir de
        la conversación
      properties:
        country_code:
          type: string
          description: Código de país del usuario
        cellphone:
          type: string
          description: Número de teléfono del usuario sin el código de país
        session_id:
          type: string
          description: ID de la sesión del usuario
        conversation_id:
          type: integer
          description: ID de la conversación
        question:
          $ref: '#/components/schemas/ClosedQuestion'
        sent_at:
          type: string
          format: date-time
          description: Fecha y hora en que se envió la pregunta
        sent_text:
          type: string
          description: Texto enviado al usuario
        user_session_keys:
          type: array
          description: >-
            Claves de sesión del usuario recopiladas durante la conversación o
            proporcionadas durante el despliegue
          items:
            $ref: '#/components/schemas/UserSessionKey'
        classified_answer:
          $ref: '#/components/schemas/Answer'
          description: Respuesta clasificada basada en la respuesta del usuario
        reason:
          type: string
          description: >-
            Razón de la salida del usuario, en este caso 'OPTOUT' para indicar
            que el usuario decidió darse de baja
          enum:
            - OPTOUT
    ClosedQuestion:
      type: object
      required:
        - type
        - text
        - answers
      properties:
        type:
          type: string
          description: Tipo de pregunta
          example: closed
        text:
          type: string
          description: Texto de la pregunta
        answers:
          type: array
          description: Lista de respuestas posibles para la pregunta cerrada
          items:
            type: object
            properties:
              text:
                type: string
                description: Texto de la respuesta
    UserSessionKey:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: >-
            Nombre de la variable. Valores especiales incluyen
            'deployment_squad' para seleccionar qué número de teléfono realizará
            el despliegue en empresas multicanal.
        value:
          type: string
          description: >-
            Valor de la variable. Para 'deployment_squad', el valor debe ser
            'DS_[CELLPHONE]'.
    Answer:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: Texto de la respuesta

````