> ## 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 nodo de condición

> Este endpoint debe ser implementado en TU servidor (por ejemplo: https://tudominio.com/webhooks/on-condition). Treble llamará a este webhook cuando se evalúe un nodo condicional en la conversación. Debes configurar la URL de este webhook en el panel de administración de Treble.

También puedes configurar el webhook de respuesta para cada camino que salga de un nodo de condición.

<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 de nodo de condición" width="2326" height="1344" data-path="images/condition-api-1.png" />

Si lo haces, el cuerpo de la solicitud HTTP que se envía al endpoint configurado en Treble agregará el siguiente campo en el cuerpo de la solicitud:

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

La condición es un objeto con una propiedad `operator` para mostrar qué acción se utilizó en la condición y un `value` para que la acción de la condición sea evaluada:

* Igual: EQ
* Diferente: DIFF
* Mayor que: GT
* Menor que: LT
* Mayor o igual que: GTEQ
* Menor o igual que: LTEQ
* Contiene: CONT
* No contiene: NCONT
* Ruta por defecto: DEFAULT

La respuesta también puede tener nuevas variables para la sesión que se pueden actualizar o crear para su uso posterior en la sesión. Es decir puedes, añadirlas en la respuesta del webhook como parte de las `user_session_keys`.


## OpenAPI

````yaml open-api-files/treble-api-es.json POST /webhooks/on-condition
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-condition:
    post:
      tags:
        - Webhooks
      summary: Webhook - Cuando se evalúa un nodo condicional
      description: >-
        Este endpoint debe ser implementado en TU servidor (por ejemplo:
        https://tudominio.com/webhooks/on-condition). Treble llamará a este
        webhook cuando se evalúe un nodo condicional en 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 evaluación de condición
        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: 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:
    ConditionEvent:
      type: object
      required:
        - country_code
        - cellphone
        - session_id
        - conversation_id
        - variable
        - condition
        - user_session_keys
      description: >-
        Evento que se dispara cuando se evalúa un nodo condicional en 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
        variable:
          $ref: '#/components/schemas/Variable'
          description: Variable que se evalúa en la condición
        condition:
          $ref: '#/components/schemas/Condition'
          description: Condición que se evalúa
        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: Nombre de la variable que se evalúa en la condición
        value:
          type: string
          description: Valor actual de la variable
    Condition:
      type: object
      required:
        - operator
        - value
      properties:
        operator:
          type: string
          description: >-
            Operador utilizado para evaluar la condición (por ejemplo: 'EQ' para
            igual, 'GT' para mayor que, etc.)
          enum:
            - EQ
            - GT
            - LT
            - GTE
            - LTE
            - NEQ
        value:
          type: string
          description: Valor contra el que se compara la variable
    ExtendedUserSessionKey:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: Nombre de la variable
        value:
          type: string
          description: Valor de la variable
        type:
          type: string
          nullable: true
          description: >-
            Tipo de la variable. Puede ser null o un tipo específico como
            'location'.

````