Ayuda

Configurar WorkflowBuddy con n8n

Lo difícil nunca es la app por sí sola, sino la interfaz entre ella y tu instancia de n8n. Esta página aborda cuatro tareas y muestra siempre los dos lados: qué ocurre en n8n y qué ocurre en la app.

Conectar tu instancia de n8n

Bastan dos datos: la dirección de tu instancia de n8n y una clave API de n8n. Ambos se quedan en el dispositivo — la clave va al llavero de iOS, no a nuestros servidores.

En n8n
  1. Abre tu instancia de n8n en el navegador y ve a Ajustes → n8n API.
  2. Crea allí una clave API y cópiala. n8n solo la muestra una vez.
  3. Anota la URL base de tu instancia, p. ej. https://mi-instancia.app.n8n.cloud — sin ninguna ruta detrás.
En la app
  1. En el primer arranque, el onboarding te trae directamente aquí; después, entra en Ajustes → Instancias → Añadir instancia.
  2. Introduce la URL y la clave API y, si quieres, un nombre y un color.
  3. Toca Probar conexión. La app detecta por sí misma si se trata de n8n Cloud o de una instancia autoalojada y muestra qué funciones admite.
Puedes añadir varias instancias — sin límite. Producción, pruebas, la instancia de un cliente: añade tantas como necesites y cambia entre ellas en la app.

Si algo no funciona

No encuentro «n8n API» en los ajustes

Entonces la API pública no está activada en tu instancia. Algunos planes de hosting y algunas configuraciones autoalojadas la traen desactivada. En una instancia autoalojada se activa desde los ajustes de n8n o mediante variables de entorno; en un plan alojado depende de la tarifa.

Sin API pública ninguna app puede hablar con tu instancia — tampoco la nuestra. No es una limitación de WorkflowBuddy, es la propia interfaz.

«Autenticación fallida» al probar la conexión

Dos causas habituales: la clave API se cortó al copiarla, o la URL lleva una ruta de más. Introduce solo la dirección base — no la URL del editor y sin /api/v1 al final.

¿Dónde está mi clave API?

En el llavero de iOS de tu dispositivo. Si quieres, Face ID o Touch ID protege el acceso a la app y la visualización de la clave. Nosotros no guardamos tu clave API de n8n.

Recibir avisos cuando algo falla

Defines una regla de monitorización por flujo: qué se avisa, cada cuánto se comprueba y cuándo hay que callar. Del resto se encarga la monitorización en nuestro servidor, también con la app cerrada.

En n8n

Nada. Y es a propósito: WorkflowBuddy consulta a la API de n8n por las ejecuciones de tus flujos. No se inyecta ningún nodo de error, no se modifica ningún flujo y no se instala nada en tu instancia.

Eso significa también que un flujo que crees mañana se puede monitorizar de inmediato — no hay que prepararlo.

En la app
  1. Abre el flujo en la lista y elige Configurar Monitoring.
  2. Elige los tipos de incidente: ejecuciones fallidas, ejecuciones canceladas, ejecuciones bloqueadas (con tu propio umbral).
  3. Ajusta el intervalo y las horas de silencio — p. ej. nada entre las 22:00 y las 07:00.
  4. Usa Enviar notificación de prueba para comprobar que algo llega de verdad a tu pantalla de bloqueo.

Los avisos de error para tu flujo más importante son la entrada gratuita Free — un flujo, sin límite de tiempo. La monitorización de todos los flujos y los tipos de incidente cancelado y bloqueado son de Premium Premium, igual que las horas de silencio y el intervalo de comprobación más fino.

El motivo más frecuente de que no llegue nada: iOS. Sin permiso de notificaciones, el sistema descarta cada mensaje y la app no puede evitarlo. Compruébalo en Ajustes de iOS → WorkflowBuddy → Notificaciones. La app ya lo advierte por su cuenta, pero este camino es el fiable.

Si algo no funciona

Un flujo falló pero no llegó ninguna notificación

Repasa tres puntos en orden: ¿están permitidas las notificaciones de WorkflowBuddy en los ajustes de iOS? ¿Hay una regla de monitorización activa para ese flujo concreto? ¿Y ocurrió durante tus horas de silencio?

Si sigue el silencio, envíate una notificación de prueba desde la regla. Si esa llega, la vía de entrega está bien.

¿Con qué rapidez me entero de un fallo?

Eliges entre 5, 15, 30 y 60 minutos. La comprobación ocurre en nuestro servidor, no en el teléfono, así que la notificación llega también con la app cerrada. El aviso «mínimo iOS: 15 min» de la app solo afecta a la actualización de la vista en segundo plano, no a las alertas.

En la versión gratuita la monitorización corre con el valor predeterminado de 15 minutos; elegir el intervalo es de Premium. Si lo necesitas al segundo, usa la API Push: entonces avisa el propio flujo, justo cuando ocurre.

¿Qué es una ejecución «bloqueada»?

Una que empezó y sigue corriendo pasado el tiempo que tú has fijado. Normalmente espera a un servicio externo que ha dejado de responder. Las aprobaciones abiertas no cuentan expresamente: esas pueden esperar.

Enviar tus propios mensajes desde n8n

Para cuando es tu flujo quien mejor sabe que hay algo que contar: una clave desde la app y un nodo HTTP Request corriente en n8n — sin nodo Code y sin firmas.

En la app
  1. Abre Ajustes → API Push.
  2. Generar clave. Empieza por wb_ y se guarda en el llavero de este dispositivo.
  3. Con Compartir la envías directamente al equipo donde corre tu n8n — así no hay que teclearla.
  4. Toca Enviar push de prueba: si llega, todo el camino funciona.
En n8n

Añade un nodo HTTP Request, método POST, y pasa la clave como cabecera. Como cuerpo basta con JSON sencillo:

POST https://companion.amelus.de/api/notify

Authorization: Bearer wb_...
Content-Type: application/json

{
  "title":    "Error en la facturación",
  "message":  "La ejecución 4711 se detuvo en el paso 3",
  "severity": "warning"
}

severity es opcional y admite info, warning y critical; sin indicarlo se aplica info.

Se incluyen 50 mensajes al día de forma gratuita Free; con Premium el límite sube a 500 al día Premium. Ambos se cuentan por dispositivo.

Una clave pertenece a un único dispositivo. Es la dirección, no solo la contraseña — por eso la petición no lleva destinatario. Si usas WorkflowBuddy en un iPhone y en un iPad y quieres avisar a los dos, necesitas dos claves y dos peticiones.

Si algo no funciona

n8n recibe «401 Unauthorized»

La clave es desconocida o fue revocada. Al rotarla, la anterior queda invalidada de inmediato, así que también hay que sustituir la credencial en n8n. Comprueba además que la cabecera lleve realmente Bearer delante de la clave.

n8n recibe «429 Too Many Requests»

Se agotó el cupo diario o el de por minuto. La respuesta incluye una cabecera Retry-After que indica a partir de cuándo vuelve a funcionar. La causa habitual es un flujo en bucle.

n8n informa de éxito pero al teléfono no llega nada

Entonces nuestro servidor aceptó el mensaje y lo reenvió, y fue iOS quien lo descartó. Casi siempre las notificaciones de WorkflowBuddy están desactivadas. La app ya te lo dice en la pantalla de la API Push, en lugar de informar de un éxito que no llega.

¿Puedo usar la clave en varios flujos?

Sí, en todos los que quieras. Créala una vez en n8n como credencial Header Auth: así todos los flujos la usan y cambiarla es una modificación en un solo sitio.

Pedir aprobaciones desde n8n

El flujo se detiene y te pregunta; tu respuesta lo continúa o lo detiene. En una frase: una notificación en el teléfono, un toque y sigue adelante — sin abrir n8n.

A partir de la versión 2.3 de la app. Las versiones anteriores muestran la solicitud como una notificación normal sin botones y no pueden responder.
En n8n

Dos nodos estándar, sin código.

  1. HTTP Request — POST a https://companion.amelus.de/api/approval, cabecera Authorization: Bearer wb_... (la misma clave que para la API Push). El cuerpo se define como Expression:
{{ JSON.stringify({
  title: 'Factura 4711',
  message: '¿Autorizar el pago de 2.400 €?',
  resumeUrl: $execution.resumeUrl,
  expiresAt: new Date(Date.now() + 60*60*1000).toISOString()
}) }}
  1. Wait — pon Resume en «On webhook call» y activa Limit Wait Time. Sin ese plazo, la ejecución espera indefinidamente.
  2. Detrás, un nodo IF sobre {{ $json.query.decision }} que distinga los valores approve y reject.
En la app
  1. Llega la notificación. Al tocarla se abre la pantalla de aprobación con el título, el texto, la instancia y —si se ha indicado expiresAt— el tiempo restante.
  2. Aprobar o Rechazar. Ambas cosas funcionan también desde la notificación desplegada.
  3. Las aprobaciones pendientes aparecen además como tarjeta en el panel. Descartar la notificación no pierde la solicitud.

No hay que configurar ninguna clave aparte: las aprobaciones usan la misma clave de la API Push, pero tienen su propio cupo.

Flujo de ejemplo listo para usar Disparador manual, HTTP Request, Wait y lectura de la decisión — cárgalo en n8n con Workflow → Import from File y sustituye el marcador por tu propia clave.
Descargar el flujo

Tres trampas

Caímos nosotros mismos en todas; cada una cuesta media tarde:

1. Pasa $execution.resumeUrl tal cual. No le añadas nada, y menos ?decision=approve. Desde n8n 2.33 la URL de reanudación ya lleva una firma; un segundo ? la destruye, n8n responde 401 y en el registro de la instancia no se ve nada raro. El parámetro de la decisión lo pone el endpoint.
2. El campo del cuerpo debe estar en Expression, no en Fixed. Si no, el texto $execution.resumeUrl acaba literalmente en la petición y la aprobación no tiene adónde volver.
3. Cuidado con los flujos lanzados a mano. Si vuelves a iniciar un flujo en el editor mientras la ejecución anterior sigue esperando en el nodo Wait, n8n cancela la anterior. La notificación del teléfono apunta entonces al vacío. Al probar: decide primero y reinicia después.

5 aprobaciones al día son gratuitas Free — suficientes para probarlo en un flujo real — y con Premium suben a 200 al día Premium. Este cupo va aparte del de los mensajes normales: un flujo hablador no puede quitarte una aprobación.

Adónde va tu decisión

Directamente del dispositivo a tu propia instancia de n8n. Nuestro servidor solo reenvía la notificación y nunca guarda la dirección de reanudación. La app, por su parte, únicamente llama a direcciones cuyo host pertenece a una instancia que tú has configurado — una dirección colada no lleva a ninguna parte.

Si algo no funciona

He descartado la notificación

No pasa nada. La solicitud se guarda al entregarse, no al tocarla. Permanece como tarjeta en el panel mientras siga abierta.

«El flujo ya no está esperando»

La ejecución continuó mientras tanto, expiró o fue cancelada. La causa más frecuente al probar: el flujo se volvió a iniciar en el editor (véase la trampa 3).

«La dirección no pertenece a ninguna de tus instancias»

La app rechaza a propósito cualquier llamada a un host ajeno. Ocurre cuando el flujo corre en una instancia que (todavía) no está configurada en la app — o cuando allí figura con otra dirección, por ejemplo interna en lugar de pública.

Falta la cuenta atrás

Entonces el flujo no envió expiresAt. n8n no comunica por sí mismo el plazo del nodo Wait, así que lo tiene que enviar el flujo — si falta, la app prefiere mostrar la solicitud sin cuenta atrás antes que inventarse un plazo.

¿No lo has encontrado?

Escríbenos a info@amelus.de o usa el formulario de contacto. Lo que aquí falte suele tener su sitio en esta página — tus avisos son bienvenidos.