기반 경로:
n8n/packages/nodes-base/nodes/,n8n/packages/@n8n/nodes-langchain/nodes/
생성일: 2026-02-04
소스: 실제*.node.ts파일에서 추출
[T]= Trigger 노드,[LC]= LangChain 패키지 노드
워크플로우 실행을 시작하는 트리거 노드들.
| 노드 클래스 | 설명 | 클래스 구현 | 메서드 | 출력 타입 | 특징 | 파일 경로 |
|---|---|---|---|---|---|---|
ManualTrigger | 수동으로 실행 시작 | ManualTrigger implements INodeType | trigger | Main | manualTriggerFunction 제공, 최대 1개 | nodes-base/nodes/ManualTrigger/ManualTrigger.node.ts |
ScheduleTrigger | 시간 기반 반복 실행 (Cron) | ScheduleTrigger implements INodeType | trigger | Main | Cron 표현식, 타임존 지원 | nodes-base/nodes/Schedule/ScheduleTrigger.node.ts |
Cron | Cron 표현식으로 반복 실행 (레거이시) | Cron implements INodeType | trigger | Main | 레거이시, ScheduleTrigger 사용 권장 | nodes-base/nodes/Cron/Cron.node.ts |
Interval | 일정 간격 반복 실행 (레거이시) | Interval implements INodeType | trigger | Main | 레거이시, ScheduleTrigger 사용 권장 | nodes-base/nodes/Interval/Interval.node.ts |
Webhook | HTTP 요청 수신 시 실행 | Webhook implements INodeType | webhook | Main | GET/POST/DELETE 등, 인증 지원 | nodes-base/nodes/Webhook/Webhook.node.ts |
HttpRequest | 외부 HTTP 요청 수신 및 응답 | HttpRequest implements INodeType | webhook | Main | 범용 HTTP 엔드포인트 | nodes-base/nodes/HttpRequest/ |
N8nTrigger | n8n 내부 이벤트로 트리거 | N8nTrigger implements INodeType | trigger | Main | 워크플로우 활성화/비활성화 등 | nodes-base/nodes/N8nTrigger/N8nTrigger.node.ts |
ErrorTrigger | 다른 워크플로우의 에러 발생 시 실행 | ErrorTrigger implements INodeType | trigger | Main | 에러 핸들링 워크플로우 | nodes-base/nodes/ErrorTrigger/ErrorTrigger.node.ts |
WorkflowTrigger | 다른 워크플로우 실행 완료 시 트리거 | WorkflowTrigger implements INodeType | trigger | Main | 워크플로우 체이닝 | nodes-base/nodes/WorkflowTrigger/WorkflowTrigger.node.ts |
LocalFileTrigger | 로컬 파일 변경 감지 시 실행 | LocalFileTrigger implements INodeType | trigger | Main | chokidar 사용, 파일 시스템 감시 | nodes-base/nodes/LocalFileTrigger/LocalFileTrigger.node.ts |
SseTrigger | Server-Sent Events 수신 시 실행 | SseTrigger implements INodeType | trigger | Main | SSE 스트림 수신 | nodes-base/nodes/SseTrigger/SseTrigger.node.ts |
SimulateTrigger | 테스트용 모의 트리거 | SimulateTrigger implements INodeType | trigger | Main | 테스트/디버깅용 | nodes-base/nodes/Simulate/SimulateTrigger.node.ts |
ChatTrigger [LC] | 챗 메시지로 워크플로우 트리거 | ChatTrigger implements INodeType | webhook | Main | n8n Chat 위젯 연동 | @n8n/nodes-langchain/nodes/trigger/ChatTrigger/ChatTrigger.node.ts |
ManualChatTrigger [LC] | 수동 챗 트리거 (테스트용) | ManualChatTrigger implements INodeType | trigger | Main | 챗봇 테스트용 | @n8n/nodes-langchain/nodes/trigger/ManualChatTrigger/ManualChatTrigger.node.ts |
McpTrigger [LC] | MCP 프로토콜로 트리거 | McpTrigger implements INodeType | webhook | Main | Model Context Protocol | @n8n/nodes-langchain/nodes/trigger/McpTrigger/McpTrigger.node.ts |
트리거 노드 공통 특징:
- 모든 트리거는
ITriggerFunctions또는IWebhookFunctions구현- 입력 없음 (
inputs: [])trigger()또는webhook()메서드로 실행 시작manualTriggerFunction제공 시 수동 테스트 실행 가능
워크플로우 내 조건 분기, 루프, 병합 등의 흐름 로직.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
If / IfV1 / IfV2 | 조건 평가 후 참/거짓 분기 | nodes-base/nodes/If/ |
Switch / SwitchV1 / SwitchV2 / SwitchV3 | 다중 조건 분기 (switch-case) | nodes-base/nodes/Switch/ |
Filter / FilterV1 / FilterV2 | 아이템 단위 조건 필터링 | nodes-base/nodes/Filter/ |
Merge / MergeV1 / MergeV2 / MergeV3 | 여러 입력 스트림 병합 | nodes-base/nodes/Merge/ |
SplitInBatches / V1 / V2 / V3 | 아이템을 배치 단위로 분할 처리 | nodes-base/nodes/SplitInBatches/ |
Wait | 지정된 시간 또는 외부 응답까지 대기 | nodes-base/nodes/Wait/Wait.node.ts |
StopAndError | 워크플로우를 강제 중단하고 에러 반환 | nodes-base/nodes/StopAndError/StopAndError.node.ts |
Flow / FlowTrigger [T] | 단순 흐름 전달 및 트리거 | nodes-base/nodes/Flow/ |
CompareDatasets | 두 데이터셋 비교 및 차이 도출 | nodes-base/nodes/CompareDatasets/CompareDatasets.node.ts |
RespondToWebhook | 대기 중인 Webhook 실행에 응답 반환 | nodes-base/nodes/RespondToWebhook/RespondToWebhook.node.ts |
ExecuteWorkflow | 서브워크플로우 호출 및 실행 | nodes-base/nodes/ExecuteWorkflow/ExecuteWorkflow.node.ts |
ExecuteWorkflowTrigger [T] | 서브워크플로우 완료 시 트리거 | nodes-base/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.ts |
입출력 데이터의 형태, 구조, 내용을 변환하는 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Set / SetV1 / SetV2 | 필드 추가/수정/제거 | nodes-base/nodes/Set/ |
RenameKeys | 필드 키 이름 변경 | nodes-base/nodes/RenameKeys/RenameKeys.node.ts |
ItemLists / V1 / V2 / V3 | 리스트와 단일 아이템 간 변환 (Split/Merge) | nodes-base/nodes/ItemLists/ |
Aggregate | 여러 아이템을 하나로 집계 | nodes-base/nodes/Aggregate/Aggregate.node.ts |
Limit | 아이템 수를 제한 | nodes-base/nodes/Limit/Limit.node.ts |
Sort | 아이템 정렬 | nodes-base/nodes/Sort/Sort.node.ts |
SplitOut | 하나의 아이템을 여러 아이템으로 분할 | nodes-base/nodes/SplitOut/SplitOut.node.ts |
Summarize | 아이템을 요약/집계하여 통계 생성 | nodes-base/nodes/Summarize/Summarize.node.ts |
RemoveDuplicates / V1 / V2 | 중복 아이템 제거 | nodes-base/nodes/RemoveDuplicates/ |
DateTime / DateTimeV1 / DateTimeV2 | 날짜/시간 형식 변환 및 계산 | nodes-base/nodes/DateTime/ |
Crypto | 암호화/복호화 및 해시 생성 | nodes-base/nodes/Crypto/Crypto.node.ts |
Jwt | JWT 토큰 생성 및 검증 | nodes-base/nodes/Jwt/Jwt.node.ts |
Totp | TOTP 코드 생성 및 검증 | nodes-base/nodes/Totp/Totp.node.ts |
Xml | XML 파싱 및 변환 | nodes-base/nodes/Xml/Xml.node.ts |
Markdown | Markdown 파싱 및 변환 | nodes-base/nodes/Markdown/Markdown.node.ts |
Html | HTML 생성 및 변환 | nodes-base/nodes/Html/Html.node.ts |
HtmlExtract | HTML에서 특정 요소 추출 | nodes-base/nodes/HtmlExtract/HtmlExtract.node.ts |
Compression | 파일 압축/압축 해제 | nodes-base/nodes/Compression/Compression.node.ts |
MoveBinaryData | 바이너리 데이터를 다른 필드로 이동 | nodes-base/nodes/MoveBinaryData/MoveBinaryData.node.ts |
ExecutionData | 실행 메타데이터 조회 및 변환 | nodes-base/nodes/ExecutionData/ExecutionData.node.ts |
사용자 정의 코드를 직접 실행하는 노드들.
| 노드 클래스 | 설명 | 클래스 구현 | 메서드 | 입출력 타입 | 지원 언어/환경 | 샌드박스 | 파일 경로 |
|---|---|---|---|---|---|---|---|
Code (base) | JavaScript/Python 코드 실행 | Code implements INodeType | execute | Main → Main | JavaScript, Python Beta, Python Native | JavaScriptSandbox, PythonSandbox, JsTaskRunner, PythonTaskRunner | nodes-base/nodes/Code/Code.node.ts |
Function | JavaScript 함수 실행 (레거이시) | Function implements INodeType | execute | Main → Main | JavaScript (vm2) | vm2 (deprecated) | nodes-base/nodes/Function/Function.node.ts |
FunctionItem | 아이템별 JavaScript 함수 실행 (레거이시) | FunctionItem implements INodeType | execute | Main → Main | JavaScript (vm2) | vm2 (deprecated) | nodes-base/nodes/FunctionItem/FunctionItem.node.ts |
ExecuteCommand | OS 커맨드 실행 | ExecuteCommand implements INodeType | execute | Main → Main | Shell commands | None (직접 실행) | nodes-base/nodes/ExecuteCommand/ExecuteCommand.node.ts |
Code [LC] | LangChain 컨텍스트에서 코드 실행 | Code implements INodeType | execute, supplyData | Dynamic AI Types | JavaScript | JavaScriptSandbox (from nodes-base) | @n8n/nodes-langchain/nodes/code/Code.node.ts |
Code 노드 상세:
nodes-base/Code 노드
- 실행 모드:
runOnceForAllItems: 전체 아이템을 한번에 처리runOnceForEachItem: 각 아이템마다 개별 실행- 샌드박스 종류:
JavaScriptSandbox: V8 Isolate 기반 안전한 실행 환경JsTaskRunnerSandbox: Task Runner를 통한 격리 실행PythonSandbox: Python 코드 실행 환경PythonTaskRunnerSandbox: Python Task Runner 실행- 사용 가능 객체:
$items,$input,$json,$binary,$itemIndex,$runIndex,$now, 등- 의존성 주입:
@n8n/diContainer를 통한 설정 관리@n8n/nodes-langchain/Code 노드
- 동적 입출력: 사용자 정의 연결 타입 지원
- 입력: AiChain, AiDocument, AiEmbedding, AiLanguageModel, AiMemory, AiOutputParser, AiTextSplitter, AiTool, AiVectorStore, Main
- 출력: 동일한 타입 지원
- 실행 방식:
execute: 일반 워크플로우 노드로 실행supplyData: AI 컴포넌트로 실행 (Tool, Chain 등 반환)- LangChain 통합:
@langchain/core/tools(Tool 클래스) 사용- 레거시 호환:
langchain→@langchain/classic자동 변환
외부 API와의 HTTP 요청/응답을 담당하는 범용 노드.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
HttpRequest / HttpRequestV1 / V2 / V3 | 범용 HTTP 요청 (GET/POST/PUT/DELETE 등) | nodes-base/nodes/HttpRequest/ |
GraphQL | GraphQL 쿼리 및 뮤테이션 실행 | nodes-base/nodes/GraphQL/GraphQL.node.ts |
Webhook | Webhook 요청 수신 및 응답 | nodes-base/nodes/Webhook/Webhook.node.ts |
파일 읽기, 쓰기, 변환을 담당하는 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
ReadBinaryFile | 단일 파일 읽기 | nodes-base/nodes/ReadBinaryFile/ReadBinaryFile.node.ts |
ReadBinaryFiles | 여러 파일 읽기 | nodes-base/nodes/ReadBinaryFiles/ReadBinaryFiles.node.ts |
WriteBinaryFile | 파일 쓰기 | nodes-base/nodes/WriteBinaryFile/WriteBinaryFile.node.ts |
ConvertToFile | 데이터를 파일로 변환 | nodes-base/nodes/ConvertToFile/ConvertToFile.node.ts |
ExtractFromFile | 파일에서 데이터 추출 | nodes-base/nodes/ExtractFromFile/ExtractFromFile.node.ts |
ReadWriteFile | 파일 읽기/쓰기 종합 노드 | nodes-base/nodes/ReadWriteFile/ReadWriteFile.node.ts |
ReadPDF | PDF 파일 파싱 및 텍스트 추출 | nodes-base/nodes/ReadPdf/ReadPDF.node.ts |
SpreadsheetFile / V1 / V2 | Excel/CSV 파일 읽기·쓰기 | nodes-base/nodes/SpreadsheetFile/ |
ICalendar | iCalendar (.ics) 파일 파싱 | nodes-base/nodes/ICalendar/ICalendar.node.ts |
이메일 발송 및 수신을 담당하는 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
EmailSend / V1 / V2 | SMTP를 통한 이메일 발송 | nodes-base/nodes/EmailSend/ |
EmailReadImap / V1 / V2 | IMAP을 통한 이메일 수신 및 읽기 | nodes-base/nodes/EmailReadImap/ |
Mailgun | Mailgun API로 이메일 발송 | nodes-base/nodes/Mailgun/Mailgun.node.ts |
SendGrid | SendGrid API로 이메일 발송 | nodes-base/nodes/SendGrid/SendGrid.node.ts |
Mandrill | Mandrill(Mailchimp) API로 이메일 발송 | nodes-base/nodes/Mandrill/Mandrill.node.ts |
Postmark / PostmarkTrigger [T] | Postmark API 이메일 발송 및 Webhook | nodes-base/nodes/Postmark/ |
Sendy | Sendy 이메일 마케팅 API | nodes-base/nodes/Sendy/Sendy.node.ts |
메신저 앱과의 통신을 담당하는 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Slack / SlackV1 / SlackV2 / SlackTrigger [T] | Slack 메시지 발송/수신 및 이벤트 | nodes-base/nodes/Slack/Slack.node.ts / V1/SlackV1.node.ts / V2/SlackV2.node.ts / SlackTrigger.node.ts |
Telegram / TelegramTrigger [T] | Telegram Bot API 통신 | nodes-base/nodes/Telegram/Telegram.node.ts / TelegramTrigger.node.ts |
Discord / DiscordV1 / DiscordV2 | Discord Webhook 및 봇 메시지 | nodes-base/nodes/Discord/Discord.node.ts / v1/DiscordV1.node.ts / v2/DiscordV2.node.ts |
MicrosoftTeams / V1 / V2 / MicrosoftTeamsTrigger [T] | Microsoft Teams 메시지 및 이벤트 | nodes-base/nodes/Microsoft/Teams/MicrosoftTeams.node.ts / v1/ / v2/ / MicrosoftTeamsTrigger.node.ts |
Line | LINE Messaging API | nodes-base/nodes/Line/Line.node.ts |
Mattermost / MattermostV1 | Mattermost 메시지 발송 | nodes-base/nodes/Mattermost/Mattermost.node.ts / v1/MattermostV1.node.ts |
Rocketchat | Rocket.Chat 메시지 발송 | nodes-base/nodes/Rocketchat/Rocketchat.node.ts |
Twist | Twist 메시지 발송 | nodes-base/nodes/Twist/Twist.node.ts |
Zulip | Zulip 메시지 발송 | nodes-base/nodes/Zulip/Zulip.node.ts |
Gotify | Gotify 푸시 알림 | nodes-base/nodes/Gotify/Gotify.node.ts |
Matrix | Matrix 프로토콜 메시지 | nodes-base/nodes/Matrix/Matrix.node.ts |
Pushbullet | Pushbullet 푸시 알림 | nodes-base/nodes/Pushbullet/Pushbullet.node.ts |
Pushcut / PushcutTrigger [T] | Pushcut 푸시 알림 및 트리거 | nodes-base/nodes/Pushcut/Pushcut.node.ts / PushcutTrigger.node.ts |
Pushover | Pushover 푸시 알림 | nodes-base/nodes/Pushover/Pushover.node.ts |
Twilio / TwilioTrigger [T] | Twilio SMS/음성 통신 및 Webhook | nodes-base/nodes/Twilio/Twilio.node.ts / TwilioTrigger.node.ts |
Vonage | Vonage(Nexmo) SMS 통신 | nodes-base/nodes/Vonage/Vonage.node.ts |
MessageBird | MessageBird SMS/음성 통신 | nodes-base/nodes/MessageBird/MessageBird.node.ts |
Plivo | Plivo SMS 통신 | nodes-base/nodes/Plivo/Plivo.node.ts |
Mocean | Mocean SMS 통신 | nodes-base/nodes/Mocean/Mocean.node.ts |
Sms77 | Sms77 SMS 통신 | nodes-base/nodes/Sms77/Sms77.node.ts |
Msg91 | Msg91 SMS 통신 | nodes-base/nodes/Msg91/Msg91.node.ts |
WhatsApp / WhatsAppTrigger [T] | WhatsApp Business API | nodes-base/nodes/WhatsApp/WhatsApp.node.ts / WhatsAppTrigger.node.ts |
CiscoWebex / CiscoWebexTrigger [T] | Cisco Webex 메시지 및 이벤트 | nodes-base/nodes/Cisco/Webex/CiscoWebex.node.ts / CiscoWebexTrigger.node.ts |
Signl4 | SIGNL4 알림 발송 | nodes-base/nodes/Signl4/Signl4.node.ts |
Chat [LC] / ChatTrigger [LC] | n8n Chat 위짓 통신 | @n8n/nodes-langchain/nodes/trigger/ChatTrigger/Chat.node.ts / ChatTrigger.node.ts |
메시지 큐, Pub/Sub, MQTT 등 비동기 통신 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Kafka / KafkaTrigger [T] | Apache Kafka 메시지 발송/수신 | nodes-base/nodes/Kafka/Kafka.node.ts / KafkaTrigger.node.ts |
RabbitMQ / RabbitMQTrigger [T] | RabbitMQ 메시지 발송/수신 | nodes-base/nodes/RabbitMQ/RabbitMQ.node.ts / RabbitMQTrigger.node.ts |
Mqtt / MqttTrigger [T] | MQTT 프로토콜 메시지 발송/수신 | nodes-base/nodes/MQTT/Mqtt.node.ts / MqttTrigger.node.ts |
Amqp / AmqpTrigger [T] | AMQP 프로토콜 메시지 발송/수신 | nodes-base/nodes/Amqp/Amqp.node.ts / AmqpTrigger.node.ts |
RssFeedRead / RssFeedReadTrigger [T] | RSS 피드 읽기 및 새 항목 감지 | nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts / RssFeedReadTrigger.node.ts |
클라우드 파일 저장소 및 드라이브와의 연동.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
GoogleDrive / GoogleDriveV1 / GoogleDriveV2 / GoogleDriveTrigger [T] | Google Drive 파일 관리 및 이벤트 | nodes-base/nodes/Google/Drive/GoogleDrive.node.ts / v1/ / v2/ / GoogleDriveTrigger.node.ts |
Dropbox | Dropbox 파일 관리 | nodes-base/nodes/Dropbox/Dropbox.node.ts |
Box / BoxTrigger [T] | Box 파일 관리 및 이벤트 | nodes-base/nodes/Box/Box.node.ts / BoxTrigger.node.ts |
AwsS3 / AwsS3V1 / AwsS3V2 | AWS S3 객체 저장소 | nodes-base/nodes/Aws/S3/AwsS3.node.ts / V1/AwsS3V1.node.ts / V2/AwsS3V2.node.ts |
S3 | S3 호환 저장소 (범용) | nodes-base/nodes/S3/S3.node.ts |
NextCloud | NextCloud 파일 관리 | nodes-base/nodes/NextCloud/NextCloud.node.ts |
Ftp | FTP/SFTP 파일 업로드/다운로드 | nodes-base/nodes/Ftp/Ftp.node.ts |
GoogleCloudStorage | Google Cloud Storage | nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts |
AzureStorage | Azure Blob Storage | nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts |
MicrosoftOneDrive / MicrosoftOneDriveTrigger [T] | Microsoft OneDrive | nodes-base/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.ts / MicrosoftOneDriveTrigger.node.ts |
MicrosoftSharePoint | Microsoft SharePoint | nodes-base/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.ts |
관계형 및 NoSQL 데이터베이스와의 연동.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Postgres / PostgresV1 / V2 / PostgresTrigger [T] | PostgreSQL 쿼리 및 이벤트 | nodes-base/nodes/Postgres/ |
MySql / MySqlV1 / V2 | MySQL 쿼리 | nodes-base/nodes/MySql/ |
MongoDb | MongoDB 문서 조작 | nodes-base/nodes/MongoDb/MongoDb.node.ts |
Redis / RedisTrigger [T] | Redis 키-값 저장소 및 Pub/Sub | nodes-base/nodes/Redis/ |
OracleSql | Oracle 데이터베이스 쿼리 | nodes-base/nodes/Oracle/Sql/OracleSql.node.ts |
MicrosoftSql | Microsoft SQL Server 쿼리 | nodes-base/nodes/Microsoft/Sql/MicrosoftSql.node.ts |
Snowflake | Snowflake 클라우드 DW 쿼리 | nodes-base/nodes/Snowflake/Snowflake.node.ts |
CrateDb | CrateDB 분산 SQL 쿼리 | nodes-base/nodes/CrateDb/CrateDb.node.ts |
QuestDb | QuestDB 시계열 DB 쿼리 | nodes-base/nodes/QuestDb/QuestDb.node.ts |
TimescaleDb | TimescaleDB 시계열 DB 쿼리 | nodes-base/nodes/TimescaleDb/TimescaleDb.node.ts |
Supabase | Supabase (PostgreSQL 기반) API | nodes-base/nodes/Supabase/Supabase.node.ts |
NocoDB | NocoDB 테이블 API | nodes-base/nodes/NocoDB/NocoDB.node.ts |
SeaTable / SeaTableV1 / V2 / SeaTableTrigger [T] | SeaTable 테이블 조작 및 이벤트 | nodes-base/nodes/SeaTable/ |
Stackby | Stackby 테이블 API | nodes-base/nodes/Stackby/Stackby.node.ts |
Baserow | Baserow 테이블 API | nodes-base/nodes/Baserow/Baserow.node.ts |
AzureCosmosDb | Azure Cosmos DB | nodes-base/nodes/Microsoft/AzureCosmosDb/AzureCosmosDb.node.ts |
Ldap | LDAP 디렉토리 조회 | nodes-base/nodes/Ldap/Ldap.node.ts |
Elasticsearch | Elasticsearch 검색 및 인덱싱 | nodes-base/nodes/Elastic/Elasticsearch/Elasticsearch.node.ts |
DataTable | n8n 내장 DataTable | nodes-base/nodes/DataTable/DataTable.node.ts |
고객 관계 관리 및 영업 파이프라인 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Salesforce / SalesforceTrigger [T] | Salesforce CRM | nodes-base/nodes/Salesforce/Salesforce.node.ts / SalesforceTrigger.node.ts |
Hubspot / HubspotV1 / HubspotV2 / HubspotTrigger [T] | HubSpot CRM | nodes-base/nodes/Hubspot/Hubspot.node.ts / V1/HubspotV1.node.ts / V2/HubspotV2.node.ts / HubspotTrigger.node.ts |
Pipedrive / PipedriveTrigger [T] | Pipedrive CRM | nodes-base/nodes/Pipedrive/Pipedrive.node.ts / PipedriveTrigger.node.ts |
Copper / CopperTrigger [T] | Copper CRM | nodes-base/nodes/Copper/Copper.node.ts / CopperTrigger.node.ts |
AgileCrm | Agile CRM | nodes-base/nodes/AgileCrm/AgileCrm.node.ts |
ActiveCampaign / ActiveCampaignTrigger [T] | ActiveCampaign CRM | nodes-base/nodes/ActiveCampaign/ActiveCampaign.node.ts / ActiveCampaignTrigger.node.ts |
FreshworksCrm | Freshworks CRM | nodes-base/nodes/FreshworksCrm/FreshworksCrm.node.ts |
MonicaCrm | Monica CRM | nodes-base/nodes/MonicaCrm/MonicaCrm.node.ts |
Salesmate | Salesmate CRM | nodes-base/nodes/Salesmate/Salesmate.node.ts |
ZohoCrm | Zoho CRM | nodes-base/nodes/Zoho/ZohoCrm.node.ts |
MicrosoftDynamicsCrm | Microsoft Dynamics 365 CRM | nodes-base/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.ts |
Intercom | Intercom 고객 메신저 | nodes-base/nodes/Intercom/Intercom.node.ts |
Drift | Drift 대화형 마케팅 | nodes-base/nodes/Drift/Drift.node.ts |
Gong | Gong 영업 인텔리젠스 | nodes-base/nodes/Gong/Gong.node.ts |
HighLevel / HighLevelV1 / HighLevelV2 | HighLevel CRM | nodes-base/nodes/HighLevel/HighLevel.node.ts / v1/HighLevelV1.node.ts / v2/HighLevelV2.node.ts |
Keap / KeapTrigger [T] | Keap (Infusionsoft) CRM | nodes-base/nodes/Keap/Keap.node.ts / KeapTrigger.node.ts |
Clearbit | Clearbit 회사/사람 데이터 조회 | nodes-base/nodes/Clearbit/Clearbit.node.ts |
Uplead | UpLead B2B 리드 조회 | nodes-base/nodes/Uplead/Uplead.node.ts |
Hunter | Hunter.io 이메일 탐색 | nodes-base/nodes/Hunter/Hunter.node.ts |
Brandfetch | Brandfetch 회사 정보 조회 | nodes-base/nodes/Brandfetch/Brandfetch.node.ts |
Dropcontact | Dropcontact 연락처 정보 강화 | nodes-base/nodes/Dropcontact/Dropcontact.node.ts |
HumanticAi | Humantic AI 퍼서널리티 분석 | nodes-base/nodes/HumanticAI/HumanticAi.node.ts |
프로젝트, 이슈, 작업 관리 도구와의 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Jira / JiraTrigger [T] | Atlassian Jira 이슈 관리 | nodes-base/nodes/Jira/Jira.node.ts / JiraTrigger.node.ts |
Asana / AsanaTrigger [T] | Asana 작업 관리 | nodes-base/nodes/Asana/Asana.node.ts / AsanaTrigger.node.ts |
Trello / TrelloTrigger [T] | Trello 보드/카드 관리 | nodes-base/nodes/Trello/Trello.node.ts / TrelloTrigger.node.ts |
MondayCom | Monday.com 작업 관리 | nodes-base/nodes/MondayCom/MondayCom.node.ts |
ClickUp / ClickUpTrigger [T] | ClickUp 프로젝트 관리 | nodes-base/nodes/ClickUp/ClickUp.node.ts / ClickUpTrigger.node.ts |
Linear / LinearTrigger [T] | Linear 이슈 트래킹 | nodes-base/nodes/Linear/Linear.node.ts / LinearTrigger.node.ts |
Notion / NotionV1 / NotionV2 / NotionTrigger [T] | Notion 페이지·DB 관리 | nodes-base/nodes/Notion/Notion.node.ts / v1/NotionV1.node.ts / v2/NotionV2.node.ts / NotionTrigger.node.ts |
Todoist / TodoistV1 / TodoistV2 | Todoist 작업 관리 | nodes-base/nodes/Todoist/Todoist.node.ts / v1/TodoistV1.node.ts / v2/TodoistV2.node.ts |
MicrosoftToDo | Microsoft To Do | nodes-base/nodes/Microsoft/ToDo/MicrosoftToDo.node.ts |
Toggl / TogglTrigger [T] | Toggl 시간 추적 | nodes-base/nodes/Toggl/TogglTrigger.node.ts |
Clockify / ClockifyTrigger [T] | Clockify 시간 추적 | nodes-base/nodes/Clockify/Clockify.node.ts / ClockifyTrigger.node.ts |
Harvest | Harvest 프로젝트 및 시간 추적 | nodes-base/nodes/Harvest/Harvest.node.ts |
Taiga / TaigaTrigger [T] | Taiga 프로젝트 관리 | nodes-base/nodes/Taiga/Taiga.node.ts / TaigaTrigger.node.ts |
Wekan | Wekan 보드 관리 | nodes-base/nodes/Wekan/Wekan.node.ts |
QuickBase | QuickBase 앱 관리 | nodes-base/nodes/QuickBase/QuickBase.node.ts |
Coda | Coda 문서/테이블 API | nodes-base/nodes/Coda/Coda.node.ts |
Airtable / AirtableV1 / AirtableV2 / AirtableTrigger [T] | Airtable 테이블 조작 및 이벤트 | nodes-base/nodes/Airtable/Airtable.node.ts / v1/AirtableV1.node.ts / v2/AirtableV2.node.ts / AirtableTrigger.node.ts |
폼 제출, 이벤트 등록, 웹비너 등의 이벤트 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Form / FormTrigger / FormTriggerV1 / FormTriggerV2 [T] | n8n 내장 폼 생성 및 제출 수신 | nodes-base/nodes/Form/Form.node.ts / FormTrigger.node.ts / v1/FormTriggerV1.node.ts / v2/FormTriggerV2.node.ts |
FormIoTrigger [T] | Form.io 폼 제출 이벤트 | nodes-base/nodes/FormIo/FormIoTrigger.node.ts |
FormstackTrigger [T] | Formstack 폼 제출 이벤트 | nodes-base/nodes/Formstack/FormstackTrigger.node.ts |
JotFormTrigger [T] | JotForm 폼 제출 이벤트 | nodes-base/nodes/JotForm/JotFormTrigger.node.ts |
TypeformTrigger [T] | Typeform 폼 제출 이벤트 | nodes-base/nodes/Typeform/TypeformTrigger.node.ts |
WufooTrigger [T] | Wufoo 폼 제출 이벤트 | nodes-base/nodes/Wufoo/WufooTrigger.node.ts |
SurveyMonkeyTrigger [T] | SurveyMonkey 응답 이벤트 | nodes-base/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.ts |
KoBoToolbox / KoBoToolboxTrigger [T] | KoBoToolbox 폼 및 이벤트 | nodes-base/nodes/KoBoToolbox/KoBoToolbox.node.ts / KoBoToolboxTrigger.node.ts |
GoToWebinar | GoToWebinar 웹비너 관리 | nodes-base/nodes/GoToWebinar/GoToWebinar.node.ts |
Zoom | Zoom 회의 관리 | nodes-base/nodes/Zoom/Zoom.node.ts |
EventbriteTrigger [T] | Eventbrite 이벤트 관리 | nodes-base/nodes/Eventbrite/EventbriteTrigger.node.ts |
Demio | Demio 웹비너 관리 | nodes-base/nodes/Demio/Demio.node.ts |
CalTrigger [T] | Cal.com 예약 이벤트 | nodes-base/nodes/Cal/CalTrigger.node.ts |
CalendlyTrigger [T] | Calendly 예약 이벤트 | nodes-base/nodes/Calendly/CalendlyTrigger.node.ts |
AcuitySchedulingTrigger [T] | Acuity Scheduling 예약 이벤트 | nodes-base/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.ts |
SNS 및 소셜 미디어 플랫폼과의 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
FacebookGraphApi / FacebookTrigger [T] | Facebook Graph API 및 이벤트 | nodes-base/nodes/Facebook/FacebookGraphApi.node.ts / FacebookTrigger.node.ts |
FacebookLeadAdsTrigger [T] | Facebook Lead Ads 리드 수신 | nodes-base/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.ts |
Twitter / TwitterV1 / TwitterV2 | Twitter(X) API | nodes-base/nodes/Twitter/Twitter.node.ts / V1/TwitterV1.node.ts / V2/TwitterV2.node.ts |
LinkedIn | LinkedIn API | nodes-base/nodes/LinkedIn/LinkedIn.node.ts |
Reddit | Reddit API | nodes-base/nodes/Reddit/Reddit.node.ts |
YouTube | YouTube Data API | nodes-base/nodes/Google/YouTube/YouTube.node.ts |
Strava / StravaTrigger [T] | Strava 피트니스 API | nodes-base/nodes/Strava/Strava.node.ts / StravaTrigger.node.ts |
Spotify | Spotify Web API | nodes-base/nodes/Spotify/Spotify.node.ts |
Medium | Medium 블로그 API | nodes-base/nodes/Medium/Medium.node.ts |
WordPress | WordPress REST API | nodes-base/nodes/Wordpress/Wordpress.node.ts |
PostHog | PostHog 분석 이벤트 | nodes-base/nodes/PostHog/PostHog.node.ts |
소프트웨어 개발, CI/CD, Git 관련 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Github / GithubTrigger [T] | GitHub API 및 Webhook 이벤트 | nodes-base/nodes/Github/Github.node.ts / GithubTrigger.node.ts |
Gitlab / GitlabTrigger [T] | GitLab API 및 Webhook 이벤트 | nodes-base/nodes/Gitlab/Gitlab.node.ts / GitlabTrigger.node.ts |
BitbucketTrigger [T] | Bitbucket Webhook 이벤트 | nodes-base/nodes/Bitbucket/BitbucketTrigger.node.ts |
Git | 로컬 Git 저장소 명령 실행 | nodes-base/nodes/Git/Git.node.ts |
CircleCi | CircleCI CI/CD API | nodes-base/nodes/CircleCi/CircleCi.node.ts |
TravisCi | Travis CI API | nodes-base/nodes/TravisCi/TravisCi.node.ts |
Jenkins | Jenkins CI/CD API | nodes-base/nodes/Jenkins/Jenkins.node.ts |
Npm | npm 패키지 정보 조회 | nodes-base/nodes/Npm/Npm.node.ts |
Netlify / NetlifyTrigger [T] | Netlify 배포 및 이벤트 | nodes-base/nodes/Netlify/Netlify.node.ts / NetlifyTrigger.node.ts |
Cloudflare | Cloudflare API (DNS, Pages 등) | nodes-base/nodes/Cloudflare/Cloudflare.node.ts |
Rundeck | Rundeck 작업 실행 | nodes-base/nodes/Rundeck/Rundeck.node.ts |
Grafana | Grafana 대시보드 및 알림 | nodes-base/nodes/Grafana/Grafana.node.ts |
Splunk / SplunkV1 / SplunkV2 | Splunk 로그 분석 | nodes-base/nodes/Splunk/Splunk.node.ts / v1/SplunkV1.node.ts / v2/SplunkV2.node.ts |
SentryIo | Sentry 에러 모니터링 | nodes-base/nodes/SentryIo/SentryIo.node.ts |
SecurityScorecard | SecurityScorecard 보안 평가 | nodes-base/nodes/SecurityScorecard/SecurityScorecard.node.ts |
UptimeRobot | UptimeRobot 모니터링 | nodes-base/nodes/UptimeRobot/UptimeRobot.node.ts |
결제 처리, 인보이스, 금융 서비스 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Stripe / StripeTrigger [T] | Stripe 결제 및 Webhook | nodes-base/nodes/Stripe/Stripe.node.ts / StripeTrigger.node.ts |
PayPal / PayPalTrigger [T] | PayPal 결제 및 Webhook | nodes-base/nodes/PayPal/PayPal.node.ts / PayPalTrigger.node.ts |
Paddle | Paddle 결제 플랫폼 | nodes-base/nodes/Paddle/Paddle.node.ts |
Chargebee / ChargebeeTrigger [T] | Chargebee 구독 관리 및 Webhook | nodes-base/nodes/Chargebee/Chargebee.node.ts / ChargebeeTrigger.node.ts |
QuickBooks | QuickBooks 회계 API | nodes-base/nodes/QuickBooks/QuickBooks.node.ts |
InvoiceNinja / InvoiceNinjaTrigger [T] | InvoiceNinja 인보이스 관리 | nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts / InvoiceNinjaTrigger.node.ts |
Wise / WiseTrigger [T] | Wise(TransferWise) 환전 | nodes-base/nodes/Wise/Wise.node.ts / WiseTrigger.node.ts |
ProfitWell | ProfitWell 수익 분석 | nodes-base/nodes/ProfitWell/ProfitWell.node.ts |
CoinGecko | CoinGecko 암호화폐 데이터 | nodes-base/nodes/CoinGecko/CoinGecko.node.ts |
Marketstack | Marketstack 주식 시장 데이터 | nodes-base/nodes/Marketstack/Marketstack.node.ts |
Xero | Xero 회계 API | nodes-base/nodes/Xero/Xero.node.ts |
Amazon Web Services 서비스 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
AwsS3 / AwsS3V1 / AwsS3V2 | S3 객체 저장소 | nodes-base/nodes/Aws/S3/AwsS3.node.ts / V1/AwsS3V1.node.ts / V2/AwsS3V2.node.ts |
AwsDynamoDB | DynamoDB NoSQL 테이블 | nodes-base/nodes/Aws/DynamoDB/AwsDynamoDB.node.ts |
AwsLambda | Lambda 함수 호출 | nodes-base/nodes/Aws/AwsLambda.node.ts |
AwsSes | SES 이메일 발송 | nodes-base/nodes/Aws/SES/AwsSes.node.ts |
AwsSns / AwsSnsTrigger [T] | SNS 푸시 알림 및 구독 | nodes-base/nodes/Aws/AwsSns.node.ts / AwsSnsTrigger.node.ts |
AwsSqs | SQS 메시지 큐 | nodes-base/nodes/Aws/SQS/AwsSqs.node.ts |
AwsRekognition | Rekognition 이미지 분석 | nodes-base/nodes/Aws/Rekognition/AwsRekognition.node.ts |
AwsComprehend | Comprehend 텍스트 분석 | nodes-base/nodes/Aws/Comprehend/AwsComprehend.node.ts |
AwsTextract | Textract 문서 텍스트 추출 | nodes-base/nodes/Aws/Textract/AwsTextract.node.ts |
AwsTranscribe | Transcribe 음성 인식 | nodes-base/nodes/Aws/Transcribe/AwsTranscribe.node.ts |
AwsCognito | Cognito 사용자 인증 | nodes-base/nodes/Aws/Cognito/AwsCognito.node.ts |
AwsIam | IAM 권한 관리 | nodes-base/nodes/Aws/IAM/AwsIam.node.ts |
AwsElb | Elastic Load Balancer | nodes-base/nodes/Aws/ELB/AwsElb.node.ts |
AwsCertificateManager | ACM SSL 인증서 관리 | nodes-base/nodes/Aws/CertificateManager/AwsCertificateManager.node.ts |
Google Cloud 및 Workspace 서비스 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
GoogleDrive / GoogleDriveV1 / GoogleDriveV2 / GoogleDriveTrigger [T] | Google Drive | nodes-base/nodes/Google/Drive/GoogleDrive.node.ts / v1/GoogleDriveV1.node.ts / v2/GoogleDriveV2.node.ts / GoogleDriveTrigger.node.ts |
GoogleSheets / GoogleSheetsV1 / GoogleSheetsV2 / GoogleSheetsTrigger [T] | Google Sheets | nodes-base/nodes/Google/Sheet/GoogleSheets.node.ts / v1/GoogleSheetsV1.node.ts / v2/GoogleSheetsV2.node.ts / GoogleSheetsTrigger.node.ts |
GoogleCalendar / GoogleCalendarTrigger [T] | Google Calendar | nodes-base/nodes/Google/Calendar/GoogleCalendar.node.ts / GoogleCalendarTrigger.node.ts |
GoogleAnalytics / GoogleAnalyticsV1 / GoogleAnalyticsV2 | Google Analytics | nodes-base/nodes/Google/Analytics/GoogleAnalytics.node.ts / v1/GoogleAnalyticsV1.node.ts / v2/GoogleAnalyticsV2.node.ts |
GoogleBigQuery / GoogleBigQueryV1 / GoogleBigQueryV2 | Google BigQuery | nodes-base/nodes/Google/BigQuery/GoogleBigQuery.node.ts / v1/GoogleBigQueryV1.node.ts / v2/GoogleBigQueryV2.node.ts |
GoogleContacts | Google Contacts | nodes-base/nodes/Google/Contacts/GoogleContacts.node.ts |
GoogleDocs | Google Docs | nodes-base/nodes/Google/Docs/GoogleDocs.node.ts |
GoogleSlides | Google Slides | nodes-base/nodes/Google/Slides/GoogleSlides.node.ts |
GoogleTasks | Google Tasks | nodes-base/nodes/Google/Tasks/GoogleTasks.node.ts |
GoogleChat | Google Chat | nodes-base/nodes/Google/Chat/GoogleChat.node.ts |
GoogleBooks | Google Books API | nodes-base/nodes/Google/Books/GoogleBooks.node.ts |
GoogleTranslate | Google Translate | nodes-base/nodes/Google/Translate/GoogleTranslate.node.ts |
GoogleCloudNaturalLanguage | Google Cloud NLP | nodes-base/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.ts |
GoogleCloudStorage | Google Cloud Storage | nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts |
GoogleFirebaseCloudFirestore | Firebase Firestore | nodes-base/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.ts |
GoogleFirebaseRealtimeDatabase | Firebase Realtime DB | nodes-base/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.ts |
GooglePerspective | Perspective API (유해 텍스트 감지) | nodes-base/nodes/Google/Perspective/GooglePerspective.node.ts |
GoogleAds | Google Ads API | nodes-base/nodes/Google/Ads/GoogleAds.node.ts |
GoogleBusinessProfile / GoogleBusinessProfileTrigger [T] | Google Business Profile | nodes-base/nodes/Google/BusinessProfile/GoogleBusinessProfile.node.ts / GoogleBusinessProfileTrigger.node.ts |
GSuiteAdmin | Google Workspace Admin SDK | nodes-base/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.ts |
Gmail / GmailV1 / GmailV2 / GmailTrigger [T] | Gmail 이메일 | nodes-base/nodes/Google/Gmail/Gmail.node.ts / v1/GmailV1.node.ts / v2/GmailV2.node.ts / GmailTrigger.node.ts |
YouTube | YouTube Data API | nodes-base/nodes/Google/YouTube/YouTube.node.ts |
Microsoft 365 및 Azure 서비스 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
MicrosoftTeams / MicrosoftTeamsV1 / MicrosoftTeamsV2 / MicrosoftTeamsTrigger [T] | Microsoft Teams | nodes-base/nodes/Microsoft/Teams/MicrosoftTeams.node.ts / v1/MicrosoftTeamsV1.node.ts / v2/MicrosoftTeamsV2.node.ts / MicrosoftTeamsTrigger.node.ts |
MicrosoftOutlook / MicrosoftOutlookV1 / MicrosoftOutlookV2 / MicrosoftOutlookTrigger [T] | Microsoft Outlook 이메일 | nodes-base/nodes/Microsoft/Outlook/MicrosoftOutlook.node.ts / v1/MicrosoftOutlookV1.node.ts / v2/MicrosoftOutlookV2.node.ts / MicrosoftOutlookTrigger.node.ts |
MicrosoftExcel / MicrosoftExcelV1 / MicrosoftExcelV2 | Microsoft Excel | nodes-base/nodes/Microsoft/Excel/MicrosoftExcel.node.ts / v1/MicrosoftExcelV1.node.ts / v2/MicrosoftExcelV2.node.ts |
MicrosoftOneDrive / MicrosoftOneDriveTrigger [T] | Microsoft OneDrive | nodes-base/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.ts / MicrosoftOneDriveTrigger.node.ts |
MicrosoftSharePoint | Microsoft SharePoint | nodes-base/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.ts |
MicrosoftToDo | Microsoft To Do | nodes-base/nodes/Microsoft/ToDo/MicrosoftToDo.node.ts |
MicrosoftEntra | Microsoft Entra ID (인증) | nodes-base/nodes/Microsoft/Entra/MicrosoftEntra.node.ts |
MicrosoftGraphSecurity | Microsoft Graph Security | nodes-base/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.ts |
MicrosoftDynamicsCrm | Microsoft Dynamics 365 | nodes-base/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.ts |
AzureCosmosDb | Azure Cosmos DB | nodes-base/nodes/Microsoft/AzureCosmosDb/AzureCosmosDb.node.ts |
AzureStorage | Azure Blob Storage | nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts |
nodes-base 패키지의 AI 및 ML 관련 노드.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
OpenAi | OpenAI API (Chat, Image, Audio 등) | nodes-base/nodes/OpenAi/OpenAi.node.ts |
AiTransform | AI를 활용한 데이터 변환 | nodes-base/nodes/AiTransform/AiTransform.node.ts |
EditImage | AI 기반 이미지 편집 | nodes-base/nodes/EditImage/EditImage.node.ts |
DeepL | DeepL 번역 API | nodes-base/nodes/DeepL/DeepL.node.ts |
MistralAi | Mistral AI API | nodes-base/nodes/MistralAi/MistralAi.node.ts |
Perplexity | Perplexity AI 검색 | nodes-base/nodes/Perplexity/Perplexity.node.ts |
JinaAi | Jina AI (검색/임베딩) | nodes-base/nodes/JinaAi/JinaAi.node.ts |
LangChain 기반 AI 에이전트 및 체인 노드. [LC]
| 노드 클래스 | 설명 | 클래스 구현 | 메서드 | 입력 타입 | 출력 타입 | 지원 에이전트 | 파일 경로 |
|---|---|---|---|---|---|---|---|
Agent | AI 에이전트 구성 및 실행 (메인 노드) | Agent extends VersionedNodeType | execute | AiLanguageModel, AiMemory, AiTool, AiOutputParser | Main | Conversational, OpenAI Functions, Plan&Execute, ReAct, SQL, Tools | agents/Agent/Agent.node.ts |
AgentV1 | Agent 버전 1.x | AgentV1 implements INodeType | execute | 동일 | Main | 전체 | agents/Agent/V1/AgentV1.node.ts |
AgentV2 | Agent 버전 2.x | AgentV2 implements INodeType | execute | 동일 | Main | 전체 | agents/Agent/V2/AgentV2.node.ts |
AgentV3 | Agent 버전 3.x (최신) | AgentV3 implements INodeType | execute | 동일 | Main | 전체 + EngineRequest/Response | agents/Agent/V3/AgentV3.node.ts |
AgentTool | 에이전트를 도구로 사용 | AgentTool extends VersionedNodeType | execute/supplyData | 동일 | AiTool | 전체 | agents/Agent/AgentTool.node.ts |
OpenAiAssistant | OpenAI Assistants API 기반 에이전트 | OpenAiAssistant implements INodeType | execute | Main | Main | OpenAI Assistant | agents/OpenAiAssistant/OpenAiAssistant.node.ts |
ChainLlm | LLM 체인 — 프롬프트 → LLM → 출력 | ChainLlm implements INodeType | supplyData | AiLanguageModel | AiChain | - | chains/ChainLLM/ChainLlm.node.ts |
ChainRetrievalQa | RAG 체인 — Retriever + LLM 조합 | ChainRetrievalQa implements INodeType | supplyData | AiLanguageModel, AiRetriever | AiChain | - | chains/ChainRetrievalQA/ChainRetrievalQa.node.ts |
ChainSummarization | 텍스트 요약 체인 | ChainSummarization extends VersionedNodeType | supplyData | AiLanguageModel, AiDocument | AiChain | - | chains/ChainSummarization/ChainSummarization.node.ts |
InformationExtractor | 텍스트에서 구조화된 정보 추출 | InformationExtractor implements INodeType | execute | AiLanguageModel | Main | - | chains/InformationExtractor/InformationExtractor.node.ts |
SentimentAnalysis | 텍스트 감성 분석 | SentimentAnalysis implements INodeType | execute | AiLanguageModel | Main | - | chains/SentimentAnalysis/SentimentAnalysis.node.ts |
TextClassifier | 텍스트 분류 | TextClassifier implements INodeType | execute | AiLanguageModel | Main | - | chains/TextClassifier/TextClassifier.node.ts |
ToolExecutor | 에이전트가 도구를 실행하는 단계 노드 | ToolExecutor implements INodeType | execute | Main | Main | - | ToolExecutor/ToolExecutor.node.ts |
ModelSelector | 조건 기준으로 LLM 모델 동적 선택 | ModelSelector implements INodeType | supplyData | - | AiLanguageModel | - | ModelSelector/ModelSelector.node.ts |
Guardrails | AI 출력에 대한 안전성 검증 및 필터링 | Guardrails extends VersionedNodeType | execute | Main | Main | - | Guardrails/Guardrails.node.ts |
Agent 노드 상세:
- 버전: 1.0-1.9 (V1), 2.0-2.3 (V2), 3.0-3.1 (V3, 기본값)
- 지원 에이전트 타입:
- Conversational: 대화형 에이전트 (conversationalAgentExecute)
- OpenAI Functions: OpenAI Function Calling 사용 (openAiFunctionsAgentExecute)
- Plan and Execute: 계획 수립 후 실행 (planAndExecuteAgentExecute)
- ReAct: Reasoning + Acting 패턴 (reActAgentAgentExecute)
- SQL: SQL 데이터베이스 쿼리 (sqlAgentAgentExecute)
- Tools: 범용 도구 에이전트 (toolsAgentExecute, V1/V2/V3 별도 구현)
- 동적 입력: Chat Model(필수), Memory(선택, 최대 1개), Tools(무제한), Output Parser(선택, 최대 1개)
LLM 모델을 에이전트/체인에 연결하는 노드. [LC]
| 노드 클래스 | 설명 | 클래스 구현 | 메서드 | LangChain 라이브러리 | 출력 타입 | 자격증명 | 파일 경로 |
|---|---|---|---|---|---|---|---|
LmChatOpenAi | OpenAI Chat 모델 (GPT-4 등) | LmChatOpenAi implements INodeType | supplyData | @langchain/openai (ChatOpenAI) | AiLanguageModel | openAiApi | llms/LMChatOpenAi/LmChatOpenAi.node.ts |
LmChatAnthropic | Anthropic Claude 모델 | LmChatAnthropic implements INodeType | supplyData | @langchain/anthropic (ChatAnthropic) | AiLanguageModel | anthropicApi | llms/LMChatAnthropic/LmChatAnthropic.node.ts |
LmChatGoogleGemini | Google Gemini 모델 | LmChatGoogleGemini implements INodeType | supplyData | @langchain/google-genai (ChatGoogleGenerativeAI) | AiLanguageModel | googlePalmApi | llms/LmChatGoogleGemini/LmChatGoogleGemini.node.ts |
LmChatGoogleVertex | Google Vertex AI 모델 | LmChatGoogleVertex implements INodeType | supplyData | @langchain/google-vertexai (ChatVertexAI) | AiLanguageModel | googleVertexOAuth2Api | llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts |
LmChatAwsBedrock | AWS Bedrock 모델 | LmChatAwsBedrock implements INodeType | supplyData | @langchain/aws (ChatBedrock) | AiLanguageModel | aws | llms/LmChatAwsBedrock/LmChatAwsBedrock.node.ts |
LmChatAzureOpenAi | Azure OpenAI 모델 | LmChatAzureOpenAi implements INodeType | supplyData | @langchain/openai (AzureChatOpenAI) | AiLanguageModel | azureOpenAiApi | llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.ts |
LmChatMistralCloud | Mistral Cloud 모델 | LmChatMistralCloud implements INodeType | supplyData | @langchain/mistralai (ChatMistralAI) | AiLanguageModel | mistralCloudApi | llms/LmChatMistralCloud/LmChatMistralCloud.node.ts |
LmChatCohere | Cohere 모델 | LmChatCohere implements INodeType | supplyData | @langchain/cohere (ChatCohere) | AiLanguageModel | cohereApi | llms/LmChatCohere/LmChatCohere.node.ts |
LmChatDeepSeek | DeepSeek 모델 | LmChatDeepSeek implements INodeType | supplyData | @langchain/openai (ChatOpenAI) | AiLanguageModel | deepSeekApi | llms/LmChatDeepSeek/LmChatDeepSeek.node.ts |
LmChatGroq | Groq 모델 | LmChatGroq implements INodeType | supplyData | @langchain/groq (ChatGroq) | AiLanguageModel | groqApi | llms/LmChatGroq/LmChatGroq.node.ts |
LmChatOllama | Ollama 로컬 모델 | LmChatOllama implements INodeType | supplyData | @langchain/ollama (ChatOllama) | AiLanguageModel | - | llms/LMChatOllama/LmChatOllama.node.ts |
LmChatOpenRouter | OpenRouter 통합 모델 라우팅 | LmChatOpenRouter implements INodeType | supplyData | @langchain/openai (ChatOpenAI) | AiLanguageModel | openRouterApi | llms/LmChatOpenRouter/LmChatOpenRouter.node.ts |
LmChatVercelAiGateway | Vercel AI Gateway | LmChatVercelAiGateway implements INodeType | supplyData | @langchain/openai (ChatOpenAI) | AiLanguageModel | httpHeaderAuth | llms/LmChatVercelAiGateway/LmChatVercelAiGateway.node.ts |
LmChatXAiGrok | xAI Grok 모델 | LmChatXAiGrok implements INodeType | supplyData | @langchain/openai (ChatOpenAI) | AiLanguageModel | xAiApi | llms/LmChatXAiGrok/LmChatXAiGrok.node.ts |
LmChatLemonade | Lemonade 모델 | LmChatLemonade implements INodeType | supplyData | Custom | AiLanguageModel | lemonadeApi | llms/LMChatLemonade/LmChatLemonade.node.ts |
LmOpenAi | OpenAI Completion 모델 (레거이시) | LmOpenAi implements INodeType | supplyData | @langchain/openai (OpenAI) | AiLanguageModel | openAiApi | llms/LMOpenAi/LmOpenAi.node.ts |
LmOllama | Ollama Completion 모델 (레거이시) | LmOllama implements INodeType | supplyData | @langchain/ollama (Ollama) | AiLanguageModel | - | llms/LMOllama/LmOllama.node.ts |
LmCohere | Cohere Completion 모델 (레거이시) | LmCohere implements INodeType | supplyData | @langchain/cohere (Cohere) | AiLanguageModel | cohereApi | llms/LMCohere/LmCohere.node.ts |
LmLemonade | Lemonade Completion 모델 (레거이시) | LmLemonade implements INodeType | supplyData | Custom | AiLanguageModel | lemonadeApi | llms/LMLemonade/LmLemonade.node.ts |
LmOpenHuggingFaceInference | HuggingFace Inference API | LmOpenHuggingFaceInference implements INodeType | supplyData | @langchain/community (HuggingFaceInference) | AiLanguageModel | huggingFaceApi | llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.ts |
공통 특징:
- 모든 LLM 노드는
ISupplyDataFunctions를 통해 LangChain 모델 인스턴스를 제공listSearch.searchModels메서드로 사용 가능한 모델 목록 동적 로드- N8nLlmTracing으로 LLM 호출 추적 및 로깅
- HTTP 프록시 에이전트 지원 (getProxyAgent)
- 실패 시 자동 재시도 핸들러 (makeN8nLlmFailedAttemptHandler)
텍스트를 벡터로 변환하는 Embedding 모델 노드. [LC]
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
EmbeddingsOpenAi | OpenAI Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.ts |
EmbeddingsAzureOpenAi | Azure OpenAI Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsAzureOpenAi/EmbeddingsAzureOpenAi.node.ts |
EmbeddingsCohere | Cohere Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.ts |
EmbeddingsGoogleGemini | Google Gemini Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.ts |
EmbeddingsGoogleVertex | Google Vertex AI Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsGoogleVertex/EmbeddingsGoogleVertex.node.ts |
EmbeddingsAwsBedrock | AWS Bedrock Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.ts |
EmbeddingsHuggingFaceInference | HuggingFace Inference Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.ts |
EmbeddingsOllama | Ollama 로컬 Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsOllama/EmbeddingsOllama.node.ts |
EmbeddingsMistralCloud | Mistral Cloud Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsMistralCloud/EmbeddingsMistralCloud.node.ts |
EmbeddingsLemonade | Lemonade Embeddings | @n8n/nodes-langchain/nodes/embeddings/EmbeddingsLemonade/EmbeddingsLemonade.node.ts |
벡터 DB와의 연동 및 조회 노드. [LC]
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
VectorStorePinecone / Insert / Load | Pinecone 벡터 저장소 | @n8n/nodes-langchain/nodes/vector_store/VectorStorePinecone/ |
VectorStoreQdrant | Qdrant 벡터 저장소 | @n8n/nodes-langchain/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.ts |
VectorStoreSupabase / Insert / Load | Supabase pgvector | @n8n/nodes-langchain/nodes/vector_store/VectorStoreSupabase/ |
VectorStorePGVector | PostgreSQL pgvector | @n8n/nodes-langchain/nodes/vector_store/VectorStorePgVector/VectorStorePGVector.node.ts |
VectorStoreRedis | Redis Vector Search | @n8n/nodes-langchain/nodes/vector_store/VectorStoreRedis/VectorStoreRedis.node.ts |
VectorStoreMilvus | Milvus 벡터 저장소 | @n8n/nodes-langchain/nodes/vector_store/VectorStoreMilvus/VectorStoreMilvus.node.ts |
VectorStoreWeaviate | Weaviate 벡터 저장소 | @n8n/nodes-langchain/nodes/vector_store/VectorStoreWeaviate/VectorStoreWeaviate.node.ts |
VectorStoreZep / Insert / Load | Zep 벡터 저장소 | @n8n/nodes-langchain/nodes/vector_store/VectorStoreZep/ |
VectorStoreMongoDBAtlas | MongoDB Atlas Vector Search | @n8n/nodes-langchain/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.ts |
VectorStoreAzureAISearch | Azure AI Search | @n8n/nodes-langchain/nodes/vector_store/VectorStoreAzureAISearch/VectorStoreAzureAISearch.node.ts |
VectorStoreInMemory / Insert / Load | 메모리 내 벡터 저장소 (테스트용) | @n8n/nodes-langchain/nodes/vector_store/VectorStoreInMemory/ |
AI 에이전트의 대화 이력 및 메모리 관리 노드. [LC]
| 노드 클래스 | 설명 | 클래스 구현 | 메서드 | 출력 타입 | 파일 경로 |
|---|---|---|---|---|---|
MemoryBufferWindow | 윈도우 기반 대화 이력 저장 | MemoryBufferWindow implements INodeType | supplyData | AiMemory | memory/MemoryBufferWindow/MemoryBufferWindow.node.ts |
MemoryManager | 메모리 저장소 관리 | MemoryManager implements INodeType | supplyData | AiMemory | memory/MemoryManager/MemoryManager.node.ts |
MemoryChatRetriever | 메모리에서 관련 대화 검색 | MemoryChatRetriever implements INodeType | supplyData | AiMemory | memory/MemoryChatRetriever/MemoryChatRetriever.node.ts |
MemoryRedisChat | Redis 기반 대화 메모리 | MemoryRedisChat implements INodeType | supplyData | AiMemory | memory/MemoryRedisChat/MemoryRedisChat.node.ts |
MemoryPostgresChat | PostgreSQL 기반 대화 메모리 | MemoryPostgresChat implements INodeType | supplyData | AiMemory | memory/MemoryPostgresChat/MemoryPostgresChat.node.ts |
MemoryMongoDbChat | MongoDB 기반 대화 메모리 | MemoryMongoDbChat implements INodeType | supplyData | AiMemory | memory/MemoryMongoDbChat/MemoryMongoDbChat.node.ts |
MemoryMotorhead | Motorhead 기반 대화 메모리 | MemoryMotorhead implements INodeType | supplyData | AiMemory | memory/MemoryMotorhead/MemoryMotorhead.node.ts |
MemoryXata | Xata 기반 대화 메모리 | MemoryXata implements INodeType | supplyData | AiMemory | memory/MemoryXata/MemoryXata.node.ts |
MemoryZep | Zep 기반 장기 메모리 | MemoryZep implements INodeType | supplyData | AiMemory | memory/MemoryZep/MemoryZep.node.ts |
참고: 모든 메모리 노드는
@langchain/community/memory또는 관련 라이브러리를 사용하며,ISupplyDataFunctions를 통해 메모리 인스턴스를 제공합니다.
에이전트가 호출할 수 있는 Tool 노드. [LC]
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
ToolCalculator | 수학 계산 도구 | @n8n/nodes-langchain/nodes/tools/ToolCalculator/ToolCalculator.node.ts |
ToolCode | 코드 실행 도구 | @n8n/nodes-langchain/nodes/tools/ToolCode/ToolCode.node.ts |
ToolHttpRequest | HTTP 요청 실행 도구 | @n8n/nodes-langchain/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.ts |
ToolWorkflow / V1 / V2 | 다른 워크플로우를 도구로 호출 | @n8n/nodes-langchain/nodes/tools/ToolWorkflow/ |
ToolVectorStore | 벡터 저장소 검색 도구 | @n8n/nodes-langchain/nodes/tools/ToolVectorStore/ToolVectorStore.node.ts |
ToolSerpApi | SerpAPI 검색 엔진 도구 | @n8n/nodes-langchain/nodes/tools/ToolSerpApi/ToolSerpApi.node.ts |
ToolSearXng | SearXng 검색 도구 | @n8n/nodes-langchain/nodes/tools/ToolSearXng/ToolSearXng.node.ts |
ToolWikipedia | Wikipedia 검색 도구 | @n8n/nodes-langchain/nodes/tools/ToolWikipedia/ToolWikipedia.node.ts |
ToolWolframAlpha | Wolfram Alpha 계산 도구 | @n8n/nodes-langchain/nodes/tools/ToolWolframAlpha/ToolWolframAlpha.node.ts |
ToolThink | 내부 추론 단계 도구 (Chain-of-Thought) | @n8n/nodes-langchain/nodes/tools/ToolThink/ToolThink.node.ts |
벡터 저장소에서 관련 정보를 검색하는 Retriever 노드. [LC]
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
RetrieverVectorStore | 벡터 저장소 기본 Retriever | @n8n/nodes-langchain/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.ts |
RetrieverContextualCompression | 검색 결과를 컨텍스트 기준으로 압축 | @n8n/nodes-langchain/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.ts |
RetrieverMultiQuery | 여러 쿼리로 검색 후 결과 통합 | @n8n/nodes-langchain/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.ts |
RetrieverWorkflow | 다른 워크플로우를 Retriever로 사용 | @n8n/nodes-langchain/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.ts |
긴 텍스트를 청크로 분할하거나 LLM 출력을 파싱하는 노드. [LC]
Text Splitters:
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
TextSplitterCharacterTextSplitter | 문자 단위로 텍스트 분할 | @n8n/nodes-langchain/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.ts |
TextSplitterRecursiveCharacterTextSplitter | 재귀적으로 구조를 유지하며 분할 | @n8n/nodes-langchain/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.ts |
TextSplitterTokenSplitter | 토큰 단위로 텍스트 분할 | @n8n/nodes-langchain/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.ts |
Output Parsers:
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
OutputParserStructured | LLM 출력을 지정된 스키마로 파싱 | @n8n/nodes-langchain/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.ts |
OutputParserItemList | LLM 출력을 리스트로 파싱 | @n8n/nodes-langchain/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.ts |
OutputParserAutofixing | 파싱 실패 시 자동 수정 재시도 | @n8n/nodes-langchain/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.ts |
Rerankers:
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
RerankerCohere | Cohere Reranker로 검색 결과 재정렬 | @n8n/nodes-langchain/nodes/rerankers/RerankerCohere/RerankerCohere.node.ts |
Document Loaders:
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
DocumentBinaryInputLoader | 바이너리 입력을 문서로 로드 | @n8n/nodes-langchain/nodes/document_loaders/DocumentBinaryInputLoader/DocumentBinaryInputLoader.node.ts |
DocumentDefaultDataLoader | 기본 데이터를 문서로 로드 | @n8n/nodes-langchain/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.ts |
DocumentGithubLoader | GitHub 저장소에서 문서 로드 | @n8n/nodes-langchain/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.ts |
DocumentJsonInputLoader | JSON 입력을 문서로 로드 | @n8n/nodes-langchain/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.ts |
Model Context Protocol 관련 노드. [LC]
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
McpClient | MCP 서버에 연결하여 도구 목록 조회 및 호출 | @n8n/nodes-langchain/nodes/mcp/McpClient/McpClient.node.ts |
McpClientTool | MCP 클라이언트의 개별 도구 노드 | @n8n/nodes-langchain/nodes/mcp/McpClientTool/McpClientTool.node.ts |
McpTrigger | MCP 프로토콜로 워크플로우 트리거 | @n8n/nodes-langchain/nodes/trigger/McpTrigger/McpTrigger.node.ts |
n8n 자체 기능과 관련된 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
N8n | n8n 내부 API 호출 (워크플로우, 실행 등) | nodes-base/nodes/N8n/N8n.node.ts |
N8nTrigger | n8n 내부 이벤트 트리거 | nodes-base/nodes/N8nTrigger/N8nTrigger.node.ts |
NoOp | 아무 작업 없이 통과 (디버깅용) | nodes-base/nodes/NoOp/NoOp.node.ts |
StickyNote | 캔버스 위의 메모 | nodes-base/nodes/StickyNote/StickyNote.node.ts |
DebugHelper | 디버깅을 위한 데이터 확인 | nodes-base/nodes/DebugHelper/DebugHelper.node.ts |
Simulate / SimulateTrigger | 테스트용 모의 데이터 생성 | nodes-base/nodes/Simulate/ |
ExecutionData | 현재 실행의 메타데이터 조회 | nodes-base/nodes/ExecutionData/ExecutionData.node.ts |
N8nTrainingCustomerDatastore | n8n 학습용 샘플 데이터 스토어 | nodes-base/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.ts |
N8nTrainingCustomerMessenger | n8n 학습용 샘플 메신저 | nodes-base/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.ts |
E2eTest | E2E 테스트 전용 노드 | nodes-base/nodes/E2eTest/E2eTest.node.ts |
PostBin | PostBin을 통한 요청 디버깅 | nodes-base/nodes/PostBin/PostBin.node.ts |
Ssh | SSH 원격 연결 및 명령 실행 | nodes-base/nodes/Ssh/Ssh.node.ts |
이메일 마케팅, 뉴스레터, 리드 관리 등의 마케팅 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Mailchimp / MailchimpTrigger [T] | Mailchimp 이메일 마케팅 | nodes-base/nodes/Mailchimp/Mailchimp.node.ts / MailchimpTrigger.node.ts |
MailerLite / MailerLiteV1 / MailerLiteV2 / MailerLiteTrigger [T] | MailerLite 이메일 마케팅 | nodes-base/nodes/MailerLite/MailerLite.node.ts / v1/MailerLiteV1.node.ts / v2/MailerLiteV2.node.ts |
Mailjet / MailjetTrigger [T] | Mailjet 이메일 발송 및 이벤트 | nodes-base/nodes/Mailjet/Mailjet.node.ts / MailjetTrigger.node.ts |
ConvertKit / ConvertKitTrigger [T] | ConvertKit 뉴스레터 | nodes-base/nodes/ConvertKit/ConvertKit.node.ts / ConvertKitTrigger.node.ts |
GetResponse / GetResponseTrigger [T] | GetResponse 이메일 마케팅 | nodes-base/nodes/GetResponse/GetResponse.node.ts / GetResponseTrigger.node.ts |
Brevo / BrevoTrigger [T] | Brevo (Sendinblue) 이메일 마케팅 | nodes-base/nodes/Brevo/Brevo.node.ts / BrevoTrigger.node.ts |
Autopilot / AutopilotTrigger [T] | Autopilot 마케팅 자동화 | nodes-base/nodes/Autopilot/Autopilot.node.ts / AutopilotTrigger.node.ts |
Mautic / MauticTrigger [T] | Mautic 오픈소스 마케팅 자동화 | nodes-base/nodes/Mautic/Mautic.node.ts / MauticTrigger.node.ts |
CustomerIo / CustomerIoTrigger [T] | Customer.io 고객 메시징 | nodes-base/nodes/CustomerIo/CustomerIo.node.ts / CustomerIoTrigger.node.ts |
Emelia / EmeliaTrigger [T] | Emelia 콜드 이메일 | nodes-base/nodes/Emelia/Emelia.node.ts / EmeliaTrigger.node.ts |
Lemlist / LemlistV1 / LemlistV2 / LemlistTrigger [T] | Lemlist 콜드 이메일 | nodes-base/nodes/Lemlist/Lemlist.node.ts / v1/LemlistV1.node.ts / v2/LemlistV2.node.ts / LemlistTrigger.node.ts |
Egoi | Egoi 이메일 마케팅 | nodes-base/nodes/Egoi/Egoi.node.ts |
Iterable | Iterable 고객 참여 | nodes-base/nodes/Iterable/Iterable.node.ts |
Segment | Segment 고객 데이터 플랫폼 | nodes-base/nodes/Segment/Segment.node.ts |
Vero | Vero 이벤트 기반 이메일 | nodes-base/nodes/Vero/Vero.node.ts |
ActionNetwork | Action Network 행동 자동화 | nodes-base/nodes/ActionNetwork/ActionNetwork.node.ts |
Mailcheck | Mailcheck 이메일 유효성 검사 | nodes-base/nodes/Mailcheck/Mailcheck.node.ts |
시스템 모니터링, 로깅, 알림 관련 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Grafana | Grafana 대시보드 및 알림 | nodes-base/nodes/Grafana/Grafana.node.ts |
Splunk / SplunkV1 / SplunkV2 | Splunk SIEM 및 로그 분석 | nodes-base/nodes/Splunk/Splunk.node.ts / v1/SplunkV1.node.ts / v2/SplunkV2.node.ts |
UptimeRobot | UptimeRobot 웹사이트 모니터링 | nodes-base/nodes/UptimeRobot/UptimeRobot.node.ts |
SentryIo | Sentry 에러 트래킹 | nodes-base/nodes/SentryIo/SentryIo.node.ts |
PostHog | PostHog 제품 분석 | nodes-base/nodes/PostHog/PostHog.node.ts |
SecurityScorecard | SecurityScorecard 보안 평가 | nodes-base/nodes/SecurityScorecard/SecurityScorecard.node.ts |
PagerDuty | PagerDuty 인시덴트 관리 | nodes-base/nodes/PagerDuty/PagerDuty.node.ts |
Metabase | Metabase 비즈니스 인텔리젠스 | nodes-base/nodes/Metabase/Metabase.node.ts |
보안, 인증, 비밀 관리 관련 노드들.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Okta | Okta 아이덴티티 관리 | nodes-base/nodes/Okta/Okta.node.ts |
Bitwarden | Bitwarden 비밀 관리 | nodes-base/nodes/Bitwarden/Bitwarden.node.ts |
Misp | MISP 사이버 위협 정보 | nodes-base/nodes/Misp/Misp.node.ts |
TheHive / TheHiveTrigger [T] | TheHive SIEM | nodes-base/nodes/TheHive/TheHive.node.ts / TheHiveTrigger.node.ts |
TheHiveProject / TheHiveProjectTrigger [T] | TheHive Project | nodes-base/nodes/TheHiveProject/TheHiveProject.node.ts / TheHiveProjectTrigger.node.ts |
ElasticSecurity | Elastic Security | nodes-base/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.ts |
UrlScanIo | UrlScan.io URL 안전성 검사 | nodes-base/nodes/UrlScanIo/UrlScanIo.node.ts |
VenafiTlsProtectCloud / VenafiTlsProtectCloudTrigger [T] | Venafi TLS Cloud | nodes-base/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.ts / VenafiTlsProtectCloudTrigger.node.ts |
VenafiTlsProtectDatacenter / VenafiTlsProtectDatacenterTrigger [T] | Venafi TLS Datacenter | nodes-base/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.ts / VenafiTlsProtectDatacenterTrigger.node.ts |
IoT 장치 및 스마트홈 연동.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
HomeAssistant | Home Assistant 홈 자동화 | nodes-base/nodes/HomeAssistant/HomeAssistant.node.ts |
PhilipsHue | Philips Hue 스마트 조명 | nodes-base/nodes/PhilipsHue/PhilipsHue.node.ts |
Mqtt / MqttTrigger [T] | MQTT (IoT 표준 프로토콜) | nodes-base/nodes/MQTT/Mqtt.node.ts / MqttTrigger.node.ts |
위 카테고리에 해당하지 않는 기타 서비스 통합.
| 노드 클래스 | 설명 | 파일 경로 |
|---|---|---|
Shopify / ShopifyTrigger [T] | Shopify 이코머스 | nodes-base/nodes/Shopify/Shopify.node.ts / ShopifyTrigger.node.ts |
WooCommerce / WooCommerceTrigger [T] | WooCommerce 이코머스 | nodes-base/nodes/WooCommerce/WooCommerce.node.ts / WooCommerceTrigger.node.ts |
Magento2 | Adobe Commerce (Magento) | nodes-base/nodes/Magento/Magento2.node.ts |
Strapi | Strapi CMS | nodes-base/nodes/Strapi/Strapi.node.ts |
Contentful | Contentful CMS | nodes-base/nodes/Contentful/Contentful.node.ts |
Ghost | Ghost CMS | nodes-base/nodes/Ghost/Ghost.node.ts |
Storyblok | Storyblok CMS | nodes-base/nodes/Storyblok/Storyblok.node.ts |
Wordpress | WordPress CMS | nodes-base/nodes/Wordpress/Wordpress.node.ts |
Webflow / WebflowV1 / WebflowV2 / WebflowTrigger [T] | Webflow 웹사이트 | nodes-base/nodes/Webflow/Webflow.node.ts / V1/WebflowV1.node.ts / V2/WebflowV2.node.ts / WebflowTrigger.node.ts |
FigmaTrigger [T] | Figma 디자인 이벤트 | nodes-base/nodes/Figma/FigmaTrigger.node.ts |
Adalo | Adalo 앱 빌더 | nodes-base/nodes/Adalo/Adalo.node.ts |
Bubble | Bubble 앱 빌더 | nodes-base/nodes/Bubble/Bubble.node.ts |
Airtop | Airtop 브라우저 자동화 | nodes-base/nodes/Airtop/Airtop.node.ts |
Phantombuster | PhantomBuster 스크래핑 | nodes-base/nodes/Phantombuster/Phantombuster.node.ts |
Dhl | DHL 배송 추적 | nodes-base/nodes/Dhl/Dhl.node.ts |
Onfleet / OnfleetTrigger [T] | Onfleet 라스트마일 배송 | nodes-base/nodes/Onfleet/Onfleet.node.ts / OnfleetTrigger.node.ts |
Oura | Oura 웨어러블 건강 데이터 | nodes-base/nodes/Oura/Oura.node.ts |
Nasa | NASA API (우주 이미지 등) | nodes-base/nodes/Nasa/Nasa.node.ts |
HackerNews | Hacker News API | nodes-base/nodes/HackerNews/HackerNews.node.ts |
OpenWeatherMap | OpenWeatherMap 날씨 API | nodes-base/nodes/OpenWeatherMap/OpenWeatherMap.node.ts |
OpenThesaurus | OpenThesaurus 동의사전 | nodes-base/nodes/OpenThesaurus/OpenThesaurus.node.ts |
LingvaNex | LingvaNex 번역 | nodes-base/nodes/LingvaNex/LingvaNex.node.ts |
Raindrop | Raindrop.io 북마크 관리 | nodes-base/nodes/Raindrop/Raindrop.node.ts |
FileMaker | FileMaker Pro 데이터베이스 | nodes-base/nodes/FileMaker/FileMaker.node.ts |
ERPNext | ERPNext ERP 시스템 | nodes-base/nodes/ERPNext/ERPNext.node.ts |
Odoo | Odoo ERP 시스템 | nodes-base/nodes/Odoo/Odoo.node.ts |
ServiceNow | ServiceNow IT 서비스 관리 | nodes-base/nodes/ServiceNow/ServiceNow.node.ts |
Freshdesk | Freshdesk 고객지원 | nodes-base/nodes/Freshdesk/Freshdesk.node.ts |
Freshservice | Freshservice IT 서비스 관리 | nodes-base/nodes/Freshservice/Freshservice.node.ts |
HelpScout / HelpScoutTrigger [T] | HelpScout 고객지원 | nodes-base/nodes/HelpScout/HelpScout.node.ts / HelpScoutTrigger.node.ts |
Zendesk / ZendeskTrigger [T] | Zendesk 고객지원 | nodes-base/nodes/Zendesk/Zendesk.node.ts / ZendeskTrigger.node.ts |
HaloPSA | Halo PSA IT 관리 | nodes-base/nodes/HaloPSA/HaloPSA.node.ts |
Zammad | Zammad 고객지원 | nodes-base/nodes/Zammad/Zammad.node.ts |
BambooHr | BambooHR 인사관리 | nodes-base/nodes/BambooHr/BambooHr.node.ts |
WorkableTrigger [T] | Workable 채용 이벤트 | nodes-base/nodes/Workable/WorkableTrigger.node.ts |
Orbit | Orbit 커뮤니티 관리 | nodes-base/nodes/Orbit/Orbit.node.ts |
Affinity / AffinityTrigger [T] | Affinity CRM | nodes-base/nodes/Affinity/Affinity.node.ts / AffinityTrigger.node.ts |
Cockpit | Cockpit CMS | nodes-base/nodes/Cockpit/Cockpit.node.ts |
Grist | Grist 스프레드시트 | nodes-base/nodes/Grist/Grist.node.ts |
QuickChart | QuickChart 차트 이미지 생성 | nodes-base/nodes/QuickChart/QuickChart.node.ts |
Bannerbear | Bannerbear 이미지/비디오 자동 생성 | nodes-base/nodes/Bannerbear/Bannerbear.node.ts |
ApiTemplateIo | ApiTemplate.io 템플릿 기반 PDF/이미지 생성 | nodes-base/nodes/ApiTemplateIo/ApiTemplateIo.node.ts |
Peekalink | Peekalink URL 미리보기 | nodes-base/nodes/Peekalink/Peekalink.node.ts |
Cortex | Cortex 자동화 플랫폼 | nodes-base/nodes/Cortex/Cortex.node.ts |
Beeminder | Beeminder 습관 추적 | nodes-base/nodes/Beeminder/Beeminder.node.ts |
TimeSaved | TimeSaved 커뮤니티 앱 | nodes-base/nodes/TimeSaved/TimeSaved.node.ts |
UProc | UProc 데이터 처리 | nodes-base/nodes/UProc/UProc.node.ts |
UnleashedSoftware | Unleashed 재고 관리 | nodes-base/nodes/UnleashedSoftware/UnleashedSoftware.node.ts |
Tapfiliate | Tapfiliate 제휴 마케팅 | nodes-base/nodes/Tapfiliate/Tapfiliate.node.ts |
SyncroMsp / SyncroMspV1 | Syncro MSP 관리 | nodes-base/nodes/SyncroMSP/SyncroMsp.node.ts / v1/SyncroMspV1.node.ts |
NetscalerAdc | Citrix NetScaler ADC | nodes-base/nodes/Netscaler/ADC/NetscalerAdc.node.ts |
| 구분 | 노드 수 |
|---|---|
nodes-base (*.node.ts 파일) | ~525 |
nodes-langchain (*.node.ts 파일) | ~115 |
| 전체 노드 파일 수 | ~640 |
| Trigger 노드 (T) | ~100+ |
| 버전별 변형 포함 노드 | ~80+ |
노드 발견 프로세스 (packages/cli/src/load-nodes-and-credentials.ts):
// 1. 노드 패키지에서 발견
async init() {
await this.loadNodesFromNodeModules(nodeModulesDir, 'n8n-nodes-base');
await this.loadNodesFromNodeModules(nodeModulesDir, '@n8n/n8n-nodes-langchain');
await this.loadNodesFromCustomDirectories();
await this.postProcessLoaders();
}
// 2. 등록 데이터 구조
known: {
nodes: { "n8n-nodes-base.webhook": { className: "Webhook", sourcePath: "..." } }
}
loaded: {
nodes: { "n8n-nodes-base.webhook": LoadedClass<INodeType> }
}
types: {
nodes: [{ name: "n8n-nodes-base.webhook", displayName: "Webhook", ... }]
}
노드 접근 (packages/workflow/src/NodeTypes.ts):
// Workflow 인스턴스를 통한 노드 타입 조회
const nodeType = workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
// 반환: INodeType 인스턴스 (execute, trigger, webhook, poll 메서드 포함)
활성화 시 (packages/cli/src/active-workflow-manager.ts:118-188):
async addWebhooks(workflow, additionalData, mode, activationMode) {
const webhooks = workflow.getWebhooks(); // 모든 webhook 노드 수집
for (const webhookData of webhooks) {
const path = workflow.expression.getSimpleParameterValue(
node, webhookData.path, mode, {}, { ...additionalData }
);
// database에 webhook 등록
await this.webhookService.storeWebhook({
workflowId: workflow.id,
webhookPath: path,
node: webhookData.node, // ← 노드 이름 저장
method: webhookData.httpMethod,
});
}
}
실행 시 (packages/cli/src/webhooks/live-webhooks.ts:80-151):
async executeWebhook(request: WebhookRequest, response: Response) {
// 1. database에서 webhook 조회
const webhook = await this.findWebhook(path, httpMethod);
// 2. workflow 로드
const workflowData = await this.workflowRepository.findOne({
where: { id: webhook.workflowId }
});
// 3. Workflow 인스턴스 생성
const workflow = new Workflow({ id, name, nodes, connections, nodeTypes });
// 4. webhook 노드 찾기
const workflowStartNode = workflow.getNode(webhook.node); // ← 저장된 노드 이름 사용
// 5. webhook 실행
return await WebhookHelpers.executeWebhook(
workflow,
webhookData,
workflowStartNode, // ← 시작 노드로 전달
...
);
}
실제 실행 (packages/cli/src/webhooks/webhook-helpers.ts:366-382):
async executeWebhook(...) {
// 1. webhook 노드의 webhook() 메서드 실행
const webhookResultData = await Container.get(WebhookService).runWebhook(
workflow,
webhookData,
workflowStartNode,
...
);
// 2. WorkflowRunner를 통해 전체 워크플로우 실행
const executionId = await Container.get(WorkflowRunner).run({
executionMode: 'webhook',
executionData: preparedRunExecutionData, // webhook 노드 출력을 시작 데이터로
workflowData,
});
}
활성화 시 (packages/cli/src/active-workflow-manager.ts:190-281):
async addTriggersAndPollers(dbWorkflow, workflow, options) {
const triggerNodes = workflow.getTriggerNodes();
for (const triggerNode of triggerNodes) {
// TriggerContext 생성 (emit 콜백 포함)
const triggerFunctions = this.getExecuteTriggerFunctions(
dbWorkflow, additionalData, mode, activation
);
// trigger() 메서드 호출
const triggerResponse = await this.triggersAndPollers.runTrigger(
workflow,
triggerNode,
triggerFunctions,
...
);
// 메모리에 저장 (계속 실행 중)
this.activeWorkflows.add(workflow.id, { triggerResponses: [triggerResponse] });
}
}
emit 콜백 (packages/cli/src/active-workflow-manager.ts:339-401):
getExecuteTriggerFunctions(workflowData, additionalData, mode, activation) {
return (workflow: Workflow, node: INode) => {
const emit = (data: INodeExecutionData[][]) => {
// 트리거가 데이터를 emit하면 워크플로우 실행
const executePromise = this.workflowExecutionService.runWorkflow(
workflowData,
node, // ← trigger 노드
data, // ← emit된 데이터
additionalData,
mode,
);
};
return new TriggerContext(workflow, node, additionalData, mode, emit);
};
}
예시 - ManualTrigger 노드:
// nodes-base/nodes/ManualTrigger/ManualTrigger.node.ts
async trigger(this: ITriggerFunctions): Promise<ITriggerResponse> {
const manualTriggerFunction = async () => {
this.emit([this.helpers.returnJsonArray([{}])]); // ← emit 호출
};
return { manualTriggerFunction };
}
실행 시 (packages/core/src/execution-engine/workflow-execute.ts:1404-2100):
processRunExecutionData(workflow: Workflow): PCancelable<IRun> {
return new PCancelable(async (resolve) => {
// 실행 루프
while (this.runExecutionData.executionData!.nodeExecutionStack.length !== 0) {
const executionData: IExecuteData =
this.runExecutionData.executionData!.nodeExecutionStack.shift();
const executionNode = executionData.node;
// 노드 실행
const runNodeData = await this.runNode(
workflow,
executionData,
this.runExecutionData,
runIndex,
...
);
// 결과 저장
this.runExecutionData.resultData.runData[executionNode.name] = nodeSuccessData;
// 다음 노드들을 스택에 추가
workflow.getChildNodes(executionNode.name).forEach((childNodeName) => {
this.addNodeToBeExecuted(workflow, { node: childNodeName, ... });
});
}
resolve(this.getFullRunData(startedAt));
});
}
노드 실행 상세 (packages/core/src/execution-engine/workflow-execute.ts:1662-1725):
private async executeNode(workflow, node, nodeType, ...) {
// 1. ExecuteContext 생성
const context = new ExecuteContext(
workflow,
node,
additionalData,
mode,
runExecutionData,
...
);
// 2. execute() 메서드 호출
let data: INodeExecutionData[][];
if (nodeType.execute) {
data = await nodeType.execute.call(context); // ← 노드의 execute() 실행
}
return { data, hints: context.hints };
}
| 파일 경로 | 역할 | 주요 메서드 |
|---|---|---|
packages/cli/src/load-nodes-and-credentials.ts | 노드 발견 및 등록 | init(), loadNodesFromNodeModules(), postProcessLoaders() |
packages/cli/src/active-workflow-manager.ts | 워크플로우 활성화 관리 | add(), addWebhooks(), addTriggersAndPollers() |
packages/cli/src/webhooks/live-webhooks.ts | Webhook HTTP 요청 처리 | executeWebhook(), findWebhook() |
packages/cli/src/webhooks/webhook-helpers.ts | Webhook 실행 로직 | executeWebhook(), evaluateResponseOptions() |
packages/cli/src/workflow-runner.ts | 워크플로우 실행 오케스트레이션 | run(), runMainProcess(), enqueueExecution() |
packages/cli/src/workflow-execution.service.ts | 워크플로우 실행 서비스 | runWorkflow(), runMainProcess() |
packages/core/src/execution-engine/workflow-execute.ts | 핵심 실행 엔진 | processRunExecutionData(), runNode(), executeNode() |
packages/core/src/execution-engine/active-workflows.ts | 활성 워크플로우 메모리 관리 | add(), remove(), trigger/poll 관리 |
packages/core/src/node-execution-context/trigger-context.ts | Trigger 노드 컨텍스트 | emit(), emitError() |
packages/core/src/node-execution-context/execute-context.ts | Execute 노드 컨텍스트 | 모든 IExecuteFunctions 메서드 |
packages/core/src/node-execution-context/webhook-context.ts | Webhook 노드 컨텍스트 | 모든 IWebhookFunctions 메서드 |
packages/workflow/src/NodeTypes.ts | 노드 타입 조회 서비스 | getByName(), getByNameAndVersion() |
packages/workflow/src/Workflow.ts | 워크플로우 모델 | getNode(), getTriggerNodes(), getWebhooks() |
[노드 파일 작성]
↓
packages/nodes-base/nodes/Webhook/Webhook.node.ts
↓ (빌드)
dist/nodes/Webhook/Webhook.node.js
↓ (package.json에 등록)
{
"n8n": {
"nodes": ["dist/nodes/Webhook/Webhook.node.js"]
}
}
↓ (서버 시작 시)
LoadNodesAndCredentials.init()
↓ (패키지 스캔)
loadNodesFromNodeModules('n8n-nodes-base')
↓ (메타데이터 등록)
known.nodes['n8n-nodes-base.webhook'] = { className: 'Webhook', sourcePath: '...' }
types.nodes.push({ name: 'n8n-nodes-base.webhook', displayName: 'Webhook', ... })
↓
[워크플로우 활성화]
↓
ActiveWorkflowManager.add(workflowId)
↓ (Webhook 노드인 경우)
addWebhooks() → WebhookService.storeWebhook() → database 저장
↓ (Trigger 노드인 경우)
addTriggersAndPollers() → runTrigger() → 메모리에 유지
↓
[실행 트리거]
↓ (Webhook)
HTTP 요청 → LiveWebhooks.executeWebhook() → WebhookHelpers.executeWebhook()
↓ (Trigger)
emit() 콜백 → WorkflowExecutionService.runWorkflow()
↓
[공통 실행 경로]
WorkflowRunner.run()
↓
runMainProcess() 또는 enqueueExecution()
↓
WorkflowExecute.processRunExecutionData()
↓ (실행 루프)
executeNode() → nodeType.execute.call(context)
↓
결과 수집 → 다음 노드를 스택에 추가
↓
getFullRunData() → 실행 완료
| 노드 타입 | 활성화 시 | 실행 트리거 | 메모리 상주 | 실행 메서드 | 컨텍스트 |
|---|---|---|---|---|---|
| Webhook | database 등록 (webhook_entity) | HTTP 요청 수신 | ❌ | webhook() | IWebhookFunctions |
| Trigger | 메모리 등록 + trigger() 호출 | emit() 콜백 호출 | ✅ | trigger() | ITriggerFunctions |
| Poll | 메모리 등록 + cron 스케줄링 | Cron 타이머 실행 | ✅ | poll() | IPollFunctions |
| Execute | - | 워크플로우 실행 중 도달 | ❌ | execute() | IExecuteFunctions |
중요한 이해: 대부분의 노드는 코드에서 직접 import { GraphQL } from '...'처럼 import되지 않습니다. 대신 다음과 같은 동적 로딩 메커니즘을 사용합니다:
packages/nodes-base/nodes/GraphQL/GraphQL.node.ts에서 클래스 정의packages/nodes-base/package.json의 n8n.nodes 배열에 등록LoadNodesAndCredentials 서비스가 서버 시작 시 자동 스캔파일: packages/cli/src/load-nodes-and-credentials.ts
// 서버 시작 시 모든 노드 자동 로딩
async init() {
await this.loadNodesFromNodeModules();
this.postProcessLoaders();
}
// package.json에서 노드 발견
private async loadNodesFromNodeModules() {
// 1. n8n-nodes-base/package.json 읽기
// 2. n8n.nodes 배열에서 각 노드 경로 추출
// 3. 노드 클래스 동적 로드
// 예: "dist/nodes/GraphQL/GraphQL.node.js" → GraphQL 클래스
this.known.nodes['n8n-nodes-base.graphql'] = {
className: 'GraphQL',
sourcePath: 'packages/nodes-base/nodes/GraphQL/GraphQL.node.ts'
};
}
// 노드 타입 레지스트리에 저장
private postProcessLoaders() {
this.types.nodes.push({
name: 'n8n-nodes-base.graphql',
displayName: 'GraphQL',
description: 'Makes a GraphQL request...',
// ... 모든 노드 메타데이터
});
}
결과: 모든 노드(GraphQL, Set, Webhook, Postgres 등 640개 모두)가 NodeTypes 서비스에 등록됨.
파일: packages/workflow/src/NodeTypes.ts
export class NodeTypes {
// 이름으로 노드 타입 조회 (모든 노드 공통)
getByNameAndVersion(nodeType: string, version?: number): INodeType {
// 예: 'n8n-nodes-base.graphql' → GraphQL 노드 클래스 반환
// 예: 'n8n-nodes-base.postgres' → Postgres 노드 클래스 반환
return this.loadedNodes[nodeType].type;
}
}
사용 위치:
packages/cli/src/webhooks/live-webhooks.ts:60 - 웹훅 노드 검증packages/cli/src/active-workflow-manager.ts:전체 - 모든 노드 활성화 시packages/core/src/execution-engine/workflow-execute.ts:전체 - 모든 노드 실행 시packages/workflow/src/Workflow.ts:전체 - 워크플로우 구조 파싱 시파일: packages/workflow/src/Workflow.ts
export class Workflow {
// 워크플로우의 모든 노드는 name(문자열)으로 저장됨
nodes: INode[] = [
{ name: 'GraphQL', type: 'n8n-nodes-base.graphql', parameters: {...} },
{ name: 'Postgres1', type: 'n8n-nodes-base.postgres', parameters: {...} },
{ name: 'Webhook', type: 'n8n-nodes-base.webhook', parameters: {...} }
];
// 이름으로 노드 찾기 (모든 노드 실행의 핵심 메서드)
getNode(nodeName: string): INode | null {
return this.nodes.find(node => node.name === nodeName);
}
// 트리거 노드만 필터링
getTriggerNodes(): INode[] {
return this.nodes.filter(node => {
const nodeType = this.nodeTypes.getByNameAndVersion(node.type);
return nodeType.trigger !== undefined;
});
}
// 웹훅 노드만 필터링
getWebhooks(): IWebhookData[] {
const webhooks = [];
for (const node of this.nodes) {
const nodeType = this.nodeTypes.getByNameAndVersion(node.type);
if (nodeType.webhook) {
webhooks.push(/* webhook 데이터 */);
}
}
return webhooks;
}
}
활성화 시: packages/cli/src/active-workflow-manager.ts:129-179
async addWebhooks(workflow, mode) {
const webhooks = workflow.getWebhooks(); // ← 모든 webhook 노드 찾기
for (const webhookData of webhooks) {
// database에 저장 (webhook_entity 테이블)
await this.webhookService.storeWebhook({
workflowId: workflow.id,
webhookPath: webhookData.path,
node: webhookData.node, // ← 노드 이름 (예: "Webhook", "HttpRequest1")
method: webhookData.httpMethod,
});
}
}
실행 시: packages/cli/src/webhooks/live-webhooks.ts:71-172
async executeWebhook(request, response) {
// 1. database에서 webhook 찾기
const webhook = await this.findWebhook(path, httpMethod);
// webhook.node = "Webhook" (저장된 노드 이름)
// 2. 워크플로우 로드
const workflow = new Workflow({ nodes, connections, nodeTypes });
// 3. 노드 이름으로 시작 노드 찾기
const workflowStartNode = workflow.getNode(webhook.node); // ← 여기서 사용!
// 4. 노드의 webhook() 메서드 실행
return await WebhookHelpers.executeWebhook(
workflow,
webhookData,
workflowStartNode, // ← Webhook 노드 전달
...
);
}
적용 노드 (package.json에서 webhook 메서드를 가진 노드):
Webhook (line 578) - packages/nodes-base/nodes/Webhook/Webhook.node.tsHttpRequest 시리즈 (line 602-605) - packages/nodes-base/nodes/HttpRequest/ChatTrigger (langchain line 89) - packages/@n8n/nodes-langchain/nodes/trigger/ChatTrigger/McpTrigger (langchain line 52) - packages/@n8n/nodes-langchain/nodes/mcp/McpTrigger/Form 시리즈 - packages/nodes-base/nodes/Form/활성화 시: packages/cli/src/active-workflow-manager.ts:190-281
async addTriggersAndPollers(workflow, mode) {
const triggerNodes = workflow.getTriggerNodes(); // ← 모든 trigger 노드 찾기
for (const triggerNode of triggerNodes) {
// TriggerContext 생성 (emit 콜백 포함)
const triggerFunctions = this.getExecuteTriggerFunctions(...);
// trigger() 메서드 호출
const triggerResponse = await this.triggersAndPollers.runTrigger(
workflow,
triggerNode, // ← 트리거 노드 (예: ManualTrigger, KafkaTrigger)
triggerFunctions,
);
// 메모리에 계속 유지
this.activeWorkflows.add(workflow.id, { triggerResponses: [triggerResponse] });
}
}
emit 콜백: packages/cli/src/active-workflow-manager.ts:339-401
getExecuteTriggerFunctions(workflowData) {
return (workflow: Workflow, node: INode) => {
const emit = (data: INodeExecutionData[][]) => {
// 트리거가 emit하면 워크플로우 실행
this.workflowExecutionService.runWorkflow(
workflowData,
node, // ← trigger 노드 (예: "ScheduleTrigger", "KafkaTrigger")
data,
...
);
};
return new TriggerContext(workflow, node, additionalData, mode, emit);
};
}
적용 노드 (package.json에서 trigger 메서드를 가진 노드, [T] 표시):
ManualTrigger (line 647) - packages/nodes-base/nodes/ManualTrigger/ScheduleTrigger (line 744) - packages/nodes-base/nodes/Schedule/KafkaTrigger (line 624) - packages/nodes-base/nodes/Kafka/RabbitMQTrigger (line 723) - packages/nodes-base/nodes/RabbitMQ/PostgresTrigger (line 716) - packages/nodes-base/nodes/Postgres/*Trigger 노드 (총 약 80개)실행 시: packages/core/src/execution-engine/workflow-execute.ts:1404-2100
async processRunExecutionData(workflow: Workflow) {
// 실행 루프 - 모든 execute 노드가 여기서 실행됨
while (this.runExecutionData.executionData!.nodeExecutionStack.length !== 0) {
const executionData = this.runExecutionData.executionData!.nodeExecutionStack.shift();
const executionNode = executionData.node; // ← 노드 이름 (예: "GraphQL1", "Set", "Code2")
// 노드 실행
const runNodeData = await this.runNode(
workflow,
executionData,
...
);
// 다음 노드들을 스택에 추가
workflow.getChildNodes(executionNode.name).forEach((childNodeName) => {
this.addNodeToBeExecuted(workflow, { node: childNodeName });
});
}
}
노드 실행 상세: packages/core/src/execution-engine/workflow-execute.ts:1662-1725
private async executeNode(workflow, node: INode, ...) {
// 1. 노드 타입 조회 (이름으로)
const nodeType = workflow.nodeTypes.getByNameAndVersion(node.type);
// 예: node.type = 'n8n-nodes-base.graphql' → GraphQL 클래스 반환
// 2. ExecuteContext 생성
const context = new ExecuteContext(workflow, node, ...);
// 3. execute() 메서드 호출
let data: INodeExecutionData[][];
if (nodeType.execute) {
data = await nodeType.execute.call(context); // ← 노드의 execute() 실행
}
return { data };
}
적용 노드 (execute 메서드를 가진 모든 노드, 약 500개):
GraphQL (line 578) - packages/nodes-base/nodes/GraphQL/GraphQL.node.tsSet (line 752-755) - packages/nodes-base/nodes/Set/Code (line 473) - packages/nodes-base/nodes/Code/Code.node.tsPostgres (line 714-716) - packages/nodes-base/nodes/Postgres/Slack (line 758-761) - packages/nodes-base/nodes/Slack/GoogleSheets (line 567-569) - packages/nodes-base/nodes/Google/Sheet/If (line 594-596) - packages/nodes-base/nodes/If/Switch (line 779-781) - packages/nodes-base/nodes/Switch/특수한 실행 방식: packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts
AI 노드는 두 가지 방식으로 실행됩니다:
execute 메서드)async execute(this: IExecuteFunctions) {
// workflow 실행 중 다른 노드처럼 실행됨
// 위의 "C. Execute 노드" 패턴과 동일
}
supplyData 메서드)async supplyData(this: ISupplyDataFunctions, itemIndex: number) {
// Agent, Tool, Chain 등 LangChain 객체 반환
// 다른 AI 노드가 연결해서 사용
return { response: agentInstance };
}
연결 해석: packages/workflow/src/Workflow.ts
getConnectionInputData(connectionType: string, ...) {
// AI 노드들의 동적 연결 해석
// 예: Agent → Tool → VectorStore 연결
const connectedNode = this.getNode(connection.node);
const nodeType = this.nodeTypes.getByNameAndVersion(connectedNode.type);
if (nodeType.supplyData) {
return await nodeType.supplyData.call(context, itemIndex);
}
}
적용 노드 (langchain package.json):
Agent (line 6) - packages/@n8n/nodes-langchain/nodes/agents/Agent/ToolHttpRequest (line 77) - packages/@n8n/nodes-langchain/nodes/tools/ToolHttpRequest/VectorStorePinecone (line 99) - packages/@n8n/nodes-langchain/nodes/vector_store/VectorStorePinecone/MemoryBufferWindow (line 55) - packages/@n8n/nodes-langchain/nodes/memory/MemoryBufferWindow/| 파일 경로 | 메서드 | 사용 목적 | 적용 노드 |
|---|---|---|---|
packages/workflow/src/Workflow.ts:전체 | getNode(name) | 이름으로 노드 찾기 | 모든 640개 노드 |
packages/workflow/src/Workflow.ts:getTriggerNodes() | getTriggerNodes() | 트리거 노드 필터링 | Trigger 노드 (~80개) |
packages/workflow/src/Workflow.ts:getWebhooks() | getWebhooks() | 웹훅 노드 필터링 | Webhook 노드 (~10개) |
packages/cli/src/webhooks/live-webhooks.ts:135 | getNode(webhook.node) | 웹훅 시작 노드 조회 | Webhook, HttpRequest, ChatTrigger 등 |
packages/cli/src/active-workflow-manager.ts:194 | getTriggerNodes() | 트리거 활성화 | ManualTrigger, ScheduleTrigger, KafkaTrigger 등 |
packages/cli/src/active-workflow-manager.ts:131 | getWebhooks() | 웹훅 등록 | Webhook, Form, HttpRequest 등 |
packages/core/src/execution-engine/workflow-execute.ts:1662 | nodeTypes.getByNameAndVersion() | 노드 실행 | 모든 Execute 노드 (~500개) |
packages/workflow/src/NodeTypes.ts:전체 | getByNameAndVersion(type) | 타입으로 노드 클래스 조회 | 모든 640개 노드 |
| 노드 이름 | package.json 라인 | 파일 경로 | 사용 패턴 |
|---|---|---|---|
GraphQL | 578 | packages/nodes-base/nodes/GraphQL/GraphQL.node.ts | Execute (C) |
Webhook | 850 | packages/nodes-base/nodes/Webhook/Webhook.node.ts | Webhook (A) |
ManualTrigger | 647 | packages/nodes-base/nodes/ManualTrigger/ManualTrigger.node.ts | Trigger (B) |
Code | 473 | packages/nodes-base/nodes/Code/Code.node.ts | Execute (C) |
Set (V2) | 755 | packages/nodes-base/nodes/Set/v2/SetV2.node.ts | Execute (C) |
If (V2) | 596 | packages/nodes-base/nodes/If/V2/IfV2.node.ts | Execute (C) |
Switch (V3) | 781 | packages/nodes-base/nodes/Switch/V3/SwitchV3.node.ts | Execute (C) |
Postgres (V2) | 716 | packages/nodes-base/nodes/Postgres/v2/PostgresV2.node.ts | Execute (C) |
Slack (V2) | 761 | packages/nodes-base/nodes/Slack/V2/SlackV2.node.ts | Execute (C) |
GoogleSheets (V2) | 569 | packages/nodes-base/nodes/Google/Sheet/v2/GoogleSheetsV2.node.ts | Execute (C) |
ScheduleTrigger | 744 | packages/nodes-base/nodes/Schedule/ScheduleTrigger.node.ts | Trigger (B) |
HttpRequest (V3) | 605 | packages/nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts | Execute (C) |
| 노드 이름 | package.json 라인 | 파일 경로 | 사용 패턴 |
|---|---|---|---|
Agent | 6 | packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts | AI (D) |
LmChatOpenAi | 43 | packages/@n8n/nodes-langchain/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.ts | AI (D) |
ToolHttpRequest | 77 | packages/@n8n/nodes-langchain/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.ts | AI (D) |
VectorStorePinecone | 99 | packages/@n8n/nodes-langchain/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.ts | AI (D) |
ChatTrigger | 89 | packages/@n8n/nodes-langchain/nodes/trigger/ChatTrigger/ChatTrigger.node.ts | Webhook (A) |
MemoryBufferWindow | 55 | packages/@n8n/nodes-langchain/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.ts | AI (D) |
핵심 요약:
.node.ts 파일에서 클래스 정의 (640개 모두)package.json의 n8n.nodes 배열에 등록 (640개 모두)LoadNodesAndCredentials가 서버 시작 시 자동 스캔 (640개 모두)workflow.getNode("GraphQL1")nodeTypes.getByNameAndVersion("n8n-nodes-base.graphql")live-webhooks.ts에서 HTTP 요청 수신 시 실행active-workflow-manager.ts에서 활성화 후 emit 콜백으로 실행workflow-execute.ts의 실행 루프에서 순차 실행GraphQL 예시:
import { GraphQL } from '...' (이런 코드는 존재하지 않음)LoadNodesAndCredentials → NodeTypes 레지스트리workflow.getNode("GraphQL1") → GraphQL 노드 인스턴스nodeTypes.getByNameAndVersion("n8n-nodes-base.graphql") → GraphQL 클래스workflow-execute.ts의 executeNode()에서 graphqlNode.execute() 호출이 패턴은 모든 640개 노드에 동일하게 적용됩니다.
문서 버전: 3.0 | 생성일: 2026-02-04 | 업데이트: 2026-02-09 | 소스: 실제 코드베이스 분석