16. n8n으로 중요한 이메일을 텔레그램으로 자동 알림 받기
긴급 견적 문의가 들어왔는데 메일함을 늦게 열어서, 고객이 이미 다른 곳에 문의했다는 연락을 받았어요. 그날 n8n으로 "긴급"이 들어간 메일은 텔레그램으로 바로 알림이 오도록 만들었어요.
15화에서 Gmail Trigger, Set 노드, IF 노드로 이메일 조건 분기를 만드는 방법을 살펴봤어요. 이번 글에서는 거기에 Telegram 노드를 붙이는 방법을 집중해서 다룰게요. Telegram 노드 설정에서 가장 많이 막히는 두 가지, Bot Token과 Chat ID가 핵심이에요.
이번 자동화 전체 구조
Gmail Trigger → Set 노드 → IF 노드 → Telegram 노드
Gmail Trigger·Set 노드·IF 노드는 15화에서 다뤘어요. 이번 글은 IF 노드 true 경로에 Telegram 노드를 연결하는 부분부터 시작해요.
알림 조건, 처음엔 좁게 잡아야 한다
처음에 조건을 너무 넓게 잡았더니 하루에 텔레그램 알림이 수십 개 왔어요. 결국 알림을 무시하게 됐고 오히려 더 위험했어요. 조건을 "긴급", "견적"처럼 명확한 키워드로 좁히고 나서야 유용해졌어요.
알림 조건을 정할 때 참고할 수 있는 키워드들이에요.
| 목적 | 추천 키워드 | 적용 위치 |
|---|---|---|
| 빠른 대응 필요 | 긴급, 급함, 오늘까지, 즉시 | email_subject |
| 고객 문의·영업 | 문의, 견적, 상담 신청 | email_subject |
| 서비스 문제 | 오류, 장애, 실패, 접속 불가 | email_subject |
| 금전 관련 | 결제, 입금, 환불, 정산 | email_snippet |
처음엔 하나의 키워드만 조건으로 넣고 테스트해요. 알림이 어떻게 오는지 며칠 확인한 뒤 조건을 조정하는 게 현실적이에요.
Telegram 노드 설정 — Bot Token과 Chat ID
Telegram 노드를 추가하면 설정 패널에서 두 가지가 필요해요.
Chat ID — 어디로 보낼지 정하는 값
Chat ID는 알림을 받을 채팅방의 식별값이에요. 유형에 따라 형식이 달라요.
그룹 채팅 Chat ID: 음수 형태 (예: -100123456789)
채널: @channel_username 형태로 입력 가능
Chat ID를 가장 쉽게 확인하는 방법은 텔레그램에서 봇에게 메시지를 보내고, n8n Telegram Trigger(또는 getUpdates API)로 Chat ID를 확인하는 거예요. 처음엔 이 과정이 낯설 수 있어요. 개인 채팅으로 먼저 테스트하고 구조가 작동하면 그룹으로 확장하는 게 수월해요.
텔레그램 알림 메시지 문구 구성하기
Telegram 노드 Text 필드에 이전 노드의 값을 참조해서 메시지를 만들 수 있어요. Set 노드에서 정리한 필드 이름으로 참조해요.
보낸 사람: {{$json.sender_email}}
제목: {{$json.email_subject}}
수신 시간: {{$json.received_at}}
내용 미리보기:
{{$json.email_snippet}}
이 구조를 실무로 확장하면
Telegram 노드 뒤에 Google Sheets 노드를 추가하면 "텔레그램으로 알림을 보내고, 동시에 구글시트에도 기록"하는 자동화가 돼요.
Gmail Trigger → Set → IF → Telegram (알림) → Google Sheets (기록)
이렇게 하면 중요한 메일을 놓치지 않으면서, 나중에 어떤 메일이 처리됐는지도 확인할 수 있어요. 1인 사업자, 상담형 서비스 운영자, 블로그 운영자에게 실용적인 자동화예요.
같은 메일이 반복 알림되지 않게 하려면
Gmail Trigger는 Poll Time마다 새 메일을 확인해요. 설정에 따라 같은 메일이 다시 조건에 걸릴 수 있어요. 중복 알림을 줄이는 방법들이에요.
- 알림을 보낸 메일에 Gmail 라벨을 추가하고, 해당 라벨이 있는 메일은 조건에서 제외하기
- 구글시트에 messageId를 저장해 이미 처리된 메일인지 확인하기
- 처음에는 테스트 계정에서 반복 처리 여부를 먼저 확인하기
처음 실습에서는 이 부분까지 복잡하게 만들지 않아도 돼요. 하지만 실제 업무에 적용할 계획이라면 중복 알림 가능성을 확인해야 해요.
Telegram 연동에서 초보자가 자주 막히는 것들
Bot Token을 캡처 이미지에 노출한다
설정 방법을 기록할 때 캡처 화면에 Token이 보이지 않게 가려야 해요. 노출됐다면 BotFather에서 즉시 재발급해요.
그룹 Chat ID 형식을 모른다
그룹 채팅 Chat ID는 음수 형태예요. 개인 채팅과 형식이 달라서 처음엔 헷갈려요. 개인 채팅으로 먼저 테스트하는 게 수월해요.
메시지에 필드 이름을 잘못 참조한다
Text에 넣은 필드 이름이 Set 노드 Output 필드 이름과 다르면 값이 비어요. Set 노드 Output 탭에서 실제 필드 이름을 먼저 확인해야 해요.
알림이 너무 많이 와서 무시하게 된다
조건을 너무 넓게 잡으면 알림이 소음이 돼요. "긴급", "견적"처럼 명확한 키워드로 시작하고, 실제 사용하면서 조정하는 게 좋아요.
알림이 안 올 때 확인 순서
- Gmail Trigger Output 탭에서 이메일 데이터가 실제로 들어오는지 확인하기
- IF 노드가 true 경로로 분기되고 있는지 확인하기
- Telegram Credentials(Bot Token)가 정상 연결되어 있는지 확인하기
- Chat ID가 올바른 형식으로 입력되어 있는지 확인하기 (그룹은 음수)
- Text 필드의 필드 이름이 Set 노드 Output과 일치하는지 확인하기
이메일 알림 자동화에서 꼭 지켜야 할 것들
- 처음 실습은 테스트 Gmail + 테스트 Telegram 채팅으로 하기
- Bot Token은 비밀번호처럼 관리하고 외부에 노출하지 않기
- 텔레그램 메시지에는 필요한 정보만 포함하기 (이메일 본문 전체 X)
- 업무용 그룹 채팅방에 개인정보가 포함된 내용이 가지 않도록 확인하기
- Execution 기록에 이메일 내용이 남을 수 있다는 점 인식하기
마무리: 조건을 좁히는 게 알림 자동화의 핵심
이번 글에서 다룬 Telegram 노드 설정의 핵심이에요.
- Bot Token — BotFather에서 생성, Credentials에 등록, 절대 외부 노출 금지
- Chat ID — 개인 채팅은 숫자, 그룹은 음수. 처음엔 개인 채팅으로 테스트
- 메시지 문구 — Set 노드 Output 필드 이름으로 참조. 제목 + 발신자 + 본문 일부가 유용
그리고 가장 중요한 건 알림 조건이에요. 조건이 넓으면 알림이 소음이 되고, 좁으면 중요한 메일을 놓쳐요. 처음엔 "긴급" 하나로 시작하고, 며칠 사용하면서 조정하는 게 가장 현실적인 방법이에요.
다음 글에서는 n8n으로 매일 아침 업무 체크리스트를 자동 발송하는 방법을 살펴볼게요. Schedule Trigger와 Set 노드, 알림 노드를 연결해 반복 업무 루틴을 자동화하는 구조를 정리해볼게요.
※ 이 글은 n8n 비개발자 자동화 시리즈 16화입니다. n8n의 기능과 화면은 버전에 따라 달라질 수 있으며, 실제 사용 전에 공식 문서를 함께 확인해주세요.
참고자료
- n8n Docs, Gmail Trigger node
- n8n Docs, Gmail Trigger Poll Mode options
- n8n Docs, Edit Fields (Set) node
- n8n Docs, IF node
- n8n Docs, Telegram node
- n8n Docs, Telegram node Message operations
- n8n Docs, Telegram credentials
- n8n Docs, Telegram node common issues
- n8n Docs, Telegram Trigger node
- Telegram 공식 문서, Bot API
- Telegram 공식 문서, Bots FAQ
- n8n Docs, Expressions
- n8n Docs, Referencing previous nodes
- n8n Docs, Execution data redaction
- n8n Docs, Securing n8n