Texte brut
Je comprends parfaitement. Le scénario de « rupture silencieuse » est exactement ce qui tient les architectes d'automatisation éveillés la nuit, surtout lorsqu'ils gèrent les flux de travail des clients.
La meilleure et la plus scalable façon de gérer cela dans n8n n'est pas d'ajouter une logique de gestion des erreurs à chaque flux de travail, mais de créer un **Global Error Workflow** centralisé.
n8n dispose d'un nœud `Error Trigger` dédié. Lorsqu'il est configuré dans un flux de travail autonome, il agit comme un écouteur global. Chaque fois qu'*un* flux de travail actif dans toute votre instance n8n échoue, ce déclencheur le détecte et extrait toutes les métadonnées (nom du flux de travail, nœud qui a échoué, message d'erreur, ID d'exécution).
Voici un modèle prêt à l'emploi pour un Global Error Notifier. Copiez simplement ce JSON et collez-le dans un nouveau flux de travail vierge :
```json
{
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.errorTrigger",
"typeVersion": 1,
"position": [240, 240],
"id": "2498e94e-d00d-4054-9988-518201a052e4",
"name": "Error Trigger (Catch All)"
},
{
"parameters": {
"mode": "json",
"json": {
"workflowName": "={{ $json.context.workflow.name }}",
"workflowId": "={{ $json.context.workflow.id }}",
"executionId": "={{ $json.context.execution.id }}",
"errorNodeName": "={{ $json.error.context.node.name }}",
"errorMessage": "={{ $json.error.message }}",
"timestamp": "={{ new Date().toISOString() }}"
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [480, 240],
"id": "e914041a-a131-4a4b-8526-a05d6888c3a5",
"name": "Format Error Data"
},
{
"parameters": {
"fromEmail": "n8n@yourdomain.com",
"toEmail": "youremail@yourdomain.com",
"subject": "🚨 n8n Workflow Failed: {{ $json.workflowName }}",
"text": "Bonjour,\n\nUn flux de travail n8n a échoué de manière inattendue.\n\n----------------------------------------\nNom du flux de travail : {{ $json.workflowName }}\nID du flux de travail : {{$json.workflowId }}\nID d'exécution : {{ $json.executionId }}\nNœud ayant échoué : {{$json.errorNodeName }}\nMessage d'erreur : {{ $json.errorMessage }}\nHorodatage : {{$json.timestamp }}\n----------------------------------------\n\nVeuillez vérifier les exécutions de votre instance n8n.",
"options": {}
},
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [720, 240],
"id": "766a2673-8181-4200-a07c-95c52c035661",
"name": "Email Send (Error Alert)"
}
],
"connections": {
"Error Trigger (Catch All)": {
"main": [
[
{
"node": "Format Error Data",
"type": "main",
"index": 0
}
]
]
},
"Format Error Data": {
"main": [
[
{
"node": "Email Send (Error Alert)",
"type": "main",
"index": 0
}
]
]
}
}
}
Comment l’utiliser :
-
Collez ceci dans un nouveau flux de travail.
-
Ouvrez le nœud Email Send (ou remplacez-le par un nœud Slack/Discord si vous préférez les alertes par chat).
-
Connectez vos identifiants e-mail et définissez votre toEmail.
-
Activez ce flux de travail.
Maintenant, vous pouvez être tranquille. Si quelque chose échoue silencieusement, vous recevrez instantanément un e-mail avec les détails exacts de ce qui s’est cassé et où !