Conexiones API

Conecta tus APIs externas a enuchat para que la IA y las reglas puedan obtener datos en tiempo real de tus sistemas.

Cómo funciona

Las conexiones API te permiten integrar enuchat con tus propios sistemas backend — motores de reservas, CRMs, gestión de pedidos, inventario y más. Cuando un visitante hace una pregunta, enuchat puede llamar a tu API para obtener datos reales e incluirlos en la respuesta.

El flujo

  1. Configura una conexión — la URL base de tu API y la autenticación
  2. Añade endpoints — llamadas API específicas con plantillas de ruta y mapeo de respuesta
  3. Crea una regla — una regla de IA o estática con una acción CALL_API
  4. El visitante hace una pregunta — la regla se activa, llama a tu API y mapea la respuesta a variables de sesión
  5. La IA responde con datos reales — las variables de sesión están disponibles para que la IA genere una respuesta precisa

Ejemplo: Disponibilidad de habitación de hotel

Visitante: "¿Está disponible la habitación 205 la próxima semana?"

La regla de IA coincide: "Cuando el visitante pregunta sobre disponibilidad de habitaciones"

Acción CALL_API: GET https://api.hotel.com/rooms/205/availability

Respuesta mapeada: room_available = true, price = "€120/noche"

La IA responde: "La habitación 205 está disponible la próxima semana a €120/noche. ¿Le gustaría reservarla?"

Configurar una conexión

Ve a Configuración → Conexiones API en tu panel de control.

1. Crear una conexión

Una conexión representa una API externa. Necesitas:

CampoDescripciónEjemplo
NombreUna etiqueta para esta conexiónHotel Booking API
URL baseLa URL raíz de la APIhttps://api.hotel.com/v1
Tipo de autenticaciónCómo autenticarseBearer Token, OAuth2, etc.

2. Tipos de autenticación

Ninguna

Para APIs públicas que no requieren autenticación.

API Key

Envía una clave estática como encabezado o parámetro de consulta.

CampoDescripción
ClaveEl valor de tu clave API
Nombre del encabezadoEncabezado a usar (por defecto: X-Api-Key)

La clave se envía como: X-Api-Key: your_key_here

Bearer Token

Envía un token estático en el encabezado Authorization.

Se envía como: Authorization: Bearer your_token_here

Basic Auth

Envía usuario y contraseña, codificados en base64.

Se envía como: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (Client Credentials)

Obtiene un token de acceso automáticamente y lo almacena en caché hasta que expire. Ideal para APIs modernas como Salesforce, Google o servidores OAuth personalizados.

CampoDescripción
URL del tokenEndpoint de token OAuth (ej. https://auth.example.com/oauth/token)
Client IDTu client ID de OAuth
Client SecretTu client secret de OAuth
ScopeScopes separados por espacios (ej. read write)

enuchat gestiona el ciclo de vida del token automáticamente — lo obtiene en la primera llamada, lo almacena en caché hasta que expire y lo renueva cuando es necesario.

Seguridad: Todas las credenciales se cifran en reposo usando libsodium. Nunca se exponen en las respuestas de la API — solo se muestran valores enmascarados en el panel de control.

Configurar endpoints

Cada conexión puede tener múltiples endpoints — llamadas API específicas que deseas realizar.

CampoDescripciónEjemplo
NombreEtiqueta para este endpointComprobar disponibilidad
MétodoMétodo HTTPGET, POST, PUT, DELETE
RutaRuta URL (se añade a la URL base). Usa {'{'}variable} para valores dinámicos/rooms/{'{'}roomId}/availability
Parámetros de consultaParámetros URL como pares clave-valor. Los valores admiten {'{'}variable}date={'{'}checkIn}
Plantilla del cuerpoCuerpo JSON para POST/PUT. Admite interpolación de {'{'}variable}{'{'}"guest": "{'{'}name}"}
Mapeo de respuestaMapea campos de la respuesta JSON a variables de sesión usando notación de puntosdata.available → room_available
DescripciónContexto para la IA (qué datos devuelve este endpoint)Devuelve disponibilidad de habitaciones y precios

Interpolación de variables

Usa {'{'}variableName} en rutas, parámetros de consulta y plantillas de cuerpo. Las variables provienen de:

  • Variables de sesión — establecidas por reglas anteriores (acción SET_VARIABLE)
  • Parámetros de acción — codificados directamente en la acción de regla CALL_API

Mapeo de respuesta

Mapea campos de la respuesta JSON a variables de sesión usando notación de puntos:

// API returns:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Mapping:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

Las variables mapeadas se almacenan como variables de sesión en la conversación y están disponibles para que la IA genere respuestas.

Uso con reglas

Las llamadas API se activan mediante la acción CALL_API en las reglas. Puedes combinarlas con otras acciones.

Receta: Consulta de estado de pedido

Conexión: API de gestión de pedidos — https://api.shop.com/v2 — Bearer Token

Endpoint: GET /orders/{'{'}orderId} → mapea data.statusorder_status, data.etadelivery_eta

Regla (tipo IA): "Cuando el visitante pregunta sobre el estado de su pedido o entrega"

Acciones:

  1. CALL_API → Endpoint de estado de pedido
  2. REPLY_AI → La IA usa order_status y delivery_eta para responder

Resultado: Visitante: "¿Dónde está mi pedido #4521?" — IA: "Su pedido #4521 está siendo enviado actualmente y debería llegar el jueves."

Receta: Precios en tiempo real

Conexión: API de precios — https://pricing.example.com — API Key

Endpoint: GET /products/{'{'}productId}/price → mapea pricecurrent_price, currencyprice_currency

Regla (estática): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

Acciones:

  1. CALL_API → Endpoint de precios
  2. REPLY_TEXT → "El precio actual es {'{'}current_price} {'{'}price_currency}."

Pruebas

Siempre prueba tus conexiones y endpoints antes de usarlos en reglas:

  • Probar conexión — verifica que la autenticación funciona (para OAuth2: obtiene un token)
  • Probar endpoint — realiza una llamada API real con variables de ejemplo y muestra la respuesta
  • Probar regla (simulación) — en la página de reglas, prueba si una regla coincidiría y qué acciones se ejecutarían

Consejo: Comienza probando la conexión, luego cada endpoint y finalmente la regla completa. De esta forma puedes aislar problemas en cada nivel.

Seguridad

  • Cifrado en reposo — todas las credenciales se cifran usando libsodium antes de almacenarse
  • Nunca expuestas — las respuestas de la API nunca incluyen credenciales descifradas, solo valores enmascarados
  • Protección SSRF — enuchat bloquea llamadas a localhost, IPs privadas y nombres de host internos
  • Tiempo de espera — las llamadas a APIs externas tienen un tiempo de espera de 5 segundos para evitar bloqueos
  • Caché de tokens OAuth2 — los tokens de acceso se almacenan en caché de forma segura y se renuevan automáticamente
  • Aislamiento de tenant — las conexiones están limitadas a tu tenant, inaccesibles para otros

¿Listo para conectar tus APIs?

Comienza a integrar tus sistemas con enuchat hoy.

Empieza gratis