LeanX

에러 처리와 예외 분기

안정적인 자동화를 위해서는 Error Workflow로 실패 시 즉시 알림을 받고, 노드별 onError 설정으로 일부 실패에도 흐름이 이어지게 하며, 돈이나 대외 발송이 걸린 지점에는 사람의 승인 단계를 넣어야 합니다.

자동화는 만들 때보다 '조용히 고장 났을 때'가 무섭습니다. API 점검, 인증 만료, 예상 밖의 데이터… 언젠가는 반드시 실패가 일어납니다. 좋은 자동화란 실패하지 않는 자동화가 아니라, 실패했을 때 바로 알 수 있고 안전하게 멈추는 자동화입니다. 자동차의 성능만큼 브레이크와 에어백이 중요한 것과 같습니다.

에러 출력 분기 구조와 전역 감시

① 노드 단위 에러 분기 (onError)

  • API 호출 HTTP Request
  • 정상 ✔ 다음 노드
  • 에러 ✗ 에러 알림·재시도

② 전역 에러 감시 (Error Trigger)

  • 운영 워크플로 A·B·C 감시 대상
  • 에러 발생 시 Error Trigger 실패 시 자동 실행
  • 로그 적재
  • 알림

노드 단위 onError 분기로 '실패 건만 따로 처리'하고, Error Trigger로 모든 운영 워크플로우를 한 곳에서 감시합니다. 두 층위를 함께 갖춰야 빈틈이 없습니다.

1단계: 실패하면 나에게 알려 줘 (Error Workflow)

n8n에는 '워크플로우가 실패하면 대신 실행되는 워크플로우'를 지정하는 기능이 있습니다. 화재가 나면 자동으로 울리는 화재경보기를 설치하는 셈입니다.

에러 알림 워크플로우 만들기

  1. 새 워크플로우를 만들고 트리거로 'Error Trigger' 노드를 추가합니다.
  2. 뒤에 Slack(또는 메일) 노드를 연결하고, 실패한 워크플로우 이름과 에러 메시지를 표현식으로 넣어 알림 문구를 만듭니다. 이름은 '공용 에러 알림'으로 저장합니다.
  3. 감시하고 싶은 원래 워크플로우를 열고, 설정(Settings)에서 Error Workflow 항목에 방금 만든 '공용 에러 알림'을 지정합니다.
  4. 원래 워크플로우에 일부러 잘못된 URL의 HTTP Request를 넣고 실행해, 실패 알림이 오는지 테스트합니다.

에러 알림 워크플로우는 하나만 만들어 두고 모든 중요한 워크플로우에 공용으로 연결하면 됩니다. 새 자동화를 Active로 켤 때 'Error Workflow 지정'을 체크리스트에 포함하는 습관을 들이세요.

2단계: 노드 하나가 실패해도 계속 가기 (onError)

기본 설정에서는 노드 하나가 실패하면 워크플로우 전체가 멈춥니다. 하지만 '100명에게 메일을 보내는데 1명 주소가 잘못됐다고 나머지 99명도 못 받는' 상황은 곤란하죠. 각 노드의 Settings 탭에 있는 On Error 옵션으로 실패 시 행동을 정할 수 있습니다.

On Error 옵션동작어울리는 상황
Stop Workflow (기본값)즉시 전체 중단뒤 단계가 이 결과에 의존할 때
Continue실패를 무시하고 마지막 성공 데이터로 계속실패해도 크게 상관없는 부가 작업
Continue (using error output)에러 전용 출력 가지로 내보내 계속실패 건만 모아 별도 처리/기록할 때 (추천)

'Continue (using error output)'를 선택하면 노드에 빨간색 에러 출력 가지가 하나 더 생깁니다. 성공 건은 원래 길로, 실패 건은 에러 길로 흘러가므로, 에러 길 끝에 '실패 목록 시트 기록'이나 'Slack 보고' 노드를 붙이면 하나도 놓치지 않는 구조가 됩니다.

일시적인 네트워크 오류라면 재시도가 약입니다. 같은 Settings 탭의 'Retry On Fail'을 켜면 실패 시 정해진 횟수만큼(간격 설정 가능) 자동으로 다시 시도합니다. 외부 API를 부르는 HTTP Request 노드에 특히 유용합니다.

3단계: 위험한 일은 사람이 승인하고 지나가기

돈이 나가는 결제, 고객에게 발송되는 메일, 데이터 삭제처럼 되돌리기 어려운 작업은 AI나 자동화에 전권을 주면 안 됩니다. n8n의 사람 개입(Human in the loop) 기능을 쓰면 워크플로우가 특정 지점에서 멈춰 사람의 승인을 기다립니다. 은행 창구에서 큰 금액 이체 시 책임자 승인을 받는 것과 같습니다.

  • Slack/Gmail 노드의 'Send and Wait for Response' 동작: 승인/거절 버튼이 달린 메시지를 보내고, 응답이 올 때까지 워크플로우가 대기합니다.
  • 승인되면 다음 단계로 진행, 거절되면 IF 분기로 중단 처리합니다.
  • 적용 기준: '이게 잘못 실행되면 사과 메일을 보내야 하는가?'라고 자문해서 그렇다면 승인 지점을 넣으세요.

AI가 작성한 글을 자동으로 고객에게 바로 발송하는 구조는 초보 단계에서 가장 위험한 패턴입니다. 처음에는 반드시 '초안 저장' 또는 '승인 후 발송'으로 시작하고, 몇 주간 결과를 지켜본 뒤 자동화 범위를 넓히세요.

이제 실패에 대비하는 3중 안전장치(에러 알림, onError 분기, 사람 승인)를 갖췄습니다. 다음 강의에서는 매주 자동으로 만들어지는 주간 리포트에 도전합니다.