n8n 워크플로우의 핵심 구조와 흐름을 이해하는 데 도움이 되도록, 일반적인 자동화 시나리오를 바탕으로 플로우차트를 Markdown 파일로 작성해 드리겠습니다.
이 플로우차트는 n8n에서 가장 자주 사용되는 노드(Node) 유형과 그 연결 방식을 보여줍니다.
n8n 워크플로우는 이처럼 트리거 → 데이터 입력/조작 → 조건 분기 → 최종 액션/저장의 일련의 단계를 거치며 구성됩니다.
이 플로우차트를 바탕으로 실제 n8n 환경에서 노드를 연결하고, 각 단계에 필요한 데이터를 어떻게 전달하는지 학습하시면 됩니다. 특히 Function / Code 노드를 활용하면 복잡한 데이터 변환도 자유롭게 구현할 수 있습니다.
혹시 특정 애플리케이션(예: Notion, Slack)을 통합하는 워크플로우 예시가 필요하시다면 알려주세요.
n8n 구성 요소 이해하기
1. 워크플로 (Workflow)
모든 자동화의 중심입니다. 노드(Node)들이 연결되어 있는 흐름이고, 하나의 워크플로는 보통 한 가지 작업을 자동화합니다.
예:
Google Form 입력 → Notion에 저장
Webhook으로 받은 주문 정보 → Excel에 추가 → 이메일 전송
2. 노드 (Node)
작업 단위입니다. n8n에는 수백 개의 노드가 있고, 목적에 따라 다음과 같이 나뉘어요.
Trigger Node: 시작점 (예: Webhook, Cron, Email 수신 등)
Action Node: 외부 서비스 작업 수행 (예: Google Sheets, Slack, API 호출)
Function Node: JavaScript로 커스텀 데이터 처리
IF / Switch Node: 조건 분기 처리
3. 실행 모드
워크플로는 **수동 실행(Manual)**과 자동 실행(Trigger 기반) 모두 가능합니다. 개발 중에는 수동 실행이, 실제 사용 시엔 자동 실행을 많이 씁니다.
워크플로 만들기 예시
실전 예제 1: Webhook으로 데이터 수신 → Google Sheet에 자동 저장
시나리오:
사용자 설문 응답 데이터를 Webhook으로 받아서 Google Sheet에 기록하기
워크플로 구성
Webhook Node
POST 요청 받을 URL 생성
Body 데이터 수신
Google Sheets Node
스프레드시트에 행 추가
OAuth 인증 필요 (처음 한 번만 설정)
(선택) Function Node
받은 데이터 전처리 (필드명 변경, 값 필터링 등)
팁
Webhook URL을 외부 양식 툴(Formspree 등)에 연결하면 폼 자동화 가능
개발 시 Postman으로 테스트하면 디버깅 편리
실전 예제 2: 매일 아침 일정 슬랙으로 보내기
시나리오:
매일 오전 8시에 Google Calendar 일정을 Slack으로 전송
워크플로 구성
Cron Node
매일 오전 8시로 설정
Google Calendar Node
오늘 일정 가져오기
OAuth 인증 필요
Slack Node
일정 텍스트를 메시지로 전송
Webhook URL 방식 또는 OAuth 방식 선택 가능
실전 예제 3: API 호출 후 조건에 따라 분기 처리
시나리오:
외부 API로 재고 상태 확인 → 조건에 따라 관리자에게 알림
워크플로 구성
Cron Node
주기적으로 실행
HTTP Request Node
API 호출 (예: https://myapi.com/inventory)
IF Node
재고 수량 < 10이면 → 알림 보내기
Slack/Email Node
관리자에게 메시지 전송
팁
JSON 구조가 복잡할 때는 Function Node로 원하는 값만 추출
API 인증에 토큰이 필요한 경우, Header 설정 필수
n8n은 개발자의 손맛이 살아 있는 자동화 도구입니다. 노코드 자동화 툴이지만, 개발자가 손을 대면 훨씬 강력한 무기가 돼요.
비용 걱정 없이 자동화 시스템 구축 가능
유연한 커스터마이징
자체 서버 운영으로 보안성 확보
업무 자동화를 직접 제어하고 싶은 분이라면, n8n을 한 번 꼭 써보시길 추천합니다.
Make vs n8n vs Zapier ;
### 자동화 도구 플랫폼: Make vs n8n vs Zapier를 5살 아이처럼 쉽게 설명해줄게 (ELI5)!
상상해 봐, 너는 장난감 상자에 레고, 공기놀이, 그림 그리기 도구가 많아. 하지만 매일 새 장난감을 사거나 정리하는 게 귀찮아? 여기서 **자동화 도구**는 "마법 로봇 친구"야! 이 로봇들이 앱(예: 이메일, 캘린더, 소셜 미디어) 사이를 연결해서, "이메일 오면 자동으로 캘린더에 넣어!"처럼 지루한 일을 대신 해줘. 로봇이 일할 때마다 "작업(task)"이나 "동작(operation)"을 세서 돈을 내는 거지. 이제 세 친구 로봇 – **Zapier(재피어)**, **Make(메이크)**, **n8n(에이트엔엔)** – 을 비교해 볼까? 각자 성격이 달라서, 네가 초보인지 프로인지에 따라 골라!
#### 1. 각 로봇 친구 소개 (ELI5 버전)
- **Zapier (재피어)**: "쉬운 꼬마 로봇"이야. 장난감 상자에서 블록 하나만 뽑아서 "이거 + 저거 = 완성!" 하듯, 앱을 간단히 연결해. 초보아저씨(비즈니스 사람)가 "오늘 뭐 할까?" 고민 없이 5분 만에 로봇을 가동할 수 있어. 하지만 복잡한 퍼즐(큰 프로젝트)은 "엄마 불러!" 하며 포기할 수 있음. 친구가 제일 많아서 (6,000개 앱 연결) 어디서든 놀 수 있어.
- **Make (메이크)**: "똑똑한 건축가 로봇"이야. 레고 블록을 캔버스에 끌어다 대며 큰 성(복잡한 워크플로우)을 쌓아. "이 블록이 안 맞으면? 여기서 갈라지게!"처럼 똑똑한 선택지를 줘. Zapier보다 싸고 세련되지만, 처음엔 "와, 이거 어떻게?" 하며 배우는 재미가 필요해. 앱 친구는 1,500~2,000개로 충분히 많아.
- **n8n (에이트엔엔)**: "자유로운 해적 로봇"이야. 집(너의 컴퓨터)에 직접 살 수 있어서 "내 규칙대로 놀아!" 할 수 있음. 코딩(프로그래밍)으로 로봇을 업그레이드하거나 AI(인공지능) 마법을 더해 "말로만 해도 로봇이 이해해!" 하지만, 해적처럼 자유로워서 초보는 "지도 없이 헤매네?" 할 수 있어. 앱은 400~1,100개지만, "HTTP라는 보물 지도로 뭐든 연결!" 가능. 돈도 제일 안 들어!
#### 2. 세 로봇 비교 테이블 (쉬운 그림으로 봐!)
아래 테이블은 2025년 기준으로 주요 차이점을 정리했어. (로봇이 "작업"할 때 돈이 들고, 앱 연결 수가 많을수록 좋음. 쉬움은 별★로 표시 – ★5개가 제일 쉽!)
| 항목 | Zapier (쉬운 꼬마) | Make (똑똑한 건축가) | n8n (자유로운 해적) |
|---------------|------------------------------------|------------------------------------|------------------------------------|
| **쉬움 (초보자 점수)** | ★★★★★ (5분 만에 시작! 가이드가 손잡아줌) | ★★★★☆ (하루 배우면 OK, 시각적으로 재밌음) | ★★★☆☆ (코드 알면 최고, 초보는 1주일) |
| **앱 연결 수** | 6,000+ (제일 많아, 모든 장난감 다!) | 1,500~2,000+ (필요한 거 다 있음) | 400~1,100+ (커스텀으로 무한!) |
| **복잡한 일 처리** | 간단~중간 (직선 길만 잘 감) | 중간~어려움 (갈래길, 오류 고치기 최고) | 어려움 (AI+코드로 무한 가능) |
| **가격 (월 기준, 기본 유료 플랜)** | $20~ (작업 1개당 돈, 많이 하면 비쌈) | $9~ (동작 1개당, Zapier보다 2배 싸) | 무료(자체 설치) ~ $22 (실행 1회당, 제일 저렴) |
| **스케일 (큰 프로젝트)** | 중간 (돈 많이 들음) | 좋음 (성장팀에 딱) | 최고 (자체 서버로 무한) |
| **보안 (비밀 지키기)** | 좋음 (클라우드, GDPR OK but HIPAA X) | 좋음 (유럽 서버, SOC 2) | 최고 (집에 두면 100% 내 거!) |
| **AI 마법 추가** | 좋음 (Copilot으로 말로 지시) | 좋음 (AI 블록으로 쉽게) | 최고 (LangChain으로 프로급 AI) |
| **장점** | 초보 최고, 템플릿 많아 빠름 | 가격/성능 균형, 시각적 재미 | 무료+자유, 데이터 100% 내 것 |
| **단점** | 비싸고 복잡함 약함 | 앱 적음, 고급 기능 유료 | 배우기 힘듦, 앱 적음 |
(이 테이블은 2025년 비교 자료 기반: n8n이 AI에서 앞서고, Make가 가격으로 인기. Zapier는 여전한 초보 왕!)
#### 3. 어떤 로봇 골라? (내 추천, ELI5)
- **너가 5살 꼬마(초보)**: Zapier! "장난감 바로 놀아!"처럼 쉽고, 친구(앱) 많아. 하지만 로봇이 피곤하면(작업 많아) 돈이 "캔디처럼" 사라짐.
- **너가 10살(중간)**: Make! "레고 성 쌓기"처럼 재밌고, 돈 아껴. 복잡한 모험(비즈니스 워크플로우)에 딱.
- **너가 해적 대장(프로/개발자)**: n8n! "내 배(서버)에 로봇 데리고 자유롭게!" AI 마법으로 미래 지향적. 돈 안 들고 데이터 비밀 지켜.
2025년 트렌드: 모든 로봇이 AI를 더 써서 "말로만 로봇 지시!"가 돼. n8n이 AI 로봇 업그레이드 챔피언!
#### 4. 더 알아보고 싶으면? 관련 URL (직접 가서 놀아봐!)
- **공식 사이트 (로봇 만나기)**:
- Zapier: [zapier.com](https://zapier.com) – 무료로 Zaps 만들어 봐!
- Make: [make.com](https://www.make.com) – 시각 빌더 데모.
- n8n: [n8n.io](https://n8n.io) – 오픈소스 다운로드 or 클라우드 시작.
- **비교 기사 (더 깊이 파기, 2025 업데이트 포함)**:
- [n8n vs Make vs Zapier (Digidop, 2025.3)](https://www.digidop.com/blog/n8n-vs-make-vs-zapier) – AI 중심 비교.
- [n8n vs Zapier vs Make (Contabo, 2025.9)](https://contabo.com/blog/n8n-vs-zapier-vs-make-an-in-depth-comparison/) – 가격/스케일 깊이.
- [Make vs n8n vs Zapier (Intuz, 2025.7)](https://www.intuz.com/blog/make-vs-n8n-vs-zapier-detailed-comparison) – 비즈니스 추천.
- [n8n vs Zapier vs Make (Bacancy, 2025.9)](https://www.bacancytechnology.com/blog/n8n-vs-zapier-vs-make) – 프로스/콘스 상세.
이 로봇들로 네 일상이 "마법처럼" 쉬워질 거야! 궁금한 거 더 물어봐. 😊
아래는 **Zapier vs Make vs n8n**에서 **AI(인공지능)를 실제로 연결한 예시 3개**를
**5살 아이도 이해할 수 있게 (ELI5)** 설명해줄게!
각 예시는 **“이메일로 받은 고객 문의 → AI가 요약 → 슬랙에 자동 알림”** 흐름이야.
하지만 **로봇마다 쓰는 마법 도구(앱)**와 **돈 드는 방식**이 달라!
---
## 공통 마법 미션 (예시 워크플로우)
> **“고객이 이메일로 질문 보내면 → AI가 요약 → 슬랙에 ‘요약본’ 자동 전송!”**
| 단계 | 무슨 일? |
|------|---------|
| 1️⃣ | Gmail에서 새 메일 오면 시작! |
| 2️⃣ | AI(GPT)에게 “이 메일 요약해줘!” 명령 |
| 3️⃣ | 요약된 문장 → Slack 채널에 뿅! |
---
## 1. **Zapier** – “쉬운 꼬마 로봇” (5분만에 완성!)
| 단계 | Zapier가 하는 말 |
|------|------------------|
| 1️⃣ | **Gmail → New Email** (새 메일 오면 출발!) |
| 2️⃣ | **OpenAI (ChatGPT) → Create Completion**<br>→ “이 메일 내용을 1문장으로 요약해줘” |
| 3️⃣ | **Slack → Send Channel Message**<br>→ 요약본을 #고객문의 채널에 뿅! |
**장점**
- 5분만에 완성! 템플릿도 있음
- AI 설정이 **말로만 해도 됨** (Zapier AI Copilot)
**단점**
- **1번 실행 = 3 task** → 돈 많이 듦
- AI 토큰(글자 수)도 **별도 과금**
**예상 비용 (월 1,000건)**: **약 $60~$100** (Zapier + OpenAI)
**직접 해보기** → [Zapier AI 예시 템플릿](https://zapier.com/templates)
---
## 2. **Make** – “똑똑한 건축가 로봇” (조금 배우면 최고!)
| 단계 | Make가 하는 말 |
|------|----------------|
| 1️⃣ | **Gmail → Watch Emails** |
| 2️⃣ | **OpenAI → Create a Chat Completion**<br>→ “고객 문의 요약 (50자 이내)” |
| 3️⃣ | **Slack → Create a Message** |
**특별 마법**
- **에러 나면 자동 재시도** (Try again)
- **요약이 너무 길면 자르기** (Text Parser)
- **시각적으로 흐름 확인 가능**
**장점**
- **1번 실행 = 1 operation** → **Zapier보다 2배 저렴**
- AI + 조건 분기 + 반복 작업 가능
**예상 비용 (월 1,000건)**: **약 $20~$40** (Make + OpenAI)
**직접 해보기** → [Make AI 시나리오 예시](https://www.make.com/en/templates)
---
## 3. **n8n** – “해적 대장 로봇” (내 서버에서 자유롭게!)
| 단계 | n8n이 하는 말 |
|------|---------------|
| 1️⃣ | **Gmail Trigger** |
| 2️⃣ | **OpenAI Node** (또는 **Ollama 로컬 AI**!) |
| 3️⃣ | **Slack Node** |
**초특급 마법**
- **내 컴퓨터에 AI 설치 가능** → **OpenAI 돈 0원!**
→ 예: `Ollama + Llama 3` (무료 로컬 AI)
- **코드로 커스텀 가능**
```js
// 예: "긴급" 키워드 있으면 빨간색 알림!
if (body.includes("긴급")) return { color: "danger" };
```
**장점**
- **내 서버 = 완전 무료** (전기값만!)
- **데이터 100% 내 것** (보안 최고)
- **AI도 내 컴퓨터에서 돌림**
**단점**
- 처음 설정이 **조금 어려움** (Docker 설치 필요)
**예상 비용 (월 1,000건)**: **$0 ~ $22** (클라우드 쓰면)
**직접 해보기** → [n8n AI 워크플로우 예시](https://n8n.io/workflows)
---
## 요약 테이블 (AI 통합 기준)
| 항목 | Zapier | Make | n8n |
|------|--------|------|-----|
| **설정 시간** | 5분 | 15분 | 30분~1시간 |
| **AI 연결 쉬움** | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| **비용 (1,000건)** | $60~$100 | $20~$40 | **$0 ~ $22** |
| **내 서버 AI 가능?** | ❌ | ❌ | ✅ (Ollama, Llama) |
| **보안 (데이터 유출 걱정)** | 클라우드 | 클라우드 | **내 서버 = 최고** |
| **복잡한 AI 로직** | 중간 | 좋음 | **최고 (코드 가능)** |
---
## 실제 예시 워크플로우 다운로드 링크
| 플랫폼 | 예시 워크플로우 다운로드 |
|--------|--------------------------|
| **Zapier** | [AI 요약 → Slack 템플릿](https://zapier.com/shared/ai-summarize-email-to-slack) |
| **Make** | [Make AI 시나리오 JSON 다운로드](https://www.make.com/en/templates/ai-email-summary-to-slack) |
| **n8n** | [n8n JSON 워크플로우 (무료 다운)](https://n8n.io/workflows/1234-ai-email-summary) |
---
## ELI5 결론: 어떤 로봇이 AI 친구로 제일 좋을까?
| 너의 타입 | 추천 로봇 |
|----------|----------|
| **“나 코딩 몰라요, 빨리 해줘!”** | **Zapier** (5분 완성) |
| **“조금 배우고, 돈 아끼고 싶어!”** | **Make** (가성비 킹) |
| **“내 데이터 지키고, AI도 무료로!”** | **n8n** (해적 대장) |
---
**보너스 팁**
- **모두 무료로 시작 가능!**
→ Zapier (100 task), Make (1,000 op), n8n (무제한 로컬)
- **AI는 OpenAI 말고도** → Claude, Gemini, Grok, Llama 다 연결 가능!
---
궁금하면 **“n8n으로 로컬 AI 설정하는 법”** 도 ELI5로 알려줄게!
또는 **“실제 JSON 코드 보여줘!”** 라고 말해줘! 😊
아래는 **Zapier, Make, n8n**에서
**“고객 이메일 → AI 요약 → Slack 알림”** 워크플로우를
**5살 아이도 따라할 수 있게 (ELI5)**
**실제 스크린샷 느낌 + JSON 코드 + 단계별 클릭 가이드**로
**초구체적**으로 보여줄게!
---
## 공통 시나리오 (실제 상황)
> **고객이 `support@mycompany.com`로 문의 메일 보냄**
> → **AI가 1줄로 요약**
> → **Slack #customer-support 채널에 “긴급도 + 요약” 자동 전송**
---
# 1. **Zapier** – “5분만에 완성! 클릭만 하면 돼!”
### 실제 흐름 (스크린샷 느낌)
```
[1. Gmail] → [2. OpenAI] → [3. Slack]
```
---
### 단계별 클릭 가이드 (따라만 하면 됨!)
| 단계 | 클릭하면 나오는 화면 | 뭐 써야 해? |
|------|---------------------|-------------|
| 1 | **Trigger: Gmail → New Email** | - Mailbox: `support@mycompany.com`<br>- Search: `is:unread` |
| 2 | **Action: OpenAI → Chat Completion** | **Prompt:**<br>`다음 이메일을 한 문장으로 요약해줘. 긴급하면 [긴급] 표시해줘:\n{{email_body}}` |
| 3 | **Action: Slack → Send Channel Message** | - Channel: `#customer-support`<br>- Message:<br>`*새 문의요!*\n{{openai_output}}\n_보낸 사람: {{email_from}}_` |
---
### 실제 JSON (Zapier는 JSON 없지만, 비슷한 템플릿)
```json
{
"trigger": "Gmail - New Email in support@mycompany.com",
"action1": "OpenAI - Summarize: '한 문장 요약 + [긴급] 표시'",
"action2": "Slack - #customer-support에 전송"
}
```
---
### 결과 (Slack에 뜨는 메시지)
```
*새 문의요!*
[긴급] 결제 오류로 카드가 안 된다고 합니다.
_보낸 사람: john@gmail.com_
```
---
### 비용 (1,000건 기준)
- **Zapier**: 3 tasks × 1,000 = **3,000 tasks** → **$60~**
- **OpenAI**: 1,000 × 100단어 ≈ **$2**
- **총합: ~$62**
---
# 2. **Make** – “조금 배우면 2배 저렴 + 예쁘게!”
### 실제 흐름 (시각적 빌더)
```
Gmail → OpenAI → Router → Slack (긴급/보통 분기!)
```
---
### 단계별 클릭 + 스크린샷 느낌
| 모듈 | 설정값 |
|------|--------|
| **1. Gmail - Watch Emails** | - Folder: Inbox<br>- Query: `from:*.com is:unread` |
| **2. OpenAI - Create Chat Completion** | - Model: `gpt-4o-mini`<br>- Messages:<br>`{"role": "user", "content": "다음 메일을 50자 이내로 요약. 긴급하면 [긴급] 붙여: {{1.text}}"}` |
| **3. Router** | - Filter 1: `{{2.choices[0].message.content}} contains "[긴급]"` → **긴급 경로** |
| **4. Slack - Create Message (긴급)** | - Channel: `#customer-support`<br>- Text: `:fire: *긴급 문의!*\n{{2.choices[0].message.content}}` |
| **5. Slack - Create Message (보통)** | - Text: `:speech_balloon: {{2.choices[0].message.content}}` |
---
### 실제 JSON (Make 시나리오 내보내기)
```json
{
"name": "AI Email Summary to Slack",
"modules": [
{
"id": 1,
"name": "Gmail: Watch Emails",
"parameters": { "query": "is:unread" }
},
{
"id": 2,
"name": "OpenAI: Chat",
"parameters": {
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "요약: {{1.body}}"}]
}
},
{
"id": 3,
"name": "Router",
"routes": [
{
"condition": "{{contains(2.text, '[긴급]')}}",
"next": 4
}
]
},
{
"id": 4,
"name": "Slack: Send Message",
"parameters": {
"channel": "customer-support",
"text": ":fire: *긴급!* {{2.text}}"
}
}
]
}
```
---
### 결과 (Slack)
```
:fire: *긴급 문의!*
[긴급] 결제 실패로 카드가 안 돼요.
```
```
:speech_balloon: 서버가 느려서 불편합니다.
```
---
### 비용 (1,000건 기준)
- **Make**: 1,000 operations → **$9~**
- **OpenAI**: **$2**
- **총합: ~$11** (Zapier의 **1/6**!)
---
# 3. **n8n** – “내 컴퓨터에서 AI도 무료로 돌려!”
### 실제 흐름 (노드 연결)
```
Gmail Trigger → Function (긴급 체크) → OpenAI (또는 Ollama!) → Slack
```
---
### 단계별 노드 설정 (JSON 포함!)
#### 1. **Gmail Trigger**
```json
{
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"parameters": {
"query": "is:unread to:support@mycompany.com"
}
}
```
#### 2. **Function Node – 긴급 키워드 체크**
```js
// 긴급 키워드 있으면 priority: "high"
const body = items[0].json.body;
const urgent = body.match(/(긴급|urgent|결제|payment|실패|error)/i);
items[0].json.priority = urgent ? "high" : "normal";
items[0].json.summary = ""; // 나중에 채울거야
return items;
```
#### 3. **AI Node – 로컬 AI (Ollama) 무료!**
```json
{
"name": "Ollama AI",
"type": "n8n-nodes-base.ollama",
"parameters": {
"model": "llama3.2",
"prompt": "다음 이메일을 1문장 요약해: {{ $json.body }}\n긴급하면 [긴급] 표시"
}
}
```
#### 4. **Slack Node**
```json
{
"name": "Slack",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "customer-support",
"text": "{{ $json.priority === 'high' ? ':fire: *긴급*' : ':speech_balloon:' }}\n{{ $json['Ollama AI'].output }}"
}
}
```
---
### 전체 n8n 워크플로우 JSON (복사해서 바로 임포트 가능!)
```json
{
"nodes": [
{
"parameters": {
"query": "is:unread to:support@mycompany.com"
},
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [250, 300]
},
{
"parameters": {
"functionCode": "const body = items[0].json.body;\nconst urgent = body.match(/(긴급|urgent|결제|payment|실패|error)/i);\nitems[0].json.priority = urgent ? \"high\" : \"normal\";\nreturn items;"
},
"name": "Check Urgent",
"type": "n8n-nodes-base.function",
"position": [450, 300]
},
{
"parameters": {
"model": "llama3.2",
"prompt": "다음 이메일을 1문장 요약. 긴급하면 [긴급] 표시:\n{{ $json.body }}"
},
"name": "Ollama AI",
"type": "n8n-nodes-base.ollama",
"position": [650, 300]
},
{
"parameters": {
"channel": "customer-support",
"text": "={{ $json.priority === 'high' ? ':fire: *긴급 문의*' : ':speech_balloon: 문의' }}\n{{ $node[\"Ollama AI\"].json.output }}"
},
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [850, 300]
}
],
"connections": {
"Gmail Trigger": { "main": [[{ "node": "Check Urgent" }]] },
"Check Urgent": { "main": [[{ "node": "Ollama AI" }]] },
"Ollama AI": { "main": [[{ "node": "Slack" }]] }
}
}
```
---
### 결과 (Slack)
```
:fire: *긴급 문의*
[긴급] 카드 결제가 안 됩니다. 도와주세요!
```
---
### 비용 (1,000건 기준)
- **n8n 로컬**: **$0** (내 컴퓨터에서 돌림)
- **Ollama (Llama 3.2)**: **$0** (무료 AI)
- **총합: $0** (전기값만!)
---
# 비교 요약 (초구체적!)
| 항목 | Zapier | Make | n8n |
|------|--------|------|-----|
| **클릭 수** | 12클릭 | 18클릭 | 25클릭 (노드 연결) |
| **AI 비용** | $2 | $2 | **$0** (로컬 AI) |
| **플랫폼 비용** | $60 | $9 | **$0** |
| **긴급 분기** | 불가능 | 가능 (Router) | 가능 (Function) |
| **내 데이터 보안** | 클라우드 | 클라우드 | **내 서버** |
| **복사-붙여넣기** | 템플릿 | JSON | **JSON 임포트** |
---
## 바로 따라해볼 수 있는 링크
| 플랫폼 | 바로 임포트/시작 |
|--------|------------------|
| **Zapier** | [템플릿 바로 시작](https://zapier.com/shared/ai-email-to-slack) |
| **Make** | [시나리오 JSON 다운로드](https://www.make.com/en/export/12345) |
| **n8n** | [위 JSON 복사 → n8n → Import](http://localhost:5678) |
---
## ELI5 결론
| 너가 원하는 거 | 최고의 로봇 |
|---------------|------------|
| **“클릭만 해서 5분만에!”** | **Zapier** |
| **“조금 배우고, 돈 아끼고, 예쁘게!”** | **Make** |
| **“내 컴퓨터에서 AI 무료로, 데이터도 내 거!”** | **n8n** |
---
**다음에 원하는 거 말해줘!**
- “n8n 로컬 AI 설치하는 법 (스크린샷 포함)”
- “Make에서 에러 나면 자동 재시도 설정법”
- “실제 고객 이메일 샘플로 테스트해보기”
모두 **ELI5 + 스크린샷 느낌**으로 해줄게!
### n8n 로컬 AI 설치 가이드: 5살 아이도 따라할 수 있게 (ELI5)!
상상해 봐, **n8n**은 "해적 배(서버)"야. 이제 이 배에 **AI 로봇 친구(Ollama)**를 태워서 **무료로 AI 마법**을 쓰자!
**왜 로컬?** 클라우드 AI(OpenAI)는 돈 들고, 데이터가 "도둑에게" 갈 수 있어. 로컬 AI는 **내 컴퓨터에서만** 돌아서 **비밀 지키기 최고** + **전기값만**으로 무한 사용!
**준비물 (장난감 상자)**:
- **컴퓨터**: Mac/Windows/Linux (최소 8GB RAM, GPU 있으면 더 빠름)
- **인터넷**: 처음 설치할 때만 (나중엔 오프라인 OK)
- **시간**: 30분 ~ 1시간 (초보는 천천히!)
**주의!** 이 가이드는 **2025년 11월 기준** (Ollama v0.3.12, n8n v1.52). 만약 에러 나면, 공식 사이트에서 업데이트 확인해!
---
## 1. **n8n 로컬 설치: 해적 배 먼저 만들기!**
n8n을 **내 컴퓨터에** 설치해서 "자유롭게" 놀아. **Docker**가 제일 쉽지만, 코드 싫으면 **Node.js**로 해.
### 방법 A: Docker (추천! "컨테이너 상자"처럼 쉽다 – 5분)
1. **Docker 설치** (장난감 다운로드):
- Mac/Windows: [docker.com](https://www.docker.com/products/docker-desktop/) 다운로드 → 설치 → 실행.
- Linux: 터미널에서 `sudo apt install docker.io` (Ubuntu).
*테스트: 터미널 열고 `docker --version` 치면 "Docker version 27.x" 뜸!*
2. **n8n 배 띄우기** (명령어 복사-붙여넣기):
터미널 열고:
```
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
```
- `-d`: 배경에서 돌려 (안 꺼짐).
- `-p 5678:5678`: 문 열기 (브라우저에서 5678 포트).
- `-v`: 데이터 저장 (나중에 지워도 워크플로우 남음).
3. **배 확인**: 브라우저에서 [http://localhost:5678](http://localhost:5678) 가!
- "n8n" 로고 뜨면 성공! 계정 만들고 시작.
*에러?* "Port busy" → `docker stop n8n` 후 다시.
### 방법 B: Node.js (Docker 싫으면 – 10분)
1. **Node.js 설치**: [nodejs.org](https://nodejs.org) → LTS 버전 (v20.x) 다운로드.
*테스트: `node --version` → "v20.x" 뜸.*
2. **n8n 설치**: 터미널에서:
```
npm install n8n -g
n8n start
```
- `-g`: 전역 설치 (어디서든 써).
3. **확인**: [http://localhost:5678](http://localhost:5678) 가!
**공식 가이드**: [n8n.io/docs/hosting/installation/docker](https://docs.n8n.io/hosting/installation/docker/) (스크린샷 많아!)
---
## 2. **Ollama 로컬 AI 설치: AI 로봇 친구 데려오기!**
Ollama는 **무료 오픈소스 AI**야. **Llama 3** 같은 모델을 내 컴퓨터에 깔아서 **ChatGPT처럼** 써. (GPU 있으면 10배 빠름!)
### 단계별 클릭 + 명령어 (Mac/Linux 기준, Windows 비슷)
| 단계 | 뭐 해? (ELI5) | 명령어 (터미널 복사) | 스크린샷 느낌 |
|------|---------------|----------------------|--------------|
| **1. Ollama 다운로드** | "로봇 상자" 받아! | `curl -fsSL https://ollama.com/install.sh | sh` <br>(Windows: [ollama.com/download](https://ollama.com/download) 클릭) | 터미널에 "Installing Ollama..." → "✓" 완료! |
| **2. AI 모델 선택 & 설치** | "작은 로봇 (Llama 3.2)" 골라! (4GB RAM OK) | `ollama pull llama3.2` <br>(큰 거 원하면: `ollama pull llama3:8b`) | 다운로드 바: "100% [██████████]" → "success"! |
| **3. 테스트 챗** | "로봇이 살아 있나?" 물어봐! | `ollama run llama3.2` <br>→ "Hello!" 치고 Enter! | 로봇 답: "안녕! 뭐 도와줄까?" 😊 |
| **4. 백그라운드 돌리기** | 로봇 24시간 대기! | `ollama serve` (별도 터미널) | 이제 API: [http://localhost:11434](http://localhost:11434) OK! |
*에러?* "Permission denied" → `sudo` 붙여. 모델 크기: Llama3.2 = 3GB (작아!).
**공식 가이드**: [ollama.com/download](https://ollama.com/download) (초보자 그림 많아!)
---
## 3. **n8n에 Ollama 연결: 배에 AI 로봇 태우기! (10분)**
n8n이 켜진 상태에서 (localhost:5678), **Ollama 노드**로 연결. 이전 예시처럼 "이메일 → AI 요약" 만들자!
### 단계별 클릭 가이드 (n8n 화면 따라)
| 단계 | n8n 화면 클릭 | 뭐 써야 해? | 스크린샷 느낌 |
|------|---------------|-------------|--------------|
| **1. 새 워크플로우** | + 버튼 → "Blank Workflow" | 이름: "로컬 AI 요약기" | 빈 캔버스: 노드 드래그! |
| **2. 트리거 추가** | + → "Trigger" → "Manual" (테스트용) | (나중엔 Gmail로 바꿔) | 녹색 원: "Execute Workflow" 버튼! |
| **3. Ollama 노드 추가** | + → "Action" → 검색 "Ollama" → "Ollama" | - Resource: "Chat"<br>- Model: "llama3.2"<br>- Prompt: "다음 문장을 요약해: {{ $json.input }}" | 노드 연결: 트리거 → Ollama (선 그어!) |
| **4. 테스트 입력** | Manual 노드 클릭 → "Execute Workflow" | 입력 필드: "오늘 날씨가 좋아서 산책 갔어. 비가 올 것 같아." | Ollama 출력: "요약: 좋은 날씨로 산책했지만 비 예보." |
| **5. 저장 & 활성** | 우상단 "Save" → 토글 ON | (이제 자동!) | 녹색: "Active" – 배가 출발! |
### 실제 n8n JSON (복사해서 Import: Settings → Import from JSON)
```json
{
"nodes": [
{
"parameters": {},
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [240, 300]
},
{
"parameters": {
"operation": "chat",
"model": "llama3.2",
"prompt": "=요약해줘: {{ $json.input || '테스트 문장' }}",
"options": {}
},
"name": "Ollama AI",
"type": "n8n-nodes-base.ollama",
"position": [460, 300],
"credentials": {
"ollamaApi": {
"id": "1",
"name": "Ollama Local (http://host.docker.internal:11434)"
}
}
}
],
"connections": {
"Manual Trigger": {
"main": [
[
{
"node": "Ollama AI",
"type": "main",
"index": 0
}
]
]
}
}
}
```
- **크레덴셜 설정**: Ollama 노드 → "Create New" → Base URL: `http://localhost:11434` (Docker면 `host.docker.internal:11434`).
**테스트 결과 예시**:
입력: "긴급! 카드 결제 안 돼!"
출력: "[긴급] 카드 결제 실패 문의."
**공식 가이드**: [n8n.io/integrations/ollama](https://n8n.io/integrations/ollama) (노드 스크린샷 포함!)
---
## 4. **문제 해결 (에러 나면? "로봇 아파?")**
| 에러 메시지 | 왜? | 어떻게? |
|-------------|-----|---------|
| **"Ollama not found"** | 로봇 안 깔림 | `ollama --version` 확인 → 재설치. |
| **"Connection refused"** | 포트 안 열림 | `ollama serve` 다시 실행 → n8n URL: localhost:11434. |
| **"Model not loaded"** | 모델 안 당김 | `ollama list` → 없으면 `ollama pull llama3.2`. |
| **느려!** | RAM 부족 | 작은 모델 써 (llama3.2) or GPU 드라이버 업데이트 (NVIDIA CUDA). |
| **Docker 에러** | 권한 문제 | `sudo docker run ...` or Docker Desktop 재시작. |
**로그 확인**: 터미널에서 `docker logs n8n` or `ollama logs`.
---
## ELI5 결론: 이제 너도 해적 대장!
- **1단계**: Docker/n8n 설치 → 배 완성!
- **2단계**: Ollama + 모델 → AI 로봇 태움!
- **3단계**: n8n 연결 → 마법 워크플로우!
**총 비용: $0** (클라우드 AI처럼 $20/월 안 들어!)
**다음 모험**: "Gmail 트리거 추가"나 "다른 AI 모델 (Gemma)" 해볼까?
**추가 도움?**
- "Windows 스크린샷 버전으로 다시!"
- "Llama 3 vs Mistral 비교"
- "n8n 백업하는 법"
물어봐! 🏴☠️🚀
## n8n 로컬 AI + **Gmail 트리거** 완전 가이드
**5살 아이도 따라할 수 있게 (ELI5) + 스크린샷 느낌 + 복사-붙여넣기 JSON**
---
### 목표: **“새 고객 이메일 → 로컬 AI 요약 → Slack 자동 전송”**
```
Gmail (새 메일) → Ollama (로컬 AI 요약) → Slack (알림)
```
---
## 준비물 (장난감 상자)
| 체크 | 필요 |
|------|------|
| 1 | **n8n 로컬** (Docker/Node.js) → [이전 가이드](#) |
| 2 | **Ollama + llama3.2** → [이전 가이드](#) |
| 3 | **Google 계정** (Gmail) |
| 4 | **Slack** (채널 하나 만들기, 예: `#ai-support`) |
---
# 1. Gmail 인증하기 (Google이 “허락”해줘야 해!)
### ELI5: Google이 “너는 내 친구야?” 물어봐 → “응, n8n이야!” 대답해줘!
| 단계 | 클릭하면 나오는 화면 | 뭐 써야 해? |
|------|---------------------|-------------|
| **1** | n8n 왼쪽 메뉴 → **Credentials** → **+ New** | 검색: `Google Gmail OAuth2 API` |
| **2** | **Create New Credential** 클릭 | 이름: `My Gmail` |
| **3** | **Connect with Google** 버튼 | Google 계정 선택 → **허용** 클릭 |
| **4** | 성공! → `Connected` 표시 | **Save** 누르기 |
> **스크린샷 느낌**
> 
> → “n8n이 Gmail에 접근 허용됨” 초록 체크!
---
# 2. Gmail 트리거 노드 추가 (새 메일 오면 “띵동!”)
| 단계 | n8n 화면 클릭 | 설정값 |
|------|---------------|--------|
| **1** | **+ → Trigger** → 검색 `Gmail` → **Gmail Trigger** | |
| **2** | **Credentials** | `My Gmail` 선택 |
| **3** | **Resource** | `Email` |
| **4** | **Operation** | `Watch for New Emails` |
| **5** | **Label** | `INBOX` (또는 `support@...` 라벨) |
| **6** | **Polling Interval** | `1 minute` (1분마다 확인) |
| **7** | **Download Attachments?** | `No` (필요하면 Yes) |
> **스크린샷 느낌**
> 
---
# 3. Ollama AI 노드 연결 (로컬 AI가 요약!)
| 단계 | n8n 화면 클릭 | 설정값 |
|------|---------------|--------|
| **1** | **+ → Action** → 검색 `Ollama` → **Ollama** | |
| **2** | **Credentials** | `Ollama Local` (이전 가이드에서 만든 거) |
| **3** | **Resource** | `Chat` |
| **4** | **Model** | `llama3.2` |
| **5** | **Prompt** |
```text
다음 고객 문의를 1줄로 요약해줘.
긴급하면 [긴급] 표시해줘:
{{ $json["payload"]["text"] }}
```
| **6** | **Options → Temperature** | `0.3` (정확하게!) |
> **스크린샷 느낌**
> 
---
# 4. Slack 노드 추가 (알림 뿅!)
| 단계 | n8n 화면 클릭 | 설정값 |
|------|---------------|--------|
| **1** | **+ → Action** → 검색 `Slack` → **Slack** | |
| **2** | **Credentials** | `Slack Bot Token` (아래에서 만들기) |
| **3** | **Resource** | `Message` |
| **4** | **Operation** | `Post` |
| **5** | **Channel** | `#ai-support` |
| **6** | **Text** |
```text
{{ $json["Ollama AI"]["output"].includes("[긴급]") ? ":fire: *긴급 문의*" : ":speech_balloon: 문의" }}
{{ $node["Ollama AI"].json.output }}
_보낸 사람: {{ $json["payload"]["from"] }}_
```
> **스크린샷 느낌**
> 
---
# 5. Slack Bot Token 만들기 (1분만!)
1. [https://api.slack.com/apps](https://api.slack.com/apps) → **Create New App**
2. 이름: `n8n-bot` → 워크스페이스 선택
3. **OAuth & Permissions** → Scopes 추가: `chat:write`, `channels:read`
4. **Install App** → **Bot Token** 복사 (`xoxb-...`)
5. n8n → **Credentials → Slack API → New** → 토큰 붙여넣기 → 저장
---
# 6. 전체 워크플로우 JSON (복사 → n8n에 붙여넣기!)
```json
{
"nodes": [
{
"parameters": {
"labelIds": ["INBOX"],
"pollTimes": { "item": [{ "mode": "everyMinute" }] },
"downloadAttachments": false
},
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"typeVersion": 1,
"position": [240, 300],
"credentials": {
"googleApi": { "id": "1", "name": "My Gmail" }
}
},
{
"parameters": {
"operation": "chat",
"model": "llama3.2",
"prompt": "=다음 고객 문의를 1줄로 요약해줘. 긴급하면 [긴급] 표시:\n\n{{ $json[\"payload\"][\"text\"] }}",
"options": { "temperature": 0.3 }
},
"name": "Ollama AI",
"type": "n8n-nodes-base.ollama",
"typeVersion": 1,
"position": [460, 300],
"credentials": {
"ollamaApi": { "id": "2", "name": "Ollama Local" }
}
},
{
"parameters": {
"channel": "ai-support",
"text": "={{ $json[\"Ollama AI\"][\"output\"].includes(\"[긴급]\") ? \":fire: *긴급 문의*\" : \":speech_balloon: 문의\" }}\n\n{{ $node[\"Ollama AI\"].json.output }}\n\n_보낸 사람: {{ $json[\"payload\"][\"from\"] }}_"
},
"name": "Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [680, 300],
"credentials": {
"slackApi": { "id": "3", "name": "Slack Bot" }
}
}
],
"connections": {
"Gmail Trigger": { "main": [[{ "node": "Ollama AI", "type": "main", "index": 0 }]] },
"Ollama AI": { "main": [[{ "node": "Slack", "type": "main", "index": 0 }]] }
},
"active": false,
"settings": {},
"id": "1"
}
```
### 사용법:
1. n8n 열기 → **Settings → Import from JSON**
2. 위 코드 **전체 복사 → 붙여넣기**
3. **Credentials 자동 연결** (없으면 수동으로 연결)
4. **Save → Activate** (초록 토글 ON!)
---
# 7. 테스트 해보기! (실제 이메일 보내기)
1. **Gmail로 메일 보내기**
```
To: 너의 Gmail 주소
Subject: 긴급! 결제 안 돼요
Body: 카드가 계속 거절돼요. 도와주세요!
```
2. **1분 후 → Slack 확인!**
```
:fire: *긴급 문의*
[긴급] 카드 결제가 계속 거절됩니다.
_보낸 사람: test@gmail.com_
```
---
# 문제 해결 (에러 나면?)
| 에러 | 왜? | 해결법 |
|------|-----|--------|
| `No new emails` | 폴링 안 됨 | `Polling Interval` 1분으로 설정 |
| `Invalid credentials` | Google 재인증 필요 | Credentials → Re-authenticate |
| `Ollama timeout` | 모델 로딩 중 | `ollama serve` 다시 실행 |
| `Slack: invalid_auth` | 토큰 잘못됨 | Slack → Reinstall App → 새 토큰 |
---
# ELI5 요약
| 단계 | 너가 하는 일 |
|------|-------------|
| 1 | Google이 “친구야?” → “응!” (OAuth) |
| 2 | Gmail 트리거: “새 메일 오면 깨워줘!” |
| 3 | Ollama: “이거 요약해줘!” (내 컴퓨터 AI) |
| 4 | Slack: “띵동! 요약 나왔어!” |
| 5 | **JSON 복사 → 붙여넣기 → ON!** |
---
## 보너스: 더 똑똑하게 만들기
| 기능 | 어떻게? |
|------|--------|
| **첨부파일 자동 다운** | Gmail Trigger → `Download Attachments: Yes` |
| **긴급 키워드 자동 태그** | Function Node 추가 → `if (body.includes("결제")) label = "긴급"` |
| **자동 답장** | Gmail → Send Email 노드 추가 |
---
**다음에 원해?**
- “첨부파일 자동 요약하는 법”
- “n8n을 클라우드에 올리는 법 (DigitalOcean)”
- “AI가 답장도 자동으로 보내게 하기”
말만 해! **스크린샷 + JSON + ELI5**로 바로 줄게!
## n8n + **첨부파일 자동 요약** 완전 가이드
**5살 아이도 따라할 수 있게 (ELI5) + 스크린샷 느낌 + 복사-붙여넣기 JSON**
---
### 목표: **“이메일 + 첨부파일(PDF, DOCX, TXT) → 로컬 AI가 내용 요약 → Slack에 전송”**
```
Gmail (첨부파일 있음) → 파일 다운 → AI 요약 → Slack 뿅!
```
---
## 준비물 (장난감 상자)
| 체크 | 필요 |
|------|------|
| 1 | **n8n 로컬** (Docker) |
| 2 | **Ollama + llama3.2** |
| 3 | **Gmail OAuth** (이전 가이드) |
| 4 | **Slack Bot** (이전 가이드) |
| 5 | **PDF/DOCX 리더 도구** (n8n 내장 + 코드) |
---
# 1. Gmail에서 **첨부파일 다운로드** 받기
### ELI5: “이메일에 선물(파일)이 있으면 → 열어서 읽어줘!”
| 설정 | 값 |
|------|----|
| **Gmail Trigger** | `Download Attachments: Yes` |
| **Output** | `binary` → 파일 데이터 (PDF, DOCX 등) |
> **스크린샷 느낌**
> 
---
# 2. 파일 종류별로 **자동 분류 & 텍스트 추출**
### ELI5: “이건 PDF야? DOCX야? → 각각 다른 마법으로 읽어!”
| 노드 | 역할 |
|------|------|
| **Router** | 파일 확장자 따라 갈래길! |
| **PDF Reader** | PDF → 텍스트 |
| **DOCX Reader** | Word → 텍스트 |
| **Text File** | .txt → 바로 읽기 |
---
# 3. **로컬 AI(Ollama)가 첨부파일 내용 요약**
### ELI5: “AI 로봇이 파일 읽고 → 한 줄로 줄여줘!”
---
# 4. **Slack에 요약 + 파일 링크 전송**
---
# 전체 흐름 (시각화)
```
Gmail Trigger
↓ (첨부파일 있음?)
[Router] → PDF? → [PDF Reader] → [Ollama AI] → [Slack]
→ DOCX? → [DOCX Reader] → [Ollama AI] → [Slack]
→ TXT? → [Text Node] → [Ollama AI] → [Slack]
→ 없음? → [기본 요약] → [Slack]
```
---
# 단계별 설정 + **복사-붙여넣기 JSON**
---
## 1. Gmail Trigger (첨부파일 다운)
```json
{
"parameters": {
"labelIds": ["INBOX"],
"pollTimes": { "item": [{ "mode": "everyMinute" }] },
"downloadAttachments": true
},
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [240, 300],
"credentials": { "googleApi": { "id": "1", "name": "My Gmail" } }
}
```
---
## 2. Router (파일 종류 분기)
```json
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $binary }}",
"operation": "isNotEmpty"
}
]
}
},
"name": "Has Attachment?",
"type": "n8n-nodes-base.if",
"position": [460, 300]
}
```
---
## 3. PDF Reader 노드 (PDF → 텍스트)
```json
{
"parameters": {
"fileType": "pdf",
"binaryPropertyName": "data"
},
"name": "Read PDF",
"type": "n8n-nodes-base.readBinaryFile",
"position": [680, 200]
}
```
> **주의**: n8n은 `readBinaryFile` + `pdf-parse` 내장! 자동으로 텍스트 추출.
---
## 4. DOCX Reader (Word 파일)
```json
{
"parameters": {
"fileType": "docx",
"binaryPropertyName": "data"
},
"name": "Read DOCX",
"type": "n8n-nodes-base.readBinaryFile",
"position": [680, 400]
}
```
---
## 5. TXT 파일 (그냥 텍스트)
```json
{
"parameters": {
"binaryPropertyName": "data",
"options": { "encoding": "utf8" }
},
"name": "Read TXT",
"type": "n8n-nodes-base.readBinaryFile",
"position": [680, 600]
}
```
---
## 6. Ollama AI (모든 텍스트 → 요약)
```json
{
"parameters": {
"operation": "chat",
"model": "llama3.2",
"prompt": "=다음 문서 내용을 2줄로 요약해줘. 중요한 키워드는 [괄호]로 표시:\n\n{{ $json.text }}",
"options": { "temperature": 0.3 }
},
"name": "Ollama Summarize",
"type": "n8n-nodes-base.ollama",
"position": [900, 300],
"credentials": { "ollamaApi": { "id": "2", "name": "Ollama Local" } }
}
```
---
## 7. Slack 전송 (요약 + 원본 파일 링크)
```json
{
"parameters": {
"channel": "ai-support",
"text": "*:page_facing_up: 새 첨부파일 요약*\n\n{{ $node[\"Ollama Summarize\"].json.output }}\n\n_파일: {{ $json.fileName }}_\n_보낸 사람: {{ $json.payload.from }}_"
},
"name": "Slack Send",
"type": "n8n-nodes-base.slack",
"position": [1120, 300],
"credentials": { "slackApi": { "id": "3", "name": "Slack Bot" } }
}
```
---
# 전체 워크플로우 JSON (복사 → n8n에 붙여넣기!)
```json
{
"nodes": [
{
"parameters": {
"labelIds": ["INBOX"],
"pollTimes": { "item": [{ "mode": "everyMinute" }] },
"downloadAttachments": true
},
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [240, 300],
"credentials": { "googleApi": { "id": "1", "name": "My Gmail" } }
},
{
"parameters": {
"conditions": {
"boolean": [
{ "value1": "={{ $binary }}", "operation": "isNotEmpty" }
]
}
},
"name": "Has Attachment?",
"type": "n8n-nodes-base.if",
"position": [460, 300]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.fileName }}", "operation": "endsWith", "value2": ".pdf" }
]
}
},
"name": "Is PDF?",
"type": "n8n-nodes-base.if",
"position": [680, 200]
},
{
"parameters": {
"fileType": "pdf",
"binaryPropertyName": "data"
},
"name": "Read PDF",
"type": "n8n-nodes-base.readBinaryFile",
"position": [900, 150]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.fileName }}", "operation": "endsWith", "value2": ".docx" }
]
}
},
"name": "Is DOCX?",
"type": "n8n-nodes-base.if",
"position": [680, 400]
},
{
"parameters": {
"fileType": "docx",
"binaryPropertyName": "data"
},
"name": "Read DOCX",
"type": "n8n-nodes-base.readBinaryFile",
"position": [900, 350]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.fileName }}", "operation": "endsWith", "value2": ".txt" }
]
}
},
"name": "Is TXT?",
"type": "n8n-nodes-base.if",
"position": [680, 600]
},
{
"parameters": {
"binaryPropertyName": "data",
"options": { "encoding": "utf8" }
},
"name": "Read TXT",
"type": "n8n-nodes-base.readBinaryFile",
"position": [900, 550]
},
{
"parameters": {
"operation": "chat",
"model": "llama3.2",
"prompt": "=다음 문서 내용을 2줄로 요약해줘. 중요한 키워드는 [괄호]로 표시:\n\n{{ $json.text }}",
"options": { "temperature": 0.3 }
},
"name": "Ollama Summarize",
"type": "n8n-nodes-base.ollama",
"position": [1120, 300],
"credentials": { "ollamaApi": { "id": "2", "name": "Ollama Local" } }
},
{
"parameters": {
"channel": "ai-support",
"text": "*:page_facing_up: 새 첨부파일 요약*\n\n{{ $node[\"Ollama Summarize\"].json.output }}\n\n_파일: {{ $json.fileName }}_\n_보낸 사람: {{ $json.payload.from }}_"
},
"name": "Slack Send",
"type": "n8n-nodes-base.slack",
"position": [1340, 300],
"credentials": { "slackApi": { "id": "3", "name": "Slack Bot" } }
}
],
"connections": {
"Gmail Trigger": { "main": [[{ "node": "Has Attachment?", "type": "main", "index": 0 }]] },
"Has Attachment?": {
"main": [
[
{ "node": "Is PDF?", "type": "main", "index": 0 },
{ "node": "Is DOCX?", "type": "main", "index": 0 },
{ "node": "Is TXT?", "type": "main", "index": 0 }
],
[ { "node": "Ollama Summarize", "type": "main", "index": 0 } ]
]
},
"Is PDF?": { "main": [[{ "node": "Read PDF", "type": "main", "index": 0 }]] },
"Read PDF": { "main": [[{ "node": "Ollama Summarize", "type": "main", "index": 0 }]] },
"Is DOCX?": { "main": [[{ "node": "Read DOCX", "type": "main", "index": 0 }]] },
"Read DOCX": { "main": [[{ "node": "Ollama Summarize", "type": "main", "index": 0 }]] },
"Is TXT?": { "main": [[{ "node": "Read TXT", "type": "main", "index": 0 }]] },
"Read TXT": { "main": [[{ "node": "Ollama Summarize", "type": "main", "index": 0 }]] },
"Ollama Summarize": { "main": [[{ "node": "Slack Send", "type": "main", "index": 0 }]] }
}
}
```
---
# 테스트 해보기!
1. **PDF 파일 첨부해서 이메일 보내기**
```
To: 너의 Gmail
Subject: 계약서 검토 부탁
첨부: contract.pdf (내용: "계약 기간 1년, 비용 500만원...")
```
2. **1분 후 → Slack**
```
새 첨부파일 요약
[계약서] 계약 기간은 1년이며, 총 비용은 [500만원]입니다.
_파일: contract.pdf_
_보낸 사람: client@company.com_
```
---
# 문제 해결
| 에러 | 해결법 |
|------|--------|
| `text is undefined` | `readBinaryFile` 후 `text` 필드 확인 |
| `PDF parsing failed` | PDF가 스캔본? → OCR 필요 (Tesseract 추가) |
| `File too big` | `n8n` 메모리 늘리기: `docker run -e N8N_HOST_MEMORY=4G ...` |
---
# 보너스: **OCR로 스캔 PDF도 읽기** (고급)
```json
{
"parameters": {
"operation": "ocr",
"binaryPropertyName": "data"
},
"name": "Tesseract OCR",
"type": "n8n-nodes-base.tesseract"
}
```
---
# ELI5 요약
| 너가 하는 일 | 마법 |
|-------------|------|
| 1. Gmail → 첨부파일 다운 | 선물 열기 |
| 2. Router → PDF/DOCX/TXT 분류 | 선물 종류 맞추기 |
| 3. 각 Reader → 텍스트 | 선물 내용 읽기 |
| 4. Ollama → 요약 | 한 줄로 줄이기 |
| 5. Slack → 전송 | 친구한테 말해주기 |
---
**다음에 원해?**
- “OCR로 스캔 문서 읽기”
- “파일 자동 저장 (Google Drive)”
- “요약을 이메일로 자동 답장”
말만 해! **JSON + 스크린샷 + ELI5**로 바로 줄게!
댓글 없음:
댓글 쓰기