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

# Corpo da Solicitação Webhook de Opt-out

> Este endpoint deve ser implementado no SEU servidor (por exemplo: https://seudominio.com/webhooks/on-optout). O Treble chamará este webhook quando um usuário decidir cancelar a inscrição ou sair da conversa. Você deve configurar a URL deste webhook no painel de administração do Treble.



## OpenAPI

````yaml open-api-files/treble-api-pt.json POST /webhooks/on-optout
openapi: 3.0.1
info:
  title: API do Treble Poll
  description: Documentação para o endpoint de implantação de polls no Treble
  version: 1.0.0
servers:
  - url: https://main.treble.ai
    description: Servidor principal do Treble
  - url: https://seudominio.com
    description: >-
      Servidor de exemplo para implementar os webhooks. Isso representa SEU
      servidor onde você deve implementar os endpoints que o Treble chamará.
security: []
tags:
  - name: Webhooks
    description: >-
      Endpoints que o Treble chamará no seu servidor. Estes não são endpoints
      reais que você possa chamar, mas uma representação dos webhooks que o
      Treble invocará no seu sistema.
paths:
  /webhooks/on-optout:
    post:
      tags:
        - Webhooks
      summary: Webhook - Quando um usuário cancela a inscrição (opt-out)
      description: >-
        Este endpoint deve ser implementado no SEU servidor (por exemplo:
        https://seudominio.com/webhooks/on-optout). O Treble chamará este
        webhook quando um usuário decidir cancelar a inscrição ou sair da
        conversa. Você deve configurar a URL deste webhook no painel de
        administração do Treble.
      requestBody:
        description: Informações do evento de cancelamento de inscrição
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OptOutEvent'
            example:
              country_code: '+57'
              cellphone: '3176477608'
              session_id: 85b398ef5bcb20c355f3710c4509349784c907673c9118fb7a89c7a8
              conversation_id: 54263
              question:
                type: closed
                text: >-
                  Oi! Obrigado por participar do nosso webinar hoje. Gostaríamos
                  de ter um feedback sobre nossa sessão e ficaríamos muito
                  gratos se você pudesse nos ajudar com isso. 
                answers:
                  - text: Claro
                  - text: Não, obrigado
                  - text: PADRÃO
              sent_at: '2021-10-22 00:15:39.044704'
              sent_text: >-
                Oi! Obrigado por participar do nosso webinar hoje. Gostaríamos
                de ter um feedback sobre nossa sessão e ficaríamos muito gratos
                se você pudesse nos ajudar com isso. 

                1) Claro

                2) Não, obrigado

                3) PADRÃO
              user_session_keys: []
              classified_answer:
                text: Não, obrigado
              reason: OPTOUT
      responses:
        '200':
          description: Resposta para atualizar ou adicionar informações à sessão
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Objeto JSON com as novas informações que serão substituídas ou
                  adicionadas à sessão para uso futuro. O serviço deve responder
                  em menos de 10 segundos.
      servers:
        - url: https://seudominio.com
          description: Seu servidor onde você deve 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 é disparado quando um usuário decide cancelar a inscrição ou
        sair da conversa
      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 ao usuário
        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: Resposta classificada baseada na resposta do usuário
        reason:
          type: string
          description: >-
            Razão da saída do usuário, neste caso 'OPTOUT' para indicar que o
            usuário decidiu cancelar a inscrição
          enum:
            - OPTOUT
    ClosedQuestion:
      type: object
      required:
        - type
        - text
        - answers
      properties:
        type:
          type: string
          description: Tipo de pergunta
          example: closed
        text:
          type: string
          description: Texto da pergunta
        answers:
          type: array
          description: Lista de respostas possíveis para a pergunta fechada
          items:
            type: object
            properties:
              text:
                type: string
                description: Texto da resposta
    UserSessionKey:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: >-
            Nome da variável. Valores especiais incluem 'deployment_squad' para
            selecionar qual número de telefone realizará a implantação em
            empresas multicanal.
        value:
          type: string
          description: >-
            Valor da variável. Para 'deployment_squad', o valor deve ser
            'DS_[CELLPHONE]'.
    Answer:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: Texto da resposta

````