📖 전체 가이드📖 Full Guide

🚀 시작하기Getting Started

  • Cloud n8n.io 가입 → 워크플로우 즉시 시작. 설치 불필요. Sign up at n8n.io → run workflows instantly. No setup.
  • Docker
    docker run -it --rm \ -p 5678:5678 \ -v n8n_data:/home/node/.n8n \ n8nio/n8n
    localhost:5678 접속 → open localhost:5678
  • npm
    npx n8n

🧩 핵심 개념Core Concepts

Workflow 노드들의 연결 흐름. 자동화의 단위. Connected flow of nodes. Unit of automation.
Node 하나의 작업 블록. 트리거·앱·로직. A single action block — trigger, app, or logic.
Trigger 워크플로우를 시작시키는 특수 노드. Special node that starts a workflow.
Execution 워크플로우가 한 번 실행된 것. 로그 확인 가능. One run of a workflow. Logs are stored.
Item 노드 사이를 흐르는 데이터 한 줄 ($json). One row of data flowing between nodes ($json).
Credentials 외부 서비스 인증 정보. 한 번 저장 후 재사용. Auth tokens/keys. Save once, reuse everywhere.

⌨️ 필수 단축키Essential Shortcuts

Win Ctrl  /  Mac ⌘ Cmd
  • Tab 노드 추가Add node
  • Ctrl/+Enter 워크플로우 실행Execute workflow
  • Ctrl/+S 저장Save
  • Ctrl/+Z 실행 취소Undo
  • Ctrl/+A 전체 선택Select all
  • Ctrl/+C/V 복사 / 붙여넣기Copy / Paste
  • D 노드 복제Duplicate node
  • F2 노드 이름 변경Rename node
  • Ctrl/+F 노드 검색Search nodes
  • Space+드래그drag 캔버스 이동Pan canvas
  • Ctrl/+Shift+E 실행 목록Execution list
  • Esc 패널 닫기Close panel

트리거 3종3 Core Triggers

🖱️ Manual Trigger
버튼으로 직접 실행. 테스트·디버깅에 필수.
Run manually with a button. Essential for testing.
🕐 Schedule Trigger
크론 표현식으로 반복 실행.
0 9 * * 1-5 = 평일 오전 9시
Run on a schedule via cron expression.
0 9 * * 1-5 = weekdays 9 AM
🌐 Webhook Trigger
외부 HTTP 요청으로 실행. 고유 URL 자동 생성.
POST /webhook/<uuid>로 데이터 수신.
Triggered by external HTTP request. Auto URL.
POST /webhook/<uuid> to receive data.

🧱 많이 쓰는 노드 88 Must-Know Nodes

HTTP Request 외부 API 호출 (GET/POST/PUT…) Call any external API
Edit Fields 필드 추가·수정·삭제 (구 Set 노드) Add / edit / remove fields (ex-Set node)
IF 조건 분기 → true / false 두 경로 Condition → two output branches
Filter 조건에 맞는 아이템만 통과 Pass only items matching a condition
Merge 두 브랜치를 하나로 합침 Combine two branches into one
Split Out 배열 → 개별 아이템으로 분리 Array → individual items
Code JavaScript로 자유로운 데이터 처리 Custom JS data transformation
Loop Over Items 아이템 하나씩 순차 처리 (배치 실행) Process items one-by-one in batches

✏️ 표현식 기본Expression Basics

  • {{ $json.field }}
    현재 아이템 필드 접근 Access current item field
  • {{ $node["노드명"].json.field }}
    특정 노드 출력 참조 Reference a specific node's output
  • {{ $now.toFormat('yyyy-MM-dd') }}
    오늘 날짜 포맷 (Luxon 사용) Format today's date (uses Luxon)
  • {{ $json.score > 80 ? '합격' : '불합격' }}
    삼항 조건 (true값 : false값) Ternary condition
  • {{ $input.all().length }}
    전체 아이템 개수 반환 Total number of input items

💡 노드 파라미터 창에서 {{ }} 입력 시 표현식 모드 활성화 💡 Type {{ }} in any node field to enable expression mode

🔐 자격 증명(Credentials)Credentials

API Key
헤더/쿼리로 키를 전달. Header: Authorization: Bearer …
Pass key via header/query. Authorization: Bearer …
OAuth2
Google·Slack 등. n8n이 토큰 갱신 자동 처리.
Google, Slack etc. n8n auto-refreshes tokens.
환경 변수 / Env Var
민감 정보를 N8N_CUSTOM_ENV로 주입 후 표현식에서 {{ $env.VAR }} 사용.
Inject secrets as env vars, use {{ $env.VAR }} in expressions.

📍 등록 위치: 우측 상단 → Credentials → New 📍 Where: top-right menu → Credentials → New

🛡️ 에러 처리 3가지Error Handling × 3

  • Retry on Fail 실패 시 자동 재시도 (횟수·간격 설정 가능) Auto-retry on failure (set count & interval)
  • Continue on Fail 에러 아이템을 error 필드로 넘겨 계속 진행 Pass failed items with error field, keep going
  • Error Trigger 별도 에러 전용 워크플로우 연결. Slack·이메일 알림에 활용. Link a dedicated error workflow for Slack/email alerts.

📍 노드 설정 → Settings 탭에서 Retry/Continue 활성화 📍 Node → Settings tab to enable Retry / Continue

💡 초보자 팁 55 Beginner Tips

  • Pinned Data로 실제 API 응답을 고정해두면 매번 외부 호출 없이 노드를 테스트할 수 있어요. Pin Data on a node to test downstream without re-calling the API every time.
  • Execute Once를 켜면 아이템이 여러 개여도 노드를 딱 한 번만 실행합니다 (알림 발송 등). Enable Execute Once to run a node once regardless of item count (e.g. send notification).
  • 큰 워크플로우는 작은 서브 워크플로우로 나누고 Execute Workflow 노드로 호출하세요. Split large workflows into sub-workflows and call them with Execute Workflow.
  • 먼저 Manual Trigger로 만들고, 완성 후 Schedule/Webhook으로 교체하면 디버깅이 쉬워요. Build with Manual Trigger first, then swap to Schedule/Webhook once it works.
  • n8n.io/workflows의 템플릿 검색으로 비슷한 워크플로우를 찾아 시작점으로 활용하세요. Search n8n.io/workflows for templates — great starting points.

🔗 리소스Resources

🤖 AI 에이전트AI Agents

AI Agent LLM이 도구를 자율 선택·실행. 핵심 오케스트레이터. LLM autonomously picks & runs tools.
Chat Model OpenAI / Anthropic / Gemini 등 LLM 연결. Connect OpenAI, Anthropic, Gemini, etc.
Memory Window / Vector Store로 대화 컨텍스트 유지. Window / Vector Store for conversation context.
Tool HTTP Request·Code·Workflow를 에이전트 도구로 등록. Register HTTP / Code / Workflow as agent tools.
Vector Store 문서 임베딩 저장·검색 (RAG 파이프라인). Store & search embeddings for RAG pipelines.

💡 노드 추가 → AI 카테고리에서 모두 확인 가능 💡 Add node → AI category to browse all AI nodes

✏️✚ 고급 표현식Advanced Expressions

  • {{ $input.all().map(i => i.json.name) }}
    전체 아이템에서 name 배열 추출 Extract name array from all items
  • {{ $input.all().filter(i => i.json.score > 80) }}
    조건 필터링 (Code 노드 없이) Filter in-expression (no Code node needed)
  • {{ $json.tags.join(', ') }}
    배열을 문자열로 합치기 Join array to string
  • {{ $now.minus({ days: 7 }).toISO() }}
    7일 전 ISO 타임스탬프 (Luxon) ISO timestamp 7 days ago (Luxon)
  • {{ $json.text?.replace(/\n/g, ' ') ?? '' }}
    정규식 치환 + 옵셔널 체이닝 Regex replace + optional chaining

🔄 서브 워크플로우Sub-Workflows

Execute Workflow
다른 워크플로우를 호출하고 결과를 받아옴. 재사용 모듈화에 핵심.
Call another workflow and receive its output. Key to modular design.
Execute Workflow Trigger
서브 워크플로우의 진입점. 부모에서 데이터를 받아 시작.
Entry point for sub-workflows. Receives data from the caller.
패턴Pattern
메인 워크플로우Execute Workflow서브: 데이터 정제
공통 로직(알림, DB 저장)을 서브로 분리해 여러 워크플로우에서 재사용.
MainExecute WorkflowSub: data cleanse
Extract shared logic (notify, save) into sub-workflows and reuse.

📦 커뮤니티 노드Community Nodes

설치 방법
How to install
Settings → Community Nodes → Install → npm 패키지명 입력
Settings → Community Nodes → Install → enter npm package name
n8n-nodes-browserless 브라우저 자동화·스크래핑 Browser automation & scraping
n8n-nodes-langchain LangChain 연동 (내장 통합 전) LangChain integration
n8n-nodes-discord Discord 메시지·이벤트 처리 Discord messages & events
n8n-nodes-firecrawl 웹 크롤링 → 마크다운 변환 Web crawl → markdown conversion

⚠️ Self-hosted 환경에서만 설치 가능 ⚠️ Only available on self-hosted instances

🐳 Docker 심화Docker Advanced

  • 환경변수로 설정 Configure via env vars
    -e N8N_BASIC_AUTH_ACTIVE=true \ -e N8N_BASIC_AUTH_USER=admin \ -e N8N_BASIC_AUTH_PASSWORD=secret \ -e N8N_ENCRYPTION_KEY=yourkey32chars
  • 버전 업그레이드 Upgrade version
    docker pull n8nio/n8n docker stop n8n && docker rm n8n # 동일 run 커맨드 재실행
  • 데이터 백업 Backup data
    docker cp n8n:/home/node/.n8n ./n8n-backup

🔒 보안 강화Security Hardening

  • Encryption Key Encryption Key 자격 증명 암호화 키. 반드시 백업. N8N_ENCRYPTION_KEY 환경변수. Encrypts stored credentials. Must back up. Set via N8N_ENCRYPTION_KEY.
  • Basic Auth / SSO 셀프 호스팅: Basic Auth or LDAP/SAML로 접근 제한. Self-hosted: restrict access via Basic Auth or LDAP/SAML.
  • HTTPS Nginx 리버스 프록시 + Let's Encrypt 인증서 사용 권장. Use Nginx reverse proxy + Let's Encrypt certificate.
  • Webhook IP 제한 Webhook IP allow-list N8N_ALLOWED_WEBHOOK_URLS 또는 Nginx에서 특정 IP만 허용. Use N8N_ALLOWED_WEBHOOK_URLS or restrict at Nginx level.
  • 실행 데이터 보존 기간 Execution data retention EXECUTIONS_DATA_MAX_AGE로 오래된 실행 로그 자동 삭제. Auto-delete old execution logs via EXECUTIONS_DATA_MAX_AGE.

n8n 핵심 노드 아이콘 레퍼런스

아이콘으로 노드 한눈에 파악하기

🚀 트리거 노드 — 워크플로우의 시작점
Webhook 트리거
n8n-nodes-base.webhook
외부에서 HTTP 요청이 오면 워크플로우를 시작합니다. 폼 제출, 슬랙 봇, 외부 서비스 이벤트 수신에 사용합니다.
💡 n8n이 고유 URL을 발급해 줌. 그 URL을 외부 서비스에 등록하면 끝.
Schedule Trigger 트리거
n8n-nodes-base.scheduleTrigger
정해진 시간 스케줄(크론)에 따라 자동으로 실행됩니다. 매일 오전 9시 보고서, 매주 월요일 집계 등에 사용합니다.
💡 "매일", "매시간", "매주" 등 자연어 선택 가능.
Manual Trigger 트리거
n8n-nodes-base.manualTrigger
n8n 화면의 "Test workflow" 버튼을 눌러 수동으로 실행합니다. 개발·테스트할 때 필수입니다.
💡 실제 운영 배포 시에는 다른 트리거로 교체.
Error Trigger 트리거
n8n-nodes-base.errorTrigger
다른 워크플로우에서 에러가 발생하면 이 워크플로우를 자동으로 실행합니다. 에러 알림·복구 자동화에 사용합니다.
💡 에러 발생 시 Slack/이메일로 담당자에게 자동 알림 전송 패턴.
Chat Trigger 트리거
@n8n/n8n-nodes-langchain.chatTrigger
채팅 인터페이스를 제공하여 사용자가 채팅으로 워크플로우를 시작합니다. AI 에이전트와 함께 자주 사용합니다.
💡 n8n이 자동으로 채팅 UI를 생성해 줌. 별도 개발 불필요.
⚙️ 데이터 처리 노드 — 데이터를 변환·가공
Edit Fields (Set) 데이터
n8n-nodes-base.set
데이터 필드를 추가·수정·삭제합니다. 값 이름을 바꾸거나, 고정값을 넣거나, 불필요 필드를 제거할 때 씁니다.
💡 워크플로우에서 가장 자주 쓰는 노드. 모든 데이터 정제 작업에 필수.
Code 데이터
n8n-nodes-base.code
JavaScript 또는 Python 코드를 직접 작성합니다. 복잡한 계산, 문자열 처리, 날짜 변환 등 노드로 해결 안 되는 작업에 사용합니다.
💡 AI가 코드를 생성해 주면 복붙. $input.all()로 이전 노드 데이터 접근.
HTTP Request 데이터
n8n-nodes-base.httpRequest
외부 REST API를 호출합니다. n8n에 기본 연동 노드가 없는 서비스도 이 노드로 연결할 수 있습니다.
💡 GET/POST/PUT/DELETE 지원. API Key·Bearer Token 인증 설정 가능.
🔀 흐름 제어 노드 — 분기·반복·대기
IF 흐름제어
n8n-nodes-base.if
조건에 따라 흐름을 두 갈래(True/False)로 나눕니다. "상태가 '승인'이면 A 처리, 아니면 B 처리" 같은 분기에 사용합니다.
💡 True/False 두 개의 출력 연결점이 생김.
Switch 흐름제어
n8n-nodes-base.switch
여러 조건에 따라 3개 이상의 경로로 분기합니다. 부서별·유형별로 다르게 처리할 때 IF 대신 사용합니다.
💡 조건이 3개 이상이면 IF 대신 Switch가 더 깔끔함.
Merge
Merge 흐름제어
n8n-nodes-base.merge
여러 경로에서 온 데이터를 하나로 합칩니다. 두 API 결과를 합치거나, 분기된 흐름을 다시 합칠 때 사용합니다.
💡 Combine(합치기), Append(이어붙이기), Wait(모두 도착 후) 등 방식 선택 가능.
Loop Over Items 흐름제어
n8n-nodes-base.splitInBatches
많은 데이터를 한 번에 처리하지 않고 N개씩 나눠서 반복 처리합니다. 대용량 처리, API 호출 제한 우회에 사용합니다.
💡 100개 항목을 10개씩 10번 나눠서 처리하는 루프.
Wait 흐름제어
n8n-nodes-base.wait
일정 시간 대기하거나, 특정 시각 또는 외부 신호(Webhook)를 받을 때까지 흐름을 중단합니다.
💡 이메일 발송 후 1시간 대기, 그 후 후속 조치 자동화에 활용.
Stop and Error 흐름제어
n8n-nodes-base.stopAndError
워크플로우를 강제로 중단하고 에러 메시지를 남깁니다. 필수 데이터가 없거나 조건 미충족 시 명시적으로 실패 처리할 때 사용합니다.
💡 에러 메시지 직접 지정 가능. Error Trigger 워크플로우와 연계.
No Operation 흐름제어
n8n-nodes-base.noOp
아무 작업도 하지 않고 데이터를 그대로 통과시킵니다. IF 노드 분기 중 연결할 곳이 없을 때 임시 연결점으로 사용합니다.
💡 흐름 제어용 플레이스홀더. 실행에 영향 없음.
📋 워크플로우 관리 노드
Execute Sub-workflow 워크플로우
n8n-nodes-base.executeWorkflow
다른 워크플로우를 호출(실행)합니다. 공통 로직을 별도 워크플로우로 분리하고 여러 곳에서 재사용할 때 사용합니다.
💡 "슬랙 알림 보내기" 워크플로우를 만들어두고 여러 워크플로우에서 호출.
Sticky Note 워크플로우
n8n-nodes-base.stickyNote
워크플로우 캔버스에 메모를 남깁니다. 노드 구간에 설명을 달아 팀원들이 이해하기 쉽게 합니다.
💡 실제 실행에는 영향 없는 순수 주석 노드. 색상 변경 가능.
🤖 AI 노드 — LLM·에이전트
AI Agent AI
@n8n/n8n-nodes-langchain.agent
LLM이 도구(Tool)를 스스로 선택해 가며 작업을 수행하는 에이전트입니다. Chat Trigger와 함께 사용해 챗봇을 만들 수 있습니다.
💡 아래에 LLM 모델 노드(OpenAI 등)와 Tool 노드를 연결해서 구성.
OpenAI
OpenAI AI
n8n-nodes-base.openAi
OpenAI GPT 모델을 직접 호출합니다. 텍스트 생성, 분류, 요약, 이미지 생성(DALL-E) 등에 사용합니다.
💡 AI Agent 없이 단순 LLM 호출만 필요할 때 이 노드 사용.
🔌 주요 앱 연동 노드 — HR 실무에서 자주 쓰는 서비스
Gmail
Gmail 앱 연동
n8n-nodes-base.gmail
Gmail로 이메일을 보내거나 받은 메일을 읽습니다. 인사 공지, 면접 일정 안내, 자동 회신 등에 활용합니다.
💡 OAuth2로 회사 계정 연결. CC/BCC, 첨부파일 모두 지원.
Google Sheets
Google Sheets 앱 연동
n8n-nodes-base.googleSheets
구글 스프레드시트에서 데이터를 읽거나 씁니다. HR 데이터베이스, 설문 결과, 교육 이수 현황 관리에 활용합니다.
💡 행 추가·업데이트·삭제, 전체 시트 읽기 모두 가능.
Slack
Slack 앱 연동
n8n-nodes-base.slack
슬랙 채널에 메시지를 보내거나, 슬랙 이벤트를 워크플로우 트리거로 사용합니다. 업무 알림 자동화의 핵심입니다.
💡 채용 확정 시 → 담당자 슬랙 알림 자동 발송 패턴.
Notion
Notion 앱 연동
n8n-nodes-base.notion
노션 데이터베이스에 페이지를 추가하거나 조회합니다. 채용 현황, 온보딩 체크리스트, HR 문서 관리에 활용합니다.
💡 노션 DB를 HR 데이터 허브로 쓰고 n8n으로 자동 업데이트.
Microsoft Teams
Microsoft Teams 앱 연동
n8n-nodes-base.microsoftTeams
MS Teams 채널에 메시지를 보냅니다. Slack 대신 Teams를 사용하는 기업 환경에서 알림 자동화에 사용합니다.
💡 O365 계정 OAuth2 연결 필요. Teams 사용 기업의 알림 자동화에 적합.
Microsoft Outlook
Microsoft Outlook 앱 연동
n8n-nodes-base.microsoftOutlook
Outlook 이메일을 보내거나 읽습니다. 사내 Exchange/O365 이메일로 자동 발송할 때 Gmail 대신 사용합니다.
💡 O365 환경의 대기업에서 Gmail 대신 사용하는 이메일 노드.
📌 한눈에 보는 요약표 — HR 활용 예시 포함
노드역할 한 줄 요약HR 활용 예시
Webhook외부 HTTP 요청 수신 → 시작채용 지원서 제출 시 자동 처리
Schedule Trigger정해진 시간에 자동 실행매주 월요일 인력 현황 보고서 생성
Manual Trigger버튼 클릭으로 수동 실행개발·테스트 시 즉시 실행
Error Trigger에러 발생 시 자동 실행워크플로우 실패 시 담당자 슬랙 알림
Chat Trigger채팅 UI로 워크플로우 시작HR 정책 Q&A 챗봇 인터페이스
Edit Fields (Set)데이터 필드 추가·수정·삭제사원번호 형식 통일, 불필요 필드 제거
CodeJS/Python 코드 직접 실행복잡한 날짜 계산, 문자열 파싱
HTTP Request외부 API 호출사내 ERP API에서 인사 데이터 가져오기
IF조건 분기 (True / False)승인 상태에 따라 다른 메일 발송
Switch다중 조건 분기 (3개 이상)부서별로 다른 온보딩 프로세스 실행
Merge여러 경로 데이터를 하나로 합침인사DB + 급여DB 정보를 합쳐 보고서 생성
Loop Over Items대량 데이터를 N개씩 나눠 처리임직원 1,000명에게 순차 메일 발송
Wait일정 시간 대기 후 계속 실행이메일 발송 후 1시간 대기 → 후속 조치
Stop and Error강제 중단 및 에러 메시지필수 데이터 누락 시 명시적 실패 처리
Execute Sub-workflow다른 워크플로우 호출공통 알림 로직 분리 후 재사용
AI AgentLLM이 스스로 도구를 선택해 실행HR 정책 Q&A 챗봇, 채용 공고 초안 작성
Google Sheets구글 스프레드시트 읽기/쓰기설문 결과 자동 집계, 교육 이수 현황 업데이트
Teams / OutlookO365 메시지·이메일 발송O365 기반 기업 내 자동 알림 발송
Sticky Note캔버스 메모 (실행에 영향 없음)워크플로우 설명, 담당자 정보 기록