인박스 자동화: n8n 워크플로우가 60일 동안 내 이메일을 분류하며 가르쳐준 것들
요약
본 글은 n8n 워크플로우를 활용하여 Gmail 인박스 분류 및 초안 작성 과정을 자동화한 경험을 공유합니다. 60일간의 테스트를 통해 매일 아침 시간을 절약했으며, 특히 '버킷별 톤 템플릿' 적용과 스레드 컨텍스트 유지 등 실제 실패 사례를 바탕으로 시스템 안정성을 높인 방법을 제시합니다.
핵심 포인트
- n8n 워크플로우로 이메일 분류 및 초안 작성이 가능함.
- 초안만 남기고 전송하지 않는 제약 조건이 복구력을 높임.
- 톤 관련 오작동률을 줄이기 위해 버킷별 톤 템플릿 사용 권장.
- 스레드 컨텍스트를 놓치지 않도록 분류 작업 시 주의 필요.
인박스 자동화: n8n 워크플로우가 60일 동안 내 이메일을 분류하며 가르쳐준 것들
이 글은 프로덕션 환경에서 n8n으로 LLM 워크플로우를 실행하는 과정의 '빌드-인-퍼블릭(build-in-public)' 시리즈 중 일부입니다. 여기에 있는 모든 내용은 제가 판매하고 지원하는 실제 템플릿에서 가져온 것입니다. 실수한 것은 저의 것이고, 수정된 부분은 테스트를 거쳤습니다.
아무도 예산 책정하지 않는 45분
매일 아침 저는 같은 일을 했습니다. Gmail을 열어 60~80개의 새 이메일을 스캔하고, 어떤 것에 답장이 필요한지, 무엇은 기다릴 수 있는지, 그리고 노이즈가 무엇인지 결정하는 것이었습니다. 좋은 날에는 45분이 걸렸습니다. 답장을 작성하는 시간이 아니라, 단지 _결정_을 내리는 시간이었습니다. 작업 자체가 아니라, 분류(triage)였습니다.
그래서 저는 이 '결정'을 수행할 워크플로우를 만들었습니다. Gmail 트리거, 분류기(classifier), 초안 답장 생성기(draft-reply generator), 그리고 아침 검토 과정으로 이루어져 있습니다. 이것은 60일 동안 실행되어 왔습니다. 이제 매일 아침 약 35분을 절약해 주고 있습니다. 하지만 흥미로운 부분은 시간 절약 자체가 아니라, 이 워크플로우가 실패했던 세 가지 방식이며, 각각의 실패는 제가 구축하는 모든 분류기에 적용하는 규칙을 가르쳐 주었습니다.
아키텍처 (한 단락)
하나의 중요한 규칙이 있습니다: 워크플로우는 절대 이메일을 전송하지 않습니다. 초안(Draft) 상태로만 남깁니다. 이 하나의 제약 조건 덕분에 다른 모든 실패가 복구 가능해집니다.
실패 #1: 자신감 넘치는 오분류
수정된 방법은 합성 예제와 몇 가지 사례 학습(few-shot)을 실제 이메일로 대체하는 것이었습니다. 흠잡을 데 없는 실제 메시지 40개, 환불 요청이 감사 인사처럼 보이는 경우까지 포함하여 말입니다. 까다로운 케이스에서의 정확도가
문제점: 모든 초안에 하나의 시스템 프롬프트 적용하기. 해결책: 버킷별 톤 템플릿을 사용한다. 초안 작성 프롬프트는 버킷과 한 줄짜리 목소리 카드(voice card)를 받는다: needs-reply-angry → “먼저 좌절감을 인정하고, 느낌표나 이모티콘은 쓰지 않으며, 다음에 무슨 일이 일어날지 명시하세요”; needs-reply-formal → “상대방의 이름을 사용하고, 전체 서명으로 마무리하세요.” 화려하진 않지만, 톤 관련 오작동률(misfire rate)이 거의 0에 가깝게 떨어졌다. 목소리는 성격(personality)이 아니라 매개변수(parameter)다.
실패 사례 #3: 스레드 무시 (thread blindness)
이것 때문에 고객 상호작용을 놓친 적이 있다. 누군가 기존 스레드에 답장했는데, 워크플로우는 그 단일 메시지—“좋네요, 진행합시다”—를 노이즈(noise)로 분류했다. 그것은 79달러짜리 맞춤 서비스 요청에 대한 구매 확인 메일이었다. 이 구매 확인 컨텍스트는 세 메시지 위에 있었는데, 나는 토큰을 절약하기 위해 이를
~70개의 이메일/일, 각 600 토큰 내외의 분류 작업과 약 10개 초안 작성에 GPT-4o-mini로 하루 약 $0.40이 소요됩니다. 매일 아침 저에게 절약해 주는 35분은 그만한 가치가 있습니다. 실제로 그렇습니다. Gmail API는 무료이고, n8n은 자체 호스팅(self-hosted)이며, 유일한 실제 비용은 위에서 언급된 세 가지 실패를 수정하는 데 보낸 한 주였습니다.
수동으로 유지한 것들
의도적으로 인간이 처리하는 두 가지가 있습니다. 바로 최종 발송(발송되기 전에 모든 초안을 읽습니다. 이 5분짜리 아침 검토가 전체 품질 시스템입니다)과 '불확실' 버킷(이는 다른 이름의 인간 사서함입니다). 나머지 모든 것—읽기, 분류, 초안 작성, 보관—은 워크플로우가 처리합니다. 이러한 분할 방식은 언급할 만한 사고 없이 60일 동안 유지되었으며, 이는 이메일 자동화 시스템으로서 제가 받을 수 있는 최고의 찬사입니다.
저는 AI Automation Lab을 구축하고 있습니다—실제 운영 가능한 n8n 워크플로우 템플릿입니다. AI Inbox Triage & Reply Drafter는 이 기사의 전체 워크플로우입니다: Gmail 트리거, 실제 이메일 몇 가지 예시(few-shots)를 사용한 분류기, 신뢰도 게이트(confidence gate), 버킷별 초안 템플릿, 그리고 아침 검토 설정. 저의 오픈 소스 패턴은 github.com/zhp910318/n8n-ai-automation-lab에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기