Función experimental. La integración con n8n aún no está completamente probada. El administrador la activa de forma consciente en Ajustes → Avanzado → Otros; mientras está desactivada, la pestaña n8n y este capítulo del manual están ocultos, y los endpoints /api/n8n/* están inactivos. La integración con n8n pertenece al plan Pro. En el plan Standard no existe la pestaña «Otros» con su interruptor, por lo que la integración no se puede activar.

¿Qué es n8n?

n8n es una plataforma de automatización de procesos. La integración con Task Manager funciona en ambos sentidos:

  1. Webhooks salientes (Task Manager → n8n) - la aplicación envía automáticamente notificaciones a tu workflow de n8n cuando ocurre algo (se crea una tarea, cambia el estado, se añade un mensaje, se acerca una fecha límite, etc.).
  2. API entrante (n8n → Task Manager) - n8n puede llamar a la aplicación para crear tareas, añadir mensajes o consultar datos.

Activación de la integración

Haz clic en el icono de la rueda dentada (⚙) → pestaña n8n. La pestaña se divide en dos partes: «Automatizaciones personales» - configuración que te afecta solo a ti, y «Automatizaciones globales» - ajustes del sistema compartidos por todos los usuarios, visibles solo para el administrador. Para que se envíen los eventos, el administrador debe activar el interruptor «Activar integración con n8n» en la parte global.

A. Webhooks salientes - notificaciones de la aplicación a n8n

Configuración

  1. En la pestaña n8n, haz clic en «Nuevo webhook».
  2. Indica el nombre del webhook y la URL del webhook copiada de n8n (nodo Webhook como disparador, método POST).
  3. Marca los eventos que deben enviarse.
  4. (Opcional) configura un secreto - la aplicación firmará con él las peticiones (HMAC) para que n8n pueda verificar su autenticidad.
  5. Guarda. Puedes enviar un ping de prueba para comprobar la conexión.

Eventos disponibles (selección)

  • Tareas: task.created, task.updated, task.status_changed, task.completed, task.deleted, task.deadline_approaching, task.overdue
  • Chats / mensajes: chat.message_sent, chat.mention, chat.file_uploaded
  • Usuarios / espacio de trabajo: user.created, user.login, user.logout, workspace.created
  • Del sistema: system.daily_summary, system.weekly_summary

Cada solicitud a n8n incluye el nombre del evento y los datos (data) con el contexto (p. ej. id de la tarea, espacio de trabajo, autor).

B. API entrante - n8n controla la aplicación

Configuración

  1. En la pestaña n8n, haz clic en «Nueva clave API».
  2. Copia el token generado (se muestra solo una vez).
  3. En n8n usa el nodo HTTP Request con la cabecera de autorización:
    Authorization: Bearer TWÓJ_TOKEN
    Las acciones se ejecutan en el contexto del usuario que creó la clave (sus permisos y su acceso a los espacios de trabajo).

Endpoints disponibles

  • GET /api/n8n/ping.php - prueba del token y comprobación de estado (devuelve información sobre la clave y el usuario).
  • GET /api/n8n/workspaces.php - lista de espacios de trabajo disponibles.
  • GET /api/n8n/users.php - lista de usuarios (solo las claves creadas por el administrador global).
  • GET /api/n8n/tasks.php?workspace_id=&status=&limit= - lista de tareas.
  • POST /api/n8n/tasks.php - creación de una tarea. Cuerpo JSON:
    {
    "workspace_id": 1,
    "subject": "Nowe zadanie z n8n",
    "description": "Opcjonalny opis",
    "priority": "high",
    "deadline_date": "2025-12-31",
    "status": "none",
    "assignees": [2, 5]
    }
    La descripción se limpia del HTML peligroso igual que en la aplicación y tiene el mismo límite de tamaño.
  • PATCH /api/n8n/tasks.php - actualización de una tarea existente, entre otros el cambio de estado. Cuerpo JSON (task_id obligatorio, el resto de los campos son opcionales - indicas solo lo que quieras modificar):
    {
    "task_id": 42,
    "status": "in_progress",
    "priority": "high",
    "deadline_date": "2026-08-01",
    "subject": "Nowy temat",
    "description": "Nowy opis"
    }
    • status: none | in_progress | done | cancelled. El cambio de estado funciona exactamente igual que desde la aplicación: en el hilo de la tarea aparece una entrada «ha cambiado el estado a…», las personas asignadas reciben una notificación por correo electrónico y se envía a n8n el webhook task.status_changed (y también task.completed cuando el estado es done).
    • deadline_date: null borra el plazo. El cambio de plazo desplaza los recordatorios vinculados a él.
    • El resto de campos envían el webhook task.updated.
    • description se guarda igual que al editar desde la ventana de la tarea: el HTML peligroso se elimina, con el cifrado activado la descripción se guarda cifrada en la base de datos, y las marcas de la lista de tareas se mantienen en sus posiciones aunque en la nueva descripción los elementos hayan cambiado de orden. La tarea recibe la marca «(editado)» solo cuando el asunto o el contenido de la descripción realmente han cambiado.
    • Cuando la nueva descripción elimina una lista de tareas a la que alguien añadió elementos propios, no se guarda nada (tampoco el estado de la misma solicitud) y recibes un 409 con el código DOPISKI_BEZ_LISTY y el campo indeksy. Para eliminar igualmente la lista junto con esos elementos añadidos, envía el mismo cambio otra vez con el campo "usun_dopiski" igual a la lista del campo indeksy.
    • Primero se guardan el asunto, la fecha límite, la prioridad y la descripción, y solo después el estado - si se rechaza el guardado de la descripción, el estado modificado no queda guardado.
    • Establecer el mismo estado de nuevo no envía nada (seguro ante reintentos en n8n).
    • Si tu nodo HTTP no admite el método PATCH - envía el mismo cuerpo mediante POST: la presencia de task_id pone el endpoint en modo de actualización.
    • Códigos de error: 400 falta task_id, no hay campos para modificar o hay demasiados elementos en la lista de tareas (TOO_MANY), 413 descripción demasiado grande (PAYLOAD_TOO_LARGE, normalmente una imagen pegada), 422 valor no válido (estado/prioridad/formato de fecha), 404 la tarea no existe o está fuera del acceso de la clave, 403 sin permisos para cambiar el estado o editar, 409 la descripción elimina una lista con elementos añadidos por otra persona.
  • POST /api/n8n/messages.php - añade un mensaje a una tarea o a un chat. Cuerpo JSON:
    {
    "entity_type": "task",
    "entity_id": 42,
    "content": "Treść wiadomości"
    }

Ejemplos de escenarios de automatización

  • Formulario de Google → n8n → POST /api/n8n/tasks.php (nueva tarea en Task Manager)
  • Correo de Gmail con un asunto determinado → n8n → tarea con la descripción tomada del cuerpo del correo
  • Cambio de estado en Jira → n8n → mensaje/actualización de la tarea vinculada
  • Webhook saliente task.created → n8n → entrada en una hoja de Google / notificación en Slack
  • task.deadline_approaching → n8n → recordatorio por correo/SMS de un plazo próximo

Resolución de problemas

  • No llegan notificaciones a n8n - comprueba que la integración esté activada, que el webhook esté activo y que la URL sea correcta. Usa el «ping de prueba» y el diagnóstico en la pestaña de n8n: muestra si la dirección del webhook responde (se comprueba igual que en el envío real - sin redirecciones y con verificación del certificado, por lo que un n8n con certificado autofirmado aparecerá como inaccesible), cuántos eventos esperan en la cola de reintentos y cuándo se realizó con éxito el último envío.
  • El secreto del webhook se guarda cifrado en la base de datos. Tras cambiar la clave ENCRYPTION_KEY en config.php, los secretos guardados dejan de ser legibles - la aplicación empieza entonces a enviar eventos sin firma, así que genera un nuevo secreto en el webhook e introdúcelo en n8n.
  • Falta de autorización (401) en el API entrante - el token es incorrecto o ha sido eliminado. Crea una nueva clave API y actualiza el encabezado Authorization en n8n.
  • La tarea no se crea - asegúrate de que el workspace_id existe y de que el usuario de la clave tiene acceso a él y permiso para añadir tareas.