Skip to content

Enlazar con n8n (VPS Privada) con el Nodo de Acción > External Request

La plataforma de Botinfy permite integrarse con n8n instalado en tu propio servidor (VPS privada) utilizando el nodo de Acción > External Request. Esta integración te permite ejecutar workflows complejos de n8n desde tus flujos de Botinfy.

Requisitos Previos

Antes de comenzar, asegúrate de tener:

  • Una instancia de n8n ejecutándose en tu VPS privada
  • Acceso a la URL de tu servidor n8n (ej: https://n8n.tudominio.com)
  • Un webhook o workflow de n8n configurado y activo
  • Las credenciales necesarias para autenticarte con n8n (si aplica)

Configurar el Webhook en n8n

Primero, configura un webhook en n8n que recibirá las solicitudes desde Botinfy:

webhook

  1. Crea un Nuevo Workflow en n8n: Inicia sesión en tu instancia de n8n.

  2. Añade un Nodo Webhook:

    • Arrastra el nodo Webhook al canvas.
    • Configura el método HTTP como POST.
    • Copia la URL del webhook que n8n genera (la de producción, no la de test) (ej: https://n8n.tudominio.com/webhook/abc123).

webhook

  1. Configura el Procesamiento: Añade los nodos necesarios para procesar la solicitud y generar una respuesta.

  2. Activa el Workflow: Asegúrate de que el workflow esté activo en n8n.

activo

Configurar External Request en Botinfy

Ahora configura el nodo External Request en tu flujo de Botinfy:

Paso 1: Crear o Editar un Flujo

  1. Accede a Flows en el menú lateral.
  2. Crea un nuevo flujo o edita uno existente. Usualmente se utiliza el flujo principal, en donde llegan todos los mensajes (Main Flow)

mainflow

  1. Abre el constructor de flujos.

editar

Paso 2: Añadir el Nodo de Acción

  1. Arrastra un bloque de Action (Acción) a tu flujo.

accion

  1. Haz clic en el bloque para editarlo.

Paso 3: Configurar External Request

  1. En el panel de configuración del bloque de acción, busca la sección Acciones Avanzadas.

avanced

  1. Selecciona External Request (Solicitud Externa).

externalrequest

  1. Configura los Parámetros:
    • URL: Ingresa la URL completa del webhook de n8n (ej: https://n8n.tudominio.com/webhook/abc123).

    • Método HTTP: Selecciona POST (o el método que hayas configurado en n8n).

    • Body: Configura el cuerpo de la solicitud con los datos que deseas enviar a n8n.

      Usar Variables: En lugar de escribir las variables manualmente, puedes arrastrarlas desde el panel de variables que aparece en el lado derecho del editor. Simplemente busca la variable que necesitas (como "ID del contacto", "Texto del mensaje", etc.) y arrástrala al campo donde deseas usarla. La plataforma insertará automáticamente la variable en el formato correcto.

      Ejemplo de estructura del body:

      javascript
       {
         "username": "[user_name]",
         "user_ns": "[user_ns]",
         "id": "[user_id]",
         "phone": "[phone]",
         "last_message": [last_message :: $],
         "timestamp": "[last_interaction]",
       }

Paso 4: Manejar la Respuesta

  1. Guardar la Respuesta: La respuesta de n8n se almacenará en una variable que puedes usar en nodos posteriores.
  2. Procesar la Respuesta: Puedes usar bloques de condición para procesar diferentes tipos de respuestas.
  3. Manejar Errores: Configura bloques de manejo de errores para casos donde n8n no responda o devuelva un error.

Ejemplo de Configuración Completa

En n8n:

javascript
{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "httpMethod": "POST",
        "path": "botinfy-integration"
      }
    },
    {
      "name": "Process Data",
      "type": "n8n-nodes-base.function",
      "parameters": {
        "functionCode": "// Procesar datos recibidos de Botinfy\nreturn { data: $input.item.json }"
      }
    },
    {
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseBody": "={{ { success: true, result: $json } }}"
        }
      }
    }
  ]
}

En Botinfy (External Request):

  • URL: https://nudominio.com/webhook/botinfy-integration

  • Método: POST

  • Headers:

    Content-Type: application/json
  • Body:

    Usar Variables: Arrastra las variables desde el panel de variables del editor. Las variables disponibles incluyen información del contacto (ID, nombre, teléfono), información del mensaje (texto, tipo), información del flujo, y cualquier campo personalizado que hayas creado.

    Ejemplo de estructura:

    javascript
    {
      "username": "[user_name]",
      "user_ns": "[user_ns]",
      "id": "[user_id]",
      "phone": "[phone]",
      "last_message": [last_message :: $],
      "timestamp": "[last_interaction]",
    }

external

Variables Disponibles

Puedes usar las siguientes variables arrastrándolas desde el panel de variables:

  • Información del Contacto: ID del contacto, nombre, teléfono, email
  • Información del Mensaje: Texto del mensaje, tipo de mensaje
  • Información del Flujo: Nombre del flujo actual
  • Campos Personalizados: Cualquier campo personalizado que hayas definido

Nota: Para usar una variable, simplemente arrástrala desde el panel de variables que aparece en el lado derecho del editor. No necesitas escribir la sintaxis manualmente.

Mejores Prácticas

  • Seguridad: Usa HTTPS para todas las comunicaciones con n8n.
  • Autenticación: Implementa autenticación adecuada (tokens, API keys) para proteger tu webhook.
  • Timeout: Configura tiempos de espera apropiados para evitar que el flujo se quede colgado.
  • Manejo de Errores: Siempre incluye manejo de errores para casos donde n8n no esté disponible.
  • Logging: Registra las solicitudes y respuestas para facilitar el debugging.
  • Validación: Valida los datos antes de enviarlos a n8n.

Solución de Problemas

El webhook no responde

  • Verifica que el workflow de n8n esté activo.
  • Confirma que la URL del webhook sea correcta.
  • Revisa los logs de n8n para ver si la solicitud está llegando.

Error de autenticación

  • Verifica que los headers de autenticación sean correctos.
  • Confirma que el token o API key sea válido.

Timeout en la solicitud

  • Revisa que n8n esté respondiendo dentro del tiempo esperado.
  • Considera optimizar el workflow de n8n si es muy lento.
  • Aumenta el timeout en la configuración de External Request si es necesario.

Documentación de Botinfy