Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 50

Envoyer des notifications d'erreur formatées (Slack/Email)

Recommended resources

Bonjour !

Dans la leçon précédente, nous avons franchi une étape cruciale en apprenant à parser les données brutes fournies par le nœud Error Trigger. Vous avez utilisé un nœud Set pour isoler et structurer les informations essentielles : le nom du workflow, le message d'erreur et l'URL de l'exécution. Nous disposons maintenant d'un objet JSON propre et prévisible.

L'objectif de cette leçon est de mettre à profit ces données structurées pour construire un système de notification proactif. Nous allons envoyer une alerte formatée et exploitable vers un canal Slack et/ou par email. À la fin de cette session, votre workflow de gestion d'erreurs sera capable de vous informer instantanément et avec précision de tout incident, vous permettant de réagir rapidement.

1. Notification en Temps Réel avec Slack

Slack est un excellent outil pour les notifications d'erreurs en temps réel, car il permet de créer des alertes immédiates dans des canaux dédiés.

Commençons par ajouter un nœud Slack à notre workflow [GLOBAL] Error Handler, juste après le nœud Set.

  1. Ouvrez votre workflow [GLOBAL] Error Handler.
  2. Ajoutez un nœud Slack et connectez-le à la sortie du nœud Set.
  3. Configurez le nœud Slack :
    • Credentials : Vous devrez connecter votre compte Slack si ce n'est pas déjà fait. Cela se fait une seule fois et sera réutilisable.
    • Channel : Choisissez le canal où les notifications doivent être envoyées (par exemple, #n8n-alerts).
    • Text : C'est ici que nous allons construire notre message dynamique.

La vidéo suivante montre comment configurer un message Slack en utilisant les données d'erreur. C'est exactement ce que nous allons faire, mais en utilisant les données de notre nœud Set pour plus de clarté.

One n8n Workflow for Unlimited Error Handling (Step-by-Step)

Cette vidéo, intitulée "One n8n Workflow for Unlimited Error Handling", démontre la configuration d'un nœud Slack pour envoyer une alerte d'erreur personnalisée.

Regardez la section de 05:05 à 06:56. L'auteur configure le champ "Text" du nœud Slack en utilisant l'éditeur d'expressions pour y insérer dynamiquement le nom du workflow, le message d'erreur et un lien vers l'exécution. Observez également comment il désactive l'option "Include link to workflow" pour un message plus propre.

Construire un Message d'Alerte Efficace

Dans le champ Text du nœud Slack, nous allons rédiger un message qui utilise les champs que nous avons préparés dans le nœud Set. Activez le mode "Expression" et insérez un message structuré comme celui-ci :

🚨 *Erreur de Workflow n8n* 🚨

*Workflow* : `{{ $json.workflowName }}`
*Nœud* : `{{ $json.nodeName }}`
*Message* : `{{ $json.errorMessage }}`

Pour investiguer, suivez ce lien :
{{ $json.executionUrl }}

Ce format utilise la syntaxe Markdown de Slack pour la mise en forme (gras, italique) et les expressions n8n pour injecter les données. Le résultat est une alerte lisible et directement exploitable.

Pour un rappel textuel de la syntaxe des expressions, vous pouvez consulter la ressource ci-dessous.

How to Easily Set Up an Error Workflow in n8n (Step-by-step)

Cet article, "How to Easily Set Up an Error Workflow in n8n", fournit un exemple écrit de la manière de construire un message dynamique, renforçant ce que nous venons de voir en vidéo.

Revoyez la section "Step 3: Configure Your Notification (Slack Example)" et plus particulièrement la sous-section "Crafting the Dynamic Message". Elle illustre l'utilisation des expressions pour insérer le nom et l'URL du workflow, confirmant l'approche que nous adoptons.


2. Notification par Email pour des Rapports Détaillés

En complément ou en alternative à Slack, l'email est un excellent moyen d'envoyer des notifications d'erreur, notamment pour des rapports qui doivent être archivés ou partagés.

Ajoutons un nœud Send Email à notre workflow. Vous pouvez le connecter en parallèle du nœud Slack.

  1. Ajoutez un nœud Send Email et connectez-le également à la sortie du nœud Set.
  2. Configurez le nœud :
    • Credential : Vous devrez configurer des identifiants SMTP (par exemple, en utilisant un mot de passe d'application Gmail ou un autre service de messagerie).
    • To : L'adresse email du destinataire.
    • Subject : Rendez le sujet dynamique pour identifier rapidement l'erreur. Par exemple : Erreur n8n : {{ $json.workflowName }}.
    • HTML : Activez cette option pour créer un corps d'email bien formaté.

Dans le champ HTML, vous pouvez utiliser des expressions, tout comme pour Slack, pour construire un rapport d'erreur clair.

<h3>🚨 Erreur dans un workflow n8n</h3>
<p>
    Le workflow <strong>{{ $json.workflowName }}</strong> a rencontré une erreur.
</p>
<p>
    <strong>Message d'erreur :</strong>
    <br>
    <code>{{ $json.errorMessage }}</code>
</p>
<p>
    <a href="{{ $json.executionUrl }}">Cliquez ici pour voir l'exécution qui a échoué.</a>
</p>

Voici à quoi pourrait ressembler le résultat final dans votre boîte de réception :

n8n Workflow Error Notification Email
Cet email, généré automatiquement par n8n, contient toutes les informations nécessaires au débogage : le nom du workflow, le message d'erreur détaillé, et un lien direct vers l'exécution problématique.

La vidéo ci-dessous montre comment intégrer une notification par email dans un workflow d'erreur. Bien que le contexte soit légèrement plus complexe (avec une recherche de propriétaire), le principe de configuration du nœud d'envoi d'email reste le même.

n8n Advanced Course (5/8) - Error workflows

La vidéo "n8n Advanced Course (5/8) - Error workflows" illustre comment envoyer un email formaté à partir d'un workflow d'erreur.

Regardez la section de 05:14 à 07:00. Concentrez-vous sur la fin du segment, où l'auteur configure le nœud pour envoyer un email. Observez comment il utilise les données des nœuds précédents pour remplir le destinataire, le sujet et le corps du message.


3. Finalisation et Test du Workflow

Votre workflow [GLOBAL] Error Handler devrait maintenant ressembler à ceci : un Error Trigger qui alimente un nœud Set, lequel à son tour déclenche une ou plusieurs notifications (Slack, Email, etc.).

n8n Error Workflow Example
Un workflow d'erreur peut devenir assez sophistiqué, comme le montre cet exemple qui évalue la priorité de l'erreur avant d'envoyer des notifications ciblées par email ou Slack. Notre base actuelle est le fondement de telles logiques avancées.

Pour tester l'ensemble de la chaîne :

  1. Assurez-vous que votre workflow [GLOBAL] Error Handler est actif.
  2. Lancez manuellement votre workflow Test - Failing Workflow.
  3. Quelques secondes plus tard, vous devriez recevoir une notification sur Slack et/ou par email, formatée avec les détails de l'erreur.

Conclusion

Félicitations ! Vous avez transformé votre gestionnaire d'erreurs en un système de surveillance complet et proactif. En cas de défaillance, vous n'avez plus besoin de consulter manuellement les logs ; une notification détaillée et exploitable vous parvient automatiquement.

Points clés à retenir :

  • Les nœuds de communication comme Slack et Send Email s'intègrent parfaitement dans les workflows d'erreur.
  • L'utilisation d'expressions est la clé pour créer des messages dynamiques et informatifs en injectant les données d'erreur (workflowName, errorMessage, executionUrl).
  • Il est possible de combiner plusieurs canaux de notification (par exemple, Slack pour l'instantané, email pour l'archivage) en les connectant en parallèle au même flux de données.

Maintenant que nous savons comment être alerté efficacement des erreurs, la prochaine étape est de voir si nous pouvons les empêcher de se produire. Dans la prochaine leçon, nous explorerons comment utiliser le paramètre 'Retry On Fail' pour gérer automatiquement les erreurs temporaires, comme une indisponibilité momentanée d'une API.