n8n実行失敗アラートをSlackチャンネルに送信する
中級
これはDevOps分野の自動化ワークフローで、10個のノードを含みます。主にN8n, Set, Code, Slack, Aggregateなどのノードを使用。 毎時n8nエラーミニタリングとSlack通知
前提条件
- •Slack Bot Token または Webhook URL
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "7gbO6txgnBCmDw7c",
"meta": {
"instanceId": "3a51cf8d97711c544e4f2cb09ef2b6ab8c441b10f29e0911311ba2722a967418",
"templateCredsSetupCompleted": true
},
"name": "Send n8n failed execution alerts to a Slack channel",
"tags": [],
"nodes": [
{
"id": "45a1993e-1a89-4077-b258-75c8d4e74bbb",
"name": "スケジュールトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
900,
460
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "3491cecc-6ffc-4798-a5f4-a6230408010b",
"name": "GetWorkflows",
"type": "n8n-nodes-base.n8n",
"position": [
1360,
460
],
"parameters": {
"filters": {
"activeWorkflows": true
},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "w9AYm4viCKUSl2da",
"name": "N8N"
}
},
"typeVersion": 1
},
{
"id": "4f10d86d-1410-45c6-892a-e113fd4cb2b3",
"name": "Loop",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1580,
460
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "b06a9bcb-4fc6-488c-bb3e-7cf1f81547ca",
"name": "n8n",
"type": "n8n-nodes-base.n8n",
"position": [
1780,
520
],
"parameters": {
"limit": 1,
"filters": {
"status": "error",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
}
},
"options": {
"activeWorkflows": false
},
"resource": "execution",
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "w9AYm4viCKUSl2da",
"name": "N8N"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "9012633d-3dcd-4bf5-9645-b90e51129a35",
"name": "集計",
"type": "n8n-nodes-base.aggregate",
"position": [
2000,
520
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "fd91c759-7ee6-45d8-96dd-91eabeb38796",
"name": "MakeMessage",
"type": "n8n-nodes-base.code",
"position": [
1780,
360
],
"parameters": {
"jsCode": "const list = $input.all().map(item => item.json);\nconsole.log(list)\nlet blocks = [];\n\nfor (const item of list) {\n if(item.qtdErrors > 0){\n console.log(item)\n blocks.push({\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": `:aviso: *${item.workflowName}*\\n *${item.qtdErrors}* errors found in the last run`\n\t\t\t},\n\t\t\t\"accessory\": {\n\t\t\t\t\"type\": \"button\",\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Vizualize\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t},\n\t\t\t\t\"value\": \"click_me_123\",\n\t\t\t\t\"url\": `${item.url}`,\n\t\t\t\t\"action_id\": \"button-action\"\n\t\t\t}\n\t\t})\n }\n}\n\nif(blocks.length > 0){\n return {\n blocks: blocks\n };\n}else{\n return null\n}\n"
},
"typeVersion": 2
},
{
"id": "51db21fc-6bf1-4652-944f-a00f15f492b5",
"name": "フィルターLastHour",
"type": "n8n-nodes-base.code",
"position": [
2220,
520
],
"parameters": {
"jsCode": "const list = $(\"Aggregate\").last().json.data;\n\nconst lastHour = new Date();\nlastHour.setHours(lastHour.getHours() - 1);\n\n\nconst executionsLastHour = list.filter(execution => {\n const dataStoppedAt = new Date(execution.stoppedAt);\n\n return dataStoppedAt > lastHour;\n});\n\nif (executionsLastHour.length > 0) {\n console.log(`Foram encontrados ${executionsLastHour.length} itens da última hora.`);\n} else {\n console.log(\"Nenhum item da última hora foi encontrado.\");\n}\n\nreturn {\n workflowId: $(\"Loop\").last().json.id,\n workflowName: $(\"Loop\").last().json.name,\n qtdErrors: executionsLastHour.length,\n url: $(\"Config\").last().json.urlBase + $(\"Loop\").last().json.id\n}"
},
"typeVersion": 2
},
{
"id": "93684cff-609d-4b10-b375-d01724f03a42",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
240
],
"parameters": {
"width": 360,
"height": 200,
"content": "## Slack - Errors last 60 minutes\n\nThis workflow's objective is to monitor for errors and notify via Slack which workflows had failed executions in the last hour, providing a simple table with the ID, name, and error count.\n\nLinkedin: https://www.linkedin.com/in/matheus-pedrosa-custodio/"
},
"typeVersion": 1
},
{
"id": "c11de8c2-1478-49ff-93a8-9cfeacb58507",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
2000,
360
],
"parameters": {
"text": "=",
"user": {
"__rl": true,
"mode": "list",
"value": "U05FMSA2610",
"cachedResultName": "matheus.custodio"
},
"select": "user",
"blocksUi": "={{ $json }}",
"messageType": "block",
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "dtoLOhzSRbL2Pte5",
"name": "Slack Automacao"
}
},
"typeVersion": 2.2
},
{
"id": "28c56721-55d9-448a-8311-57413b0deb84",
"name": "Config",
"type": "n8n-nodes-base.set",
"position": [
1140,
460
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "{\n \"urlBase\": \"https://n8n.com/workflow/\"\n}\n"
},
"typeVersion": 3.4
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "America/Sao_Paulo",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1",
"executionTimeout": -1,
"saveManualExecutions": true
},
"versionId": "b71a7834-6b2b-46df-8c1e-911d15b7a3c3",
"connections": {
"b06a9bcb-4fc6-488c-bb3e-7cf1f81547ca": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"4f10d86d-1410-45c6-892a-e113fd4cb2b3": {
"main": [
[
{
"node": "fd91c759-7ee6-45d8-96dd-91eabeb38796",
"type": "main",
"index": 0
}
],
[
{
"node": "b06a9bcb-4fc6-488c-bb3e-7cf1f81547ca",
"type": "main",
"index": 0
}
]
]
},
"28c56721-55d9-448a-8311-57413b0deb84": {
"main": [
[
{
"node": "3491cecc-6ffc-4798-a5f4-a6230408010b",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "FilterLastHour",
"type": "main",
"index": 0
}
]
]
},
"fd91c759-7ee6-45d8-96dd-91eabeb38796": {
"main": [
[
{
"node": "c11de8c2-1478-49ff-93a8-9cfeacb58507",
"type": "main",
"index": 0
}
]
]
},
"3491cecc-6ffc-4798-a5f4-a6230408010b": {
"main": [
[
{
"node": "4f10d86d-1410-45c6-892a-e113fd4cb2b3",
"type": "main",
"index": 0
}
]
]
},
"FilterLastHour": {
"main": [
[
{
"node": "4f10d86d-1410-45c6-892a-e113fd4cb2b3",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "28c56721-55d9-448a-8311-57413b0deb84",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - DevOps
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
GitHub への自動化 n8n ワークフロー バックアップおよび削除の追跡
n8n のワーキングフローを GitHub へ自動バックアップし、削除を追跡
If
N8n
Set
+
If
N8n
Set
31 ノードMarcial Ambriz
DevOps
ワークフローを GitHub リポジトリに保存する
毎日のワークフロー バックアップを GitHub にアップロードし、Slack 通知を送信
If
N8n
Set
+
If
N8n
Set
18 ノードAndrew
DevOps
GitHub 同期ダッシュボード - V2
コミット履歴とロールバック機能を備えた GitHub ワークフロー バージョン管理ダッシュボード
If
N8n
Set
+
If
N8n
Set
94 ノードEduard
DevOps
毎日のワークフローを GitLab にバックアップして Slack 通知を送信する
毎日のワークフロー バックアップを GitLab にアップロードし、Slack 通知を送信
If
N8n
Set
+
If
N8n
Set
22 ノードMeelioo
Airtable完全バックアップ
Airtable データベースを S3 にバックアップ
If
Set
Aws S3
+
If
Set
Aws S3
19 ノードAutonomous Work
エンジニアリング
高度な n8n ワークフローと GitHub の同期
GitHub による スマートな変更検出を使った ワークフロー バックアップの自動化
If
N8n
Set
+
If
N8n
Set
38 ノードMaksym Brashenko
DevOps
ワークフロー情報
難易度
中級
ノード数10
カテゴリー1
ノードタイプ8
作成者
Matheus Pedrosa
@julinhoI am a software engineer specializing in automations, with extensive experience on the N8N platform. With solid skills in JavaScript, Go, .NET, and C#, I am equipped to develop efficient and scalable solutions.
外部リンク
n8n.ioで表示 →
このワークフローを共有