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에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 데브옵스
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동화된 n8n 워크플로우 백업至 GitHub 및 삭제 추적
삭제 추적이 포함된 GitHub 자동화 n8n 워크플로우 백업
If
N8n
Set
+
If
N8n
Set
31 노드Marcial Ambriz
데브옵스
귀하의 워크플로우를 GitHub 저장소에 저장
매일 워크플로우 백업을 GitHub에 저장하고 Slack 알림 전송
If
N8n
Set
+
If
N8n
Set
18 노드Andrew
데브옵스
GitHub 동기화 대시보드 - V2
提交 기록과 롤백 기능을 갖춘 GitHub 워크플로우 버전 관리 대시보드
If
N8n
Set
+
If
N8n
Set
94 노드Eduard
데브옵스
매일 워크플로우 백업을 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
데브옵스
워크플로우 정보
난이도
중급
노드 수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에서 보기 →
이 워크플로우 공유