oneshot
oneshot
🗡️ AI 레전드
🚀 SNS 챌린지 달성자

n8n 이메일 자동화 워크플로우 구축 사례

소개: n8n 이메일 자동화 워크플로우 구축 사례보고서

9/20 스타트업 실험실스터디에서는 MAKE(타이칸님)와 N8N(댕댕이멍멍님)을 SLACK과 연결하여 '영수증 처리 자동화' 강의와 실습이 있었다. 실습 당일을 포함하여 수요일까지 5일간 씨름하다가 포기하였다. N8N을 CLOUD에서 사용할 경우 SLACK과 연결과정에서 버그가 자주 난다는 것이였다. MAKE는 구글과 알 수 없는 이유로 실행이 되지 않았다.

클라우드에 N8N을 SLACK을 우회하고 하는 방법 5가지를 묻고, 또 꼭 영수증 처리만 해야하나 다른 것은 할 것이 없는가 5가지를 물은다음, 지금 당장 내가 필요한 이메일 정리를 N8N자동화를 하기로 하였다.

  • 문제: 이메일이 629개가 쌓여있는데 한 개 10초만 본다고 해도 두 시간이 걸린다. 모두 삭제하기는 혹시나 중요한 이메일까지도 삭제 될까봐 삭제를 못하고 있었다.

방법 및 사용도구:

처음에는 손에 익은 ChatGPT로 하다가 시간만 낭비하고 여러차례 심한 할루시네이션으로 구독중단 결별 선언을 하였다. 그리고 CLAUDE의 도움을 받아 N8N 실습을 끝까지 하였다.

  1. 중요한 이메일을 정리하여 IMPORTANT로 자동으로 옮긴다. (이메일에서도 수동으로 할 수 있으나, N8N 자동화 실습에 의미가 있었다.)

  2. 광고와 스팸메일(할인.세일.쿠폰.이벤트.무료배송)등을 자동으로 추출하여 삭제한다.

  3. 다른 이메일들은 1개월 보관 후 삭제한다.

  4. N8N 첫 성공기 (만세~~)

    메시지를 보내는 과정을 보여주는 다이어그램

사용도구

n8n: 노코드 워크플로우 자동화 플랫폼

Gmail API: Google 이메일 서비스 연동

OAuth 2.0: Gmail 계정 인증

{
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "filters": {}
      },
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1.2,
      "position": [
        -480,
        40
      ],
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "b68a18ef3afb16d9f182998ec658690c6f6443a752cd7c1d02dd7a399c7317df"
  }
}

n8n을 활용한 Gmail 이메일 자동화 실습 사례보고서

1. 실습 개요

1.1 실습 목적

개인 Gmail 계정의 이메일 관리를 자동화하여 업무 효율성을 높이고, 노코드 자동화 도구인 n8n의 실무 활용 능력을 습득하는 것을 목표로 하였다. 특히 대량의 이메일(629개)을 효율적으로 분류하고 정리하는 자동화 워크플로우 구축에 중점을 두었다.

1.2 실습 배경

현재 Gmail 받은편지함에 629개의 이메일이 누적되어 있으며, 대부분 불필요한 광고성 이메일과 오래된 이메일로 구성되어 있다. 수동으로 정리하기에는 시간이 과도하게 소요되어 자동화 솔루션의 필요성을 인식하였다.

1.3 실습 범위

  • Gmail API 연동을 통한 이메일 데이터 수집

  • 조건부 로직을 활용한 이메일 분류

  • VIP 발신자 보호 기능

  • 광고 이메일 자동 삭제

  • 1개월 이전 오래된 이메일 자동 정리

2. 사용 도구 및 환경

2.1 주요 도구

  • n8n: 노코드 워크플로우 자동화 플랫폼

  • Gmail API: Google 이메일 서비스 연동

  • OAuth 2.0: Gmail 계정 인증

2.2 기술 환경

  • 운영체제: 웹 브라우저 기반

  • n8n 버전: 클라우드 호스팅 버전

  • Gmail 계정: 개인 계정 4개 연동

  • 데이터 처리량: 약 629개 이메일

2.3 워크플로우 구성요소

  1. Gmail Trigger: 이메일 데이터 수집 트리거

  2. If 노드: 조건부 분기 처리

  3. Gmail 액션 노드: 이메일 조작 (라벨 추가, 삭제 등)

3. 워크플로우 구성 과정

3.1 1단계: Gmail 연동 설정

Gmail Trigger 노드를 생성하여 Gmail 계정과 연동하였다. OAuth 2.0 인증을 통해 Gmail API 접근 권한을 획득하고, 받은편지함의 이메일 데이터를 읽어올 수 있도록 설정하였다.

주요 설정 내용:

  • Credential: Gmail account 4

  • Resource: Message

  • Operation: Get All

  • Return All: true

3.2 2단계: VIP 발신자 보호 로직 구현

중요한 발신자(예: gloriosa0422)로부터 온 이메일을 보호하기 위한 조건부 필터를 구현하였다. If 노드를 활용하여 발신자 정보를 체크하고, VIP 발신자의 이메일은 자동 삭제 대상에서 제외하도록 설정하였다.

구현 조건:

{{ $json.payload.headers.find(h => h.name === 'From').value }}
  • Operation: "does not contain"

  • 보호 대상: gloriosa0422, 기타 중요 발신자

3.3 3단계: 광고 이메일 자동 식별

제목에 "[광고]" 키워드가 포함된 이메일을 자동으로 식별하는 로직을 구현하였다. snippet 데이터와 subject 헤더를 검사하여 광고성 이메일을 분류하였다.

구현 조건:

{{ $json.snippet }}
  • Operation: "contains"

  • 검색 키워드: "광고", "이벤트", "무료배송" 등

3.4 4단계: 날짜 기반 자동 삭제

1개월(30일) 이전에 수신된 오래된 이메일을 자동으로 삭제하는 기능을 구현하였다. internalDate 필드를 활용하여 현재 시점과 비교하는 로직을 작성하였다.

구현 조건:

{{ $json.internalDate }}
  • Operation: "is less than"

  • 비교값: {{ $now.minus({days: 30}).valueOf() }}

4. 주요 구현 내용

4.1 워크플로우 구조

최종 구현된 워크플로우는 다음과 같은 구조로 구성되었다:

Gmail Trigger → If1 (VIP 보호) → If2 (1개월 체크) → Delete 노드
                ↓                    ↓
           Add Label 노드        Delete 노드

4.2 핵심 기능

  1. 자동 이메일 수집: Gmail API를 통한 실시간 이메일 데이터 수집

  2. 조건부 분류: 복수 조건을 활용한 이메일 자동 분류

  3. 선택적 삭제: VIP 보호 기능이 적용된 안전한 자동 삭제

  4. 라벨링 시스템: 중요 이메일 자동 라벨 추가

4.3 데이터 처리 방식

  • internalDate: Gmail 내부 날짜 형식 (타임스탬프)

  • snippet: 이메일 본문 미리보기 텍스트

  • payload.headers: 이메일 헤더 정보 (From, Subject 등)

  • threadId & messageId: 이메일 고유 식별자

5. 문제점 및 해결과정

5.1 타입 변환 오류

문제상황: internalDate가 문자열로 전달되어 숫자 비교 시 타입 오류 발생

Wrong type: '1758758526000' is a string but was expecting a number

해결방법: If 노드의 "Convert types where required" 옵션을 활성화하여 자동 타입 변환 적용

5.2 복잡한 조건 로직

문제상황: OR/AND 조건이 혼재하여 예상과 다른 결과 발생

해결방법: 단계별 If 노드 분리를 통한 명확한 로직 구조 구현

5.3 VIP 이메일 오삭제 위험

문제상황: 중요한 이메일(gloriosa0422)이 휴지통으로 이동

해결방법:

  • VIP 발신자 보호 조건을 최우선으로 배치

  • 수동 복구를 통한 중요 이메일 복원

6. 결과 및 학습 성과

6.1 실행 결과

  • 워크플로우 실행: 성공적으로 완료 (Workflow executed successfully)

  • 처리 시간: 약 808ms로 빠른 처리 속도 달성

  • 실제 삭제: 최근 이메일만 존재하여 실제 삭제된 이메일은 없음

6.2 학습 성과

  1. n8n 플랫폼 이해: 노코드 자동화 도구의 기본 개념과 활용법 습득

  2. API 연동 경험: Gmail API 인증 및 데이터 처리 과정 학습

  3. 조건부 로직: 복잡한 비즈니스 로직을 시각적 워크플로우로 구현하는 능력 향상

  4. 문제해결 능력: 실습 과정에서 발생한 오류를 체계적으로 분석하고 해결하는 경험 획득

6.3 실무 적용 가능성

본 실습을 통해 구축한 이메일 자동화 워크플로우는 다음과 같은 실무 상황에 적용 가능하다:

  • 개인 이메일 관리 자동화

  • 기업 고객지원 이메일 분류

  • 마케팅 이메일 성과 분석

  • 규정 준수를 위한 이메일 보관 정책 자동화

7. 향후 개선방안

7.1 기능 개선

  1. 스케줄 트리거 추가: 정기적 자동 실행을 위한 시간 기반 트리거 구현

  2. 알림 시스템: 삭제 완료 또는 오류 발생 시 Slack/이메일 알림 기능

  3. 백업 기능: 삭제 전 중요 이메일 자동 백업 시스템

  4. 상세 로깅: 처리 결과에 대한 상세한 로그 및 리포트 생성

7.2 확장 가능성

  1. 다중 계정 지원: 여러 Gmail 계정 동시 처리

  2. AI 기반 분류: 머신러닝을 활용한 이메일 내용 기반 자동 분류

  3. 통합 대시보드: 이메일 처리 현황을 한눈에 볼 수 있는 모니터링 대시보드

  4. 규칙 엔진: 사용자 정의 규칙을 통한 유연한 이메일 처리 정책

7.3 운영 최적화

현재 구현된 워크플로우는 기본적인 이메일 정리 기능을 제공하지만, 대량 데이터 처리와 복잡한 비즈니스 요구사항을 충족하기 위해서는 추가적인 최적화가 필요하다. 특히 성능 향상과 안정성 확보를 위한 에러 핸들링 강화가 우선적으로 고려되어야 한다.

8. 결론

본 n8n 실습을 통해 노코드 자동화 도구의 실용성과 가능성을 직접 경험할 수 있었다. Gmail API 연동부터 복잡한 조건부 로직 구현까지 전 과정을 체계적으로 진행하면서, 자동화 솔루션 개발에 대한 실무 역량을 크게 향상시킬 수 있었다.

특히 실습 과정에서 발생한 다양한 오류와 예외 상황을 해결하는 과정에서 문제해결 능력과 디버깅 스킬을 함양할 수 있었으며, 이는 향후 더 복잡한 자동화 프로젝트를 수행하는 데 있어 중요한 밑거름이 될 것이다.

비록 629개의 이메일을 완전히 자동 정리하지는 못했지만, 자동화 워크플로우의 기본 구조와 핵심 개념을 충분히 이해하고 실습할 수 있었다는 점에서 의미 있는 성과라고 평가할 수 있다. 향후 이를 기반으로 더욱 정교하고 실용적인 이메일 관리 시스템을 구축할 수 있을 것으로 기대한다.

3
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요