시작하며: 로봇이 쓰러졌는데 아무도 모른다면?
지난 5편을 통해 알고리즘을 다듬고, If 노드를 사용해 구글 달력에 기록을 남기는 방향을 PATCH(북마크 이동)와 POST(새 운동 등록) 두 갈래로 나누었다.
이제 이 두 갈래의 끝에 텔레그램 노드를 연결해 “작업 완료!”라는 알림만 받으면 끝이라고 생각했다. 하지만 내가 뭐라고 저게 완벽하다고 생각할까 언제 어디서 어떻게 에러가 발생할지 모르니 에러 발생 시 알림을 받아야겠다 생각했다.
1. 에러 발생
구글 서버 다운, Cert 만료, 패턴 매칭 실패 등 에러가 발생할 수 있는 시나리오는 많다. 이 중 하나라도 터지면 생성한 노드는 멈춰버린다. 즉, 나에게 텔레그램 성공 알림이 오지 않는다. 나는 아침에 일어나서 또는 운동가기 전 달력이 텅 빈 것을 보고 사태를 파악할 것이다.
처음엔 각 노드마다 에러 노드를 만들어야 하나 했는데, 내 경험상 Custom Exception을 해당 메서드에 만들진 않았다. 그럼 Global하게 할 수 있을 것 같은데… 내가 생각하는데 대단한 분들이 만든 이 n8n에 없을까 역시 있다.
2. Error Workflow
어떤 Work Flow에서든 에러가 터지면 메시지를 전달하는 워크플로우를 만든다.
-
새 워크플로우를 하나 생성하고 이름을
Error Alert으로 짓는다. -
첫 번째 노드로
Error Trigger노드를 추가한다. 이 노드는 다른 Work flow에서 에러가 발생하면 작동되는 노드이다. -
뒤이어
Telegram: Send a text message노드를 붙이고, Text 칸을 Expression 모드로 바꾸어 아래와 같이 작성한다.
🚨 n8n Workflow error
📁 워크플로우: {{ $json.workflow.name }}
🛑 멈춘 노드: {{ $json.execution.lastNodeExecuted }}
⚠️ 에러 내용:
{{ $json.execution.error.message }}
이렇게 세팅해 두면, 내가 5편 Code 노드에서 작성했던 에러 메시지(throw new Error(...))까지 그대로 텔레그램에 찍히는 보고서가 완성된다.
4. 메인 워크플로우와 연결하기
마지막으로 메인 헬스 로봇 워크플로우에 등록해 준다.
-
헬스 로봇 메인 워크플로우 화면의 우측 상단 톱니바퀴 ⚙️ [Settings] 버튼을 누른다.
-
설정 창의
Error Workflow드롭다운 메뉴를 클릭한다. -
방금 만든
Error Alert워크플로우를 선택하고 저장한다.

마치며
테스트를 위해 일부러 Code 노드에 오타를 내고 실행했다. 메인 워크플로우가 멈추고 텔레그램 알림 수신됐다. 에러의 위치와 원인이 정확적힌 보고서였다.
이제 매월 1일 자정에 헬스 로봇이 잘 돌아가는지 work flow를 쳐다볼 필요가 없다.
-
성공하면: “2026년 3월 운동 루틴 캘린더 등록 완료 🏋️”라는 보고를 받고 꿀잠을 자면 된다.
-
실패하면: 어디서 왜 터졌는지 적힌 에러 리포트를 받고 나중에 고치면 된다.
단순히 일정을 넣는 기능(Function)을 넘어, 예외 상황을 방어하는 아키텍처를 세워보고, 쓰러졌을 때 스스로 보고하는 관제 시스템까지 갖추었다.