지난 강의의 Schedule 트리거는 정해진 시간에만 실행됩니다. 그런데 '고객이 홈페이지에서 문의를 남기는 순간' 바로 알림을 받고 싶다면 어떻게 할까요? 이럴 때 필요한 것이 웹훅(Webhook)입니다.
실전 예: 회의록 자동 정리 워크플로우
실시간 수신 → 처리 → 두 갈래 분기
- 회의 종료 외부 앱 신호
- webhook POST Webhook 수신
- 대본 전처리 Code
- AI 요약 Chat Model
- 결과 활용 이메일 초안
- 결과 활용 시트 아카이브
외부 앱이 회의 종료 신호를 보내는 순간 n8n이 깨어납니다. 폴링(주기적 확인) 없이 실시간 처리가 가능한 것이 웹훅의 힘입니다. AI 요약 뒤에는 이메일·시트 두 갈래로 나뉩니다.
웹훅은 '택배 도착 문자'입니다
택배를 기다릴 때 두 가지 방법이 있습니다. 하나는 현관문을 1분마다 열어 보는 것(폴링 방식), 다른 하나는 기사님이 문 앞에 두고 '배송 완료' 문자를 보내 주는 것(웹훅 방식)입니다. 웹훅은 후자입니다. 내가 계속 확인하는 대신, 상대방이 일이 생겼을 때 나에게 즉시 알려 주는 구조라서 빠르고 효율적입니다.
기술적으로 말하면, 웹훅 노드는 나만의 전용 주소(URL)를 하나 만들어 줍니다. 외부 서비스(결제 시스템, 폼 빌더, 쇼핑몰 등)에 이 주소를 등록해 두면, 이벤트가 발생할 때마다 그 서비스가 이 주소로 데이터를 '배송'하고, 그 순간 워크플로우가 실행됩니다.
웹훅 노드 만들어 보기
웹훅 트리거 실습
- 새 워크플로우에서 트리거로 'Webhook' 노드를 추가합니다.
- 노드 설정 창에 자동 생성된 Test URL과 Production URL 두 개가 보이는지 확인합니다.
- 'Listen for test event' 버튼을 누릅니다. 이제 n8n이 테스트 신호를 기다리는 상태가 됩니다.
- Test URL을 복사해 브라우저 새 탭 주소창에 붙여넣고 접속합니다.
- n8n 화면으로 돌아오면 방금 요청의 정보(주소, 헤더 등)가 도착해 있는 것을 볼 수 있습니다.
테스트 URL vs 프로덕션 URL
웹훅 노드에는 URL이 두 개 있어서 초보자가 가장 많이 헷갈리는 부분입니다. 식당에 비유하면 테스트 URL은 '오픈 전 시식 행사', 프로덕션 URL은 '정식 영업'입니다.
| 구분 | 테스트 URL | 프로덕션 URL |
|---|---|---|
| 주소 형태 | /webhook-test/ 포함 | /webhook/ 포함 |
| 언제 작동? | 'Listen for test event'를 누른 동안만 | 워크플로우가 Active일 때 항상 |
| 결과 확인 | 캔버스에서 데이터가 바로 보임 | Executions 탭에서 기록으로 확인 |
| 용도 | 만들고 디버깅할 때 | 외부 서비스에 등록하는 실제 주소 |
가장 흔한 실수 두 가지입니다. (1) 외부 서비스에 테스트 URL을 등록해 놓고 '왜 안 되지?' 하는 경우 — 테스트 URL은 듣기 버튼을 누른 동안만 작동합니다. (2) 프로덕션 URL을 등록했지만 워크플로우 Active 토글을 안 켠 경우 — 꺼져 있으면 신호가 와도 무시됩니다.
테스트 대기 상태는 일정 시간(약 2분)이 지나면 자동으로 꺼집니다. 신호가 안 잡히면 'Listen for test event'를 다시 누른 뒤 요청을 보내 보세요.
웹훅 URL은 아는 사람이라면 누구나 호출할 수 있는 주소입니다. 실전에서는 웹훅 노드의 Authentication 옵션(Basic Auth, Header Auth 등)으로 비밀 열쇠를 설정해, 약속된 요청만 받아들이도록 하는 것이 안전합니다.
이제 외부 세계에서 n8n으로 데이터가 들어오는 문을 열 수 있게 되었습니다. 다음 강의에서는 들어온 데이터를 요리하는 핵심 도구, 자주 쓰는 노드 5가지를 배웁니다.