> ## 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 Resposta de Mensagem

> Este endpoint deve ser implementado no SEU servidor (por exemplo: https://seudominio.com/webhooks/on-response). O Treble chamará este webhook quando um usuário responder a uma pergunta na 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-response
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-response:
    post:
      tags:
        - Webhooks
      summary: Webhook - Quando um usuário responde a uma pergunta
      description: >-
        Este endpoint deve ser implementado no SEU servidor (por exemplo:
        https://seudominio.com/webhooks/on-response). O Treble chamará este
        webhook quando um usuário responder a uma pergunta na conversa. Você
        deve configurar a URL deste webhook no painel de administração do
        Treble.
      requestBody:
        description: Informações do evento de resposta
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponseEvent'
            example:
              country_code: '+57'
              cellphone: '3161234567'
              session_id: '1234'
              conversation_id: '5678'
              question:
                type: closed
                text: texto-da-pergunta-da-conversa
                answers:
                  - text: texto-da-resposta
              sent_at: '2019-01-01 00:00:00'
              responded_at: '2019-01-01 00:00:00'
              sent_text: texto-enviado-ao-usuário
              actual_response: Sim, preciso
              classified_answer:
                text: texto-da-resposta
              user_session_keys:
                - key: name
                  value: João
                  type: null
                - key: user_id
                  value: '12345'
                  type: null
                - key: loc
                  value: >-
                    {"latitude": 4.5935443, "longitude": -72.0345404, "address":
                    "Carrera 7 #100-06"}
                  type: location
      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:
    ResponseEvent:
      type: object
      required:
        - country_code
        - cellphone
        - session_id
        - conversation_id
        - question
        - sent_at
        - responded_at
        - sent_text
        - actual_response
        - classified_answer
        - user_session_keys
      description: >-
        Evento que é disparado quando um usuário responde a uma pergunta na
        conversa
      properties:
        country_code:
          type: string
          description: Código do país do usuário
        cellphone:
          type: string
          description: Número de telefone do usuário sem o código do país
        session_id:
          type: string
          description: ID da sessão do usuário
        conversation_id:
          type: string
          description: ID da conversa
        question:
          $ref: '#/components/schemas/ClosedQuestion'
        sent_at:
          type: string
          format: date-time
          description: Data e hora em que a pergunta foi enviada
        responded_at:
          type: string
          format: date-time
          description: Data e hora em que o usuário respondeu à pergunta
        sent_text:
          type: string
          description: Texto enviado ao usuário
        actual_response:
          type: string
          description: Resposta literal fornecida pelo usuário
        classified_answer:
          $ref: '#/components/schemas/Answer'
          description: Resposta classificada baseada na resposta do 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/ExtendedUserSessionKey'
    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
    Answer:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: Texto da resposta
    ExtendedUserSessionKey:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: Nome da variável
        value:
          type: string
          description: Valor da variável
        type:
          type: string
          nullable: true
          description: >-
            Tipo da variável. Pode ser null ou um tipo específico como
            'location'.

````