> ## 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 do Nó de Condição

> Este endpoint deve ser implementado no SEU servidor (por exemplo: https://seudominio.com/webhooks/on-condition). O Treble chamará este webhook quando um nó condicional for avaliado na conversa. Você deve configurar a URL deste webhook no painel de administração do Treble.

Você também pode configurar o webhook de resposta para cada caminho que sai de um nó de condição.

<img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/condition-api-1.png?fit=max&auto=format&n=9CTpLCIjWruVB-9s&q=85&s=e7d70bee3b08a181f6d2f4d3245ca6d8" alt="Configurar webhook do nó de condição" width="2326" height="1344" data-path="images/condition-api-1.png" />

Se você fizer isso, o corpo da solicitação HTTP que é enviado ao endpoint configurado no Treble adicionará o seguinte campo ao corpo da solicitação:

```json theme={null}
{
    "condition": {
	    "operator": "EQ",
        "value": "18"
    }
}
```

A condição é um objeto com uma propriedade `operator` para mostrar qual ação foi usada na condição e um `value` para que a ação da condição seja avaliada:

* Igual: EQ
* Diferente: DIFF
* Maior que: GT
* Menor que: LT
* Maior ou igual que: GTEQ
* Menor ou igual que: LTEQ
* Contém: CONT
* Não contém: NCONT
* Caminho padrão: DEFAULT

A resposta também pode ter novas variáveis para a sessão que podem ser atualizadas ou criadas para uso posterior na sessão. Ou seja, você pode adicioná-las na resposta do webhook como parte das `user_session_keys`.


## OpenAPI

````yaml open-api-files/treble-api-pt.json POST /webhooks/on-condition
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-condition:
    post:
      tags:
        - Webhooks
      summary: Webhook - Quando um nó condicional é avaliado
      description: >-
        Este endpoint deve ser implementado no SEU servidor (por exemplo:
        https://seudominio.com/webhooks/on-condition). O Treble chamará este
        webhook quando um nó condicional for avaliado na conversa. Você deve
        configurar a URL deste webhook no painel de administração do Treble.
      requestBody:
        description: Informações do evento de avaliação de condição
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConditionEvent'
            example:
              country_code: '+57'
              cellphone: '3161234567'
              session_id: abcsderfwer3252432423-1324325235
              conversation_id: 1234
              variable:
                name: age
                value: '18'
              condition:
                operator: EQ
                value: '18'
              user_session_keys:
                - key: age
                  value: '18'
                  type: null
                - key: user_id
                  value: '12345'
                  type: null
      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:
    ConditionEvent:
      type: object
      required:
        - country_code
        - cellphone
        - session_id
        - conversation_id
        - variable
        - condition
        - user_session_keys
      description: Evento que é disparado quando um nó condicional é avaliado na 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
        variable:
          $ref: '#/components/schemas/Variable'
          description: Variável que é avaliada na condição
        condition:
          $ref: '#/components/schemas/Condition'
          description: Condição que é avaliada
        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'
    Variable:
      type: object
      required:
        - name
        - value
      properties:
        name:
          type: string
          description: Nome da variável que é avaliada na condição
        value:
          type: string
          description: Valor actual de la variable
    Condition:
      type: object
      required:
        - operator
        - value
      properties:
        operator:
          type: string
          description: >-
            Operador utilizado para avaliar a condição (por exemplo: 'EQ' para
            igual, 'GT' para maior que, etc.)
          enum:
            - EQ
            - GT
            - LT
            - GTE
            - LTE
            - NEQ
        value:
          type: string
          description: Valor contra o qual a variável é comparada
    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'.

````