이 글은 누구를 위한 것인가
- 반복적인 AI 작업(요약, 분류, 생성)을 자동화하고 싶은 팀
- 코드 없이 LLM 파이프라인을 만들고 싶은 비개발자
- Zapier 대신 오픈소스로 AI 자동화를 구축하려는 팀
들어가며
매일 100개의 고객 피드백을 읽고 분류하는 작업, 매주 경쟁사 기사를 요약하는 작업, 슬랙에 쌓이는 긴 스레드를 정리하는 작업 — 모두 LLM이 할 수 있는 일이다. n8n은 이런 작업을 코드 없이 시각적으로 연결할 수 있는 워크플로우 자동화 도구다.
이 글은 bluefoxdev.kr의 AI 업무 자동화 가이드 를 참고하고, n8n 실전 파이프라인 구축 관점에서 확장하여 작성했습니다. AI 자동화 사례는 bluebutton.kr 에서도 다루고 있습니다.
1. n8n + Claude 기본 연결
[n8n 설치 방법]
Docker (권장):
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
클라우드: n8n.cloud (무료 플랜 있음)
[Claude API 연결]
1. n8n → Settings → Credentials
2. HTTP Request 노드 추가
3. Authentication: Header Auth
Name: x-api-key
Value: {{ $credentials.anthropicApiKey }}
4. URL: https://api.anthropic.com/v1/messages
5. Method: POST
// Claude API 요청 바디 (n8n JSON 표현)
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "{{ $json.input_text }}"
}
]
}
2. 실전 워크플로우 10가지
[워크플로우 목록]
비즈니스 자동화:
1. 고객 이메일 자동 분류 + 우선순위 지정
2. Slack 스레드 자동 요약 → 일일 브리핑
3. 고객 리뷰 감성 분석 + Notion 자동 저장
4. 경쟁사 뉴스 모니터링 + 요약 리포트
콘텐츠 자동화:
5. 블로그 초안 자동 생성 (키워드 → 아웃라인 → 초안)
6. SNS 콘텐츠 재가공 (블로그 → 트위터/링크드인)
7. 회의록 자동 정리 (Zoom 트랜스크립트 → 요약 + 액션 아이템)
데이터 파이프라인:
8. CSV 데이터 자동 분석 + 인사이트 생성
9. 폼 응답 자동 처리 + 개인화 이메일 발송
10. 에러 로그 분석 + Slack 알림
3. 워크플로우 예시: 고객 피드백 분석
[워크플로우 구조]
트리거: Schedule (매일 오전 9시)
↓
Google Sheets: 전날 수집된 피드백 읽기
↓
Split in Batches: 10개씩 배치 처리
↓
HTTP Request (Claude API): 감성 분석 + 분류
↓
Switch: 분류 결과에 따라 분기
├── 긍정 → Notion 페이지에 우수 사례 추가
├── 부정 → Slack #cs-alert 채널 즉시 알림
└── 중립 → 주간 리포트 집계 DB에 저장
↓
Send Email: 일일 감성 분석 리포트
// Claude 감성 분석 프롬프트 (n8n Function 노드)
{
"prompt": "다음 고객 피드백을 분석하세요.\n\n피드백: {{ $json.feedback }}\n\n다음 JSON 형식으로만 답하세요:\n{\"sentiment\": \"positive|negative|neutral\", \"category\": \"배송|상품|서비스|기타\", \"priority\": \"high|medium|low\", \"summary\": \"한 줄 요약\"}"
}
4. 워크플로우 예시: 회의록 자동 정리
[회의록 처리 파이프라인]
트리거: Webhook (Zoom 회의 종료 이벤트)
↓
HTTP Request: Zoom API → 트랜스크립트 다운로드
↓
Function: 텍스트 전처리 (화자 레이블 정리)
↓
HTTP Request (Claude API): 구조화된 요약 생성
↓
Notion: 회의록 페이지 자동 생성
↓
Slack: 참석자들에게 회의록 링크 공유
↓
Google Calendar: 다음 액션 아이템 일정 추가
# n8n Code 노드 (Python-like JavaScript)
# Claude 응답을 파싱하여 구조화
const claudeResponse = $json.content[0].text;
// JSON 응답 파싱
let parsed;
try {
parsed = JSON.parse(claudeResponse);
} catch {
parsed = {
summary: claudeResponse,
action_items: [],
decisions: [],
participants: []
};
}
return {
title: `회의록 - ${new Date().toLocaleDateString('ko-KR')}`,
summary: parsed.summary,
action_items: parsed.action_items.map(item => ({
task: item.task,
assignee: item.assignee,
due_date: item.due_date
})),
decisions: parsed.decisions,
created_at: new Date().toISOString()
};
5. 에러 처리 및 운영 팁
[n8n 워크플로우 운영 체크리스트]
에러 처리:
□ Error Trigger 노드: 실패 시 Slack 알림
□ Retry on Error: API 일시 오류 자동 재시도 (3회)
□ Wait 노드: Rate Limit 초과 시 대기
□ Set 노드: 기본값 설정 (null 처리)
성능 최적화:
□ Split in Batches: 대량 데이터는 배치로 분할
□ 동시 실행 제한: 최대 동시 실행 수 설정
□ 캐싱: 동일 입력 재처리 방지
모니터링:
□ Execution History: 실행 이력 확인
□ Webhook URL: 외부 모니터링 연동
□ Email on Error: 중요 워크플로우 실패 알림
비용 절감:
□ Claude Haiku: 단순 분류·요약에 사용
□ Batching: 여러 항목을 하나의 프롬프트로
□ 실행 스케줄: 트래픽 적은 시간대 실행
// Rate Limit 처리 (n8n Function 노드)
// Claude API는 분당 토큰 한도가 있으므로 대량 처리 시 필요
const items = $input.all();
const BATCH_SIZE = 5;
const DELAY_MS = 2000; // 2초 간격
const results = [];
for (let i = 0; i < items.length; i += BATCH_SIZE) {
const batch = items.slice(i, i + BATCH_SIZE);
// 배치 처리
for (const item of batch) {
results.push(item);
}
// 마지막 배치가 아니면 대기
if (i + BATCH_SIZE < items.length) {
await new Promise(resolve => setTimeout(resolve, DELAY_MS));
}
}
return results;
마무리
n8n + LLM 조합은 "자동화 가능하지만 아직 사람이 하고 있는 반복 작업"을 발굴하는 것이 핵심이다. 고객 피드백 분류, 회의록 정리, 이메일 우선순위 지정 — 이런 작업들은 LLM이 80-90% 수준으로 처리할 수 있다.
자동화가 100% 정확하지 않아도 된다. "완벽하게 자동화"보다 "사람이 검토 시간을 80% 줄이는 반자동화"가 더 현실적이고 빠르다.