n8n 워크플로 스킬은(는) 무엇을 하나요?
사전 구축된 노드 스니펫과 검증된 패턴을 사용하여 n8n 워크플로를 API를 통해 완전히 구축, 배포 및 관리합니다.
설정
사용 전에 아래에 인스턴스 세부 정보를 입력하세요. API 키는 n8n 설정 > API에서 가져올 수 있습니다.
- URL:
https://YOUR_INSTANCE.app.n8n.cloud - API 키:
YOUR_API_KEY - 프로젝트 ID:
YOUR_PROJECT_ID(선택 사항, 다중 프로젝트 인스턴스의 경우)
자격 증명
여기에 자격 증명 별칭을 매핑하세요. ID는 GET /api/v1/credentials에서 가져올 수 있습니다.
| 별칭 | 자격 증명 유형 | ID | 이름 |
|---|---|---|---|
| gmail | gmailOAuth2 | ||
| sheets | googleSheetsOAuth2Api | ||
| slack | slackOAuth2Api | ||
| openai | openAiApi | ||
| anthropic | anthropicApi | ||
| telegram | telegramApi | ||
| notion | notionApi |
필요에 따라 행을 추가하세요. name 필드는 n8n 인스턴스(설정 > 자격 증명)에서 자격 증명에 지정한 이름과 정확히 일치해야 합니다. ./references/nodes/의 노드 스니펫은 플레이스홀더 자격 증명을 사용합니다. Claude는 워크플로를 빌드할 때 이 테이블의 ID를 자동으로 대체합니다.
빠른 시작: 새 워크플로
./references/nodes/에서 사전 구축된 노드 스니펫을 확인합니다. 복사, 이름 변경, 위치 설정.- JSON(nodes 배열 + connections 객체)을 빌드합니다.
/tmp/<name>.json에 씁니다.- 실행:
bash ./references/deploy.sh /tmp/<name>.json - 완료. 스크립트가 POST, 프로젝트 전송, 확인 및 인덱스 업데이트를 처리합니다.
연결 형식
"Source Name": { "main": [[{"node": "Target", "type": "main", "index": 0}]] }
- 팬 아웃 (하나의 소스, 여러 대상):
"main": [[{"node": "A", ...}, {"node": "B", ...}]] - 입력 병합: 소스 A는
"index": 0으로, 소스 B는"index": 1로 연결 - IF 분기:
"main": [ [true 대상], [false 대상] ] - AI 하위 노드:
"ai_languageModel": [[{"node": "Model Name", "type": "ai_languageModel", "index": 0}]] - AI 도구 하위 노드:
"ai_tool": [[{"node": "Tool Name", "type": "ai_tool", "index": 0}]]
워크플로 JSON 구조
{
"name": "워크플로 이름",
"nodes": [...],
"connections": {...},
"settings": { "executionOrder": "v1", "callerPolicy": "any" }
}
- POST 본문에는
active필드를 포함하지 마십시오(읽기 전용, 활성화하려면 PATCH 사용). - 다음을 제외한 모든 settings 키를 제거하십시오:
executionOrder,callerPolicy,saveDataSuccessExecution,errorWorkflow(있는 경우). - PUT 전에 반드시 제거해야 하는 키:
binaryMode,availableInMCP,timeSavedMode
API 엔드포인트
POST /api/v1/workflows — 생성
GET /api/v1/workflows/{id} — 가져오기 (PUT 전에 항상 실행)
PUT /api/v1/workflows/{id} — 업데이트
PATCH /api/v1/workflows/{id} — 활성화/비활성화: { "active": true }
PUT /api/v1/workflows/{id}/transfer — 프로젝트로 이동
GET /api/v1/executions/{id}?includeData=true — 실행 데이터 가져오기
GET /api/v1/credentials — 모든 자격 증명 나열
규칙
- GET 후 PUT — 캐시에서 수정하지 말고, 항상 최신 버전을 먼저 가져오십시오.
- PUT 후 확인 — 다시 가져와서 변경 사항이 적용되었는지 확인하십시오.
- 연결은 UUID가 아닌 노드 이름을 사용합니다.
- HTTP 요청보다는 기본 플랫폼 노드를 선호하십시오(UI에 플랫폼 로고가 표시됨).
!문자가 포함된 코드 노드: 먼저 JS를/tmp/*.js에 쓴 다음, 다시 읽어오십시오(Python 문자열 이스케이프가!를\!로 바꿈).- 실행 데이터 가져오기 시
includeData=true사용(이 없으면data.resultData.runData가 null이 됨). callerPolicy허용 값:any,none,workflowsFromAList,workflowsFromSameOwner
표현식 구문 (HTTP 요청 본문)
- 작동:
={{ ({ key: value }) }}— 괄호 안의 객체, JSON.stringify 없음 - 손상:
={{ JSON.stringify({...}) }}— "올바르지 않은 구문" 오류 발생 - 손상: 정적 JSON 본문 내에 포함된
={{ }}— 평가되지 않음 - 노드 간 참조:
$item(0).$node["NodeName"].json.field
노드 라이브러리
사전 구축된 노드 스니펫은 ./references/nodes/에 있습니다. 각 파일은 바로 사용할 수 있는 JSON 노드 객체입니다.
필수 워크플로:
- 노드를 빌드하기 전에
./references/nodes/*.json을 glob하여 사용 가능한 것을 확인하십시오. - 라이브러리에 노드 유형이 있으면 해당 JSON을 복사하여 사용자 지정(이름, 위치, 매개변수)하십시오. 처음부터 작성하지 마십시오.
- 라이브러리에 노드 유형이 없으면 처음부터 빌드하십시오.
- 워크플로가 배포된 후, 빌드한 새 노드 유형을
./references/nodes/<node-name>.json으로 라이브러리에 저장하십시오.
심층 참조 (필요할 때만 로드)
./references/patterns.md— 재시도 패턴, 영구 상태, 표현식 문제점./references/rules.md— PUT/POST 규칙, 설정 화이트리스트, 명명 규칙./references/node-types.md— 일반적인 노드 유형에 대한 매개변수 참조