Fonctionnalité expérimentale. L’intégration n8n n’est pas encore entièrement testée. L’administrateur l’active sciemment dans Paramètres → Avancé → Autres ; tant qu’elle est désactivée, l’onglet n8n et ce chapitre du guide restent masqués, et les points de terminaison /api/n8n/* sont inactifs. L’intégration n8n fait partie du plan Pro. Dans le plan Standard, la carte « Autres » avec son interrupteur n’existe pas, il n’est donc pas possible d’activer l’intégration.

Qu'est-ce que n8n ?

n8n est une plateforme d'automatisation de processus. L'intégration avec Task Manager fonctionne dans les deux sens :

  1. Webhooks sortants (Task Manager → n8n) - l’application envoie elle-même des notifications à votre workflow n8n lorsque quelque chose se produit (création d’une tâche, changement de statut, ajout d’un message, échéance qui approche, etc.).
  2. API entrante (n8n → Task Manager) - n8n peut appeler l’application pour créer des tâches, ajouter des messages ou récupérer des données.

Activation de l'intégration

Cliquez sur l’icône de la roue dentée (⚙) → onglet n8n. L’onglet se divise en deux parties : « Automatisations personnelles » - configuration vous concernant exclusivement, et « Automatisations globales » - réglages système communs à tous les utilisateurs, visibles uniquement par l’administrateur. Pour que les événements soient envoyés, l’administrateur doit activer l’interrupteur « Activer l’intégration n8n » dans la partie globale.

A. Webhooks sortants - notifications de l’application vers n8n

Configuration

  1. Dans l’onglet n8n, cliquez sur « Nouveau webhook ».
  2. Indiquez le nom du webhook ainsi que l'URL du webhook copiée depuis n8n (nœud Webhook comme déclencheur, méthode POST).
  3. Cochez les événements à envoyer.
  4. (Facultatif) définissez un secret - l’application signera les requêtes avec celui-ci (HMAC), afin que n8n puisse vérifier leur authenticité.
  5. Enregistrez. Vous pouvez envoyer un ping de test pour vérifier la connexion.

Événements disponibles (sélection)

  • Tâches : task.created, task.updated, task.status_changed, task.completed, task.deleted, task.deadline_approaching, task.overdue
  • Discussions / messages : chat.message_sent, chat.mention, chat.file_uploaded
  • Utilisateurs / espace de travail : user.created, user.login, user.logout, workspace.created
  • Système : system.daily_summary, system.weekly_summary

Chaque requête vers n8n contient le nom de l'événement ainsi que des données (data) avec le contexte (par ex. id de la tâche, espace de travail, auteur).

B. API entrante - n8n pilote l’application

Configuration

  1. Dans l’onglet n8n, cliquez sur « Nouvelle clé API ».
  2. Copiez le jeton généré (affiché une seule fois).
  3. Dans n8n, utilisez le node HTTP Request avec l'en-tête d'autorisation :
    Authorization: Bearer TWÓJ_TOKEN
    Les actions sont exécutées dans le contexte de l'utilisateur qui a créé la clé (ses droits et son accès aux espaces de travail).

Points d'accès disponibles

  • GET /api/n8n/ping.php - test du jeton et vérification de l’état (renvoie des informations sur la clé et l’utilisateur).
  • GET /api/n8n/workspaces.php - liste des espaces de travail disponibles.
  • GET /api/n8n/users.php - liste des utilisateurs (uniquement les clés créées par l’administrateur global).
  • GET /api/n8n/tasks.php?workspace_id=&status=&limit= - liste des tâches.
  • POST /api/n8n/tasks.php - création d’une tâche. Corps 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 description est nettoyée du code HTML dangereux de la même façon que dans l'application et est soumise à la même limite de taille.
  • PATCH /api/n8n/tasks.php - mise à jour d'une tâche existante, entre autres un changement de statut. Corps JSON (task_id requis, le reste des champs est facultatif - vous ne renseignez que ce que vous souhaitez modifier) :
    {
    "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. Le changement de statut fonctionne exactement comme dans l’application : une entrée « a modifié le statut en… » apparaît dans le fil de discussion de la tâche, les personnes assignées reçoivent une notification par e-mail et un webhook task.status_changed est envoyé à n8n (ainsi que task.completed pour done).
    • deadline_date: null efface l'échéance. Changer l'échéance déplace les rappels qui y sont attachés.
    • Les autres champs déclenchent le webhook task.updated.
    • description est enregistrée de la même manière que lors d'une modification depuis la fenêtre de la tâche : le HTML dangereux est supprimé, lorsque le chiffrement est activé, la description est stockée chiffrée dans la base, et les cases cochées dans la liste de tâches restent à leur position, même si le nouvel ordre des éléments a changé dans la nouvelle description. La tâche reçoit la mention « (modifiée) » uniquement si le sujet ou le contenu de la description ont réellement changé.
    • Si la nouvelle description supprime une liste de tâches à laquelle quelqu'un a ajouté ses propres éléments, rien n'est enregistré (y compris le statut de la même requête) et vous recevez une erreur 409 avec le code DOPISKI_BEZ_LISTY et un champ indeksy. Pour quand même supprimer la liste avec les ajouts, renvoyez la même modification avec le champ "usun_dopiski" égal à la liste du champ indeksy.
    • Le sujet, l'échéance, la priorité et la description sont enregistrés en premier, puis seulement le statut - un refus d'enregistrement de la description ne laisse pas le statut modifié.
    • Redéfinir le même statut n'envoie rien (sans risque en cas de nouvelles tentatives dans n8n).
    • Si votre nœud HTTP ne prend pas en charge la méthode PATCH - envoyez le même corps via POST : la présence de task_id fait basculer l’endpoint en mode mise à jour.
    • Codes d'erreur : 400 task_id manquant, aucun champ à modifier ou trop d'éléments dans la liste de tâches (TOO_MANY), 413 description trop volumineuse (PAYLOAD_TOO_LARGE, généralement une image collée), 422 valeur invalide (statut/priorité/format de date), 404 la tâche n'existe pas ou est en dehors de l'accès de la clé, 403 droits insuffisants pour modifier le statut/éditer, 409 la description supprime une liste contenant des ajouts d'autres utilisateurs.
  • POST /api/n8n/messages.php - ajout d’un message à une tâche ou à une discussion. Corps JSON :
    {
    "entity_type": "task",
    "entity_id": 42,
    "content": "Treść wiadomości"
    }

Exemples de scénarios d'automatisation

  • Formulaire Google → n8n → POST /api/n8n/tasks.php (nouvelle tâche dans Task Manager)
  • E-mail Gmail avec un objet donné → n8n → tâche avec une description tirée du contenu de l'e-mail
  • Changement de statut dans Jira → n8n → message/mise à jour de la tâche liée
  • Webhook sortant task.created → n8n → entrée dans une feuille Google / notification sur Slack
  • task.deadline_approaching → n8n → rappel e-mail/SMS d'une échéance qui approche

Résolution des problèmes

  • Pas de notifications dans n8n - vérifiez que l'intégration est activée, que le webhook est actif et que l'URL est correcte. Utilisez le « ping de test » et le diagnostic dans l'onglet n8n : il indique si l'adresse du webhook répond (vérification effectuée de la même manière qu'à l'envoi - sans redirections et avec vérification du certificat, donc une instance n8n avec un certificat auto-signé apparaîtra comme inaccessible), combien d'événements attendent dans la file de réessai et quand le dernier envoi a réussi.
  • Le secret du webhook est stocké chiffré dans la base. Après avoir changé la clé ENCRYPTION_KEY dans config.php, les secrets enregistrés deviennent illisibles - l'application envoie alors les événements sans signature, générez donc un nouveau secret pour le webhook et saisissez-le dans n8n.
  • Absence d’autorisation (401) dans l’API entrante - le jeton est invalide ou a été supprimé. Créez une nouvelle clé API et mettez à jour l’en-tête Authorization dans n8n.
  • La tâche n’est pas créée - assurez-vous que workspace_id existe, que l’utilisateur de la clé y a accès et qu’il dispose du droit d’ajouter des tâches.