문서 동기화 워크플로우
고급
이것은자동화 워크플로우로, 16개의 노드를 포함합니다.주로 If, Slack, Github, GithubTrigger, Agent 등의 노드를 사용하며. 자동 문서 동기화: GitHub에서 Slack으로, GPT-4o Mini 요약 포함
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •GitHub Personal Access Token
- •OpenAI API Key
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "x0albhzs79R3Tmfm",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Documentation Sync Workflow",
"tags": [],
"nodes": [
{
"id": "e6f72597-24f7-46f9-bf57-df361d91d2c0",
"name": "PR 이벤트 수신 대기",
"type": "n8n-nodes-base.githubTrigger",
"position": [
-2064,
176
],
"webhookId": "262ba0f4-0671-4950-9ce2-e5316717edab",
"parameters": {
"owner": {
"__rl": true,
"mode": "url",
"value": "https://github.com/anuj658/n8n-project/tree/anuj"
},
"events": [
"pull_request"
],
"options": {},
"repository": {
"__rl": true,
"mode": "list",
"value": "n8n-project",
"cachedResultUrl": "https://github.com/anuj658/n8n-project",
"cachedResultName": "n8n-project"
},
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": "xqrQrEJwugKxUIab",
"name": "GitHub account-anuj"
}
},
"typeVersion": 1
},
{
"id": "155ef9cd-fe67-4af8-90b7-8cd33ab904af",
"name": "📋 워크플로우 개요",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2384,
80
],
"parameters": {
"width": 250,
"height": 300,
"content": "🚀 WORKFLOW START\n\nThis workflow monitors GitHub pull requests and automatically syncs documentation to Confluence when changes are merged to the main branch.\n\n• Triggers on PR events\n• Validates PR is merged to main\n• Detects doc changes\n• Updates Confluence\n• Notifies team via Slack"
},
"typeVersion": 1
},
{
"id": "17016417-98fe-437d-bc8a-0dc47f78f737",
"name": "PR이 Main에 병합되었는가?",
"type": "n8n-nodes-base.if",
"position": [
-1840,
176
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"body\"][\"pull_request\"][\"base\"][\"ref\"]}}",
"value2": "main",
"operation": "contains"
},
{
"value1": "={{$json[\"body\"][\"pull_request\"][\"merged\"]}}",
"value2": "false"
}
]
}
},
"typeVersion": 1
},
{
"id": "58d77011-30ef-4083-8039-8ad7c19b400f",
"name": "🔍 검증 게이트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1952,
352
],
"parameters": {
"width": 280,
"height": 280,
"content": "✅ VALIDATION GATE\n\nChecks if the pull request:\n✓ Is targeting the 'main' branch\n✓ Has been merged (merged = true)\n\nOnly proceeds if BOTH conditions are met. This prevents syncing of unmerged or draft PRs."
},
"typeVersion": 1
},
{
"id": "ecd617ef-c912-463c-b33f-a5d4754465ef",
"name": "README 콘텐츠 가져오기",
"type": "n8n-nodes-base.github",
"position": [
-1616,
176
],
"webhookId": "51b734f8-e1cd-4bd0-8996-6b8e38f1cee0",
"parameters": {
"owner": {
"__rl": true,
"mode": "url",
"value": "https://github.com/anuj658/n8n-project"
},
"filePath": "README.md",
"resource": "file",
"operation": "get",
"repository": {
"__rl": true,
"mode": "list",
"value": "n8n-project",
"cachedResultUrl": "https://github.com/anuj658/n8n-project",
"cachedResultName": "n8n-project"
},
"authentication": "oAuth2",
"additionalParameters": {}
},
"credentials": {
"githubOAuth2Api": {
"id": "xqrQrEJwugKxUIab",
"name": "GitHub account-anuj"
}
},
"typeVersion": 1.1
},
{
"id": "cf09bbcd-f959-4ae1-8c1e-7c902072910f",
"name": "📥 파일 검색",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1712,
-128
],
"parameters": {
"width": 280,
"height": 280,
"content": "📥 GITHUB FILE RETRIEVAL\n\nFetches the README.md file from the repository to:\n• Extract documentation content\n• Pass to change detection\n• Provide context for AI summarization\n\nUses GitHub OAuth2 for authentication"
},
"typeVersion": 1
},
{
"id": "456cf796-a361-4d82-afea-9bc66fe7f429",
"name": "문서가 수정되었는가?",
"type": "n8n-nodes-base.if",
"position": [
-1392,
176
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{JSON.stringify($json)}}",
"value2": "docs",
"operation": "contains"
},
{
"value1": "={{JSON.stringify($json)}}",
"value2": "README",
"operation": "contains"
},
{
"value1": "={{JSON.stringify($json)}}",
"value2": "openapi",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"id": "1f990ead-3f32-48c7-bbd7-a9cf5b9af9f9",
"name": "🔎 문서 감지",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1504,
352
],
"parameters": {
"width": 280,
"height": 320,
"content": "🔎 DOCUMENTATION DETECTION\n\nScans the PR payload for keywords:\n✓ 'docs' folder changes\n✓ 'README' file modifications\n✓ 'openapi' spec updates\n\nIf ANY documentation changes detected:\n→ Routes to AI summarization\n→ Updates Confluence\n→ Notifies team\n\nOtherwise: Workflow ends"
},
"typeVersion": 1
},
{
"id": "622f0344-42a4-477c-ae9a-0a7c5b4c7355",
"name": "AI 요약 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1168,
-80
],
"parameters": {
"text": "Summarize the changes in the documentation briefly in 2-3 sentences.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "2c845de1-a35c-4f32-b112-74fb4e677880",
"name": "🤖 AI 에이전트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-384
],
"parameters": {
"width": 280,
"height": 280,
"content": "🤖 AI SUMMARIZATION\n\nUses Azure OpenAI to:\n• Analyze doc changes\n• Generate concise summary\n• 2-3 sentence summary format\n\nOutput used for:\n→ Confluence update descriptions\n→ Slack notification message"
},
"typeVersion": 1
},
{
"id": "41f13861-a2bf-4c35-b1ea-82f2e275768f",
"name": "Azure OpenAI 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
-864,
240
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "f7559c04-28b2-4e3c-bb7d-06436e8524fd",
"name": "⚙️ LLM 설정",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
208
],
"parameters": {
"width": 280,
"height": 280,
"content": "⚙️ LLM CONFIGURATION\n\nModel: GPT-4o Mini\nProvider: Azure OpenAI\n\nFeatures:\n• Fast processing\n• Cost-efficient\n• Context-aware summarization\n\nConnected to AI Agent for intelligent analysis"
},
"typeVersion": 1
},
{
"id": "9f005c0f-1416-4166-9d83-a26b658f0b84",
"name": "문서 팀에 알림 (Slack)",
"type": "n8n-nodes-base.slack",
"position": [
-1056,
320
],
"parameters": {
"text": "📢 *Docs Auto-Synced!*\n📦 Repo: {{$json[\"body\"][\"repository\"][\"full_name\"]}}\n🌿 Branch: {{$json[\"body\"][\"pull_request\"][\"base\"][\"ref\"]}}\n👤 Author: {{$json[\"body\"][\"pull_request\"][\"user\"][\"login\"]}}\n📝 Title: {{$json[\"body\"][\"pull_request\"][\"title\"]}}\n🔗 PR: {{$json[\"body\"][\"pull_request\"][\"html_url\"]}}",
"channel": "#documentation-updates",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": null,
"name": "Slack Token"
}
},
"typeVersion": 1
},
{
"id": "205d8659-f97b-4310-ac09-0174da664684",
"name": "📢 Slack 알림",
"type": "n8n-nodes-base.stickyNote",
"position": [
-992,
512
],
"parameters": {
"width": 280,
"height": 300,
"content": "📢 SLACK NOTIFICATION\n\nSends message to #documentation-updates with:\n✓ Auto-sync confirmation\n✓ Repository name\n✓ Target branch\n✓ Author name\n✓ PR title\n✓ PR link\n\nKeeps team informed of doc updates in real-time"
},
"typeVersion": 1
},
{
"id": "8e8c820c-ad01-40e9-b269-e1fa4f1ffc4f",
"name": "AI 요약을 Slack에 게시",
"type": "n8n-nodes-base.slack",
"position": [
-816,
16
],
"webhookId": "3bd11cca-5947-4933-ab7d-9bdaadb693b5",
"parameters": {
"text": "🔔 Documentation changes detected:\n{{$json}}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09GNB90TED",
"cachedResultName": "general-information"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "31816220-f24d-47b2-ae2f-737e1157ed0e",
"name": "📤 요약 게시",
"type": "n8n-nodes-base.stickyNote",
"position": [
-816,
-272
],
"parameters": {
"width": 280,
"height": 280,
"content": "📤 AI SUMMARY TO SLACK\n\nChannel: general-information\n\nPosts AI-generated summary to:\n• Keep team informed\n• Share key changes\n• Link to PR details\n• Enable quick reviews"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "bc63ac13-fb64-4148-99ea-e6e60d9c6d96",
"connections": {
"456cf796-a361-4d82-afea-9bc66fe7f429": {
"main": [
[
{
"node": "622f0344-42a4-477c-ae9a-0a7c5b4c7355",
"type": "main",
"index": 0
}
],
[
{
"node": "9f005c0f-1416-4166-9d83-a26b658f0b84",
"type": "main",
"index": 0
}
]
]
},
"41f13861-a2bf-4c35-b1ea-82f2e275768f": {
"ai_languageModel": [
[
{
"node": "622f0344-42a4-477c-ae9a-0a7c5b4c7355",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"622f0344-42a4-477c-ae9a-0a7c5b4c7355": {
"main": [
[
{
"node": "8e8c820c-ad01-40e9-b269-e1fa4f1ffc4f",
"type": "main",
"index": 0
}
]
]
},
"ecd617ef-c912-463c-b33f-a5d4754465ef": {
"main": [
[
{
"node": "456cf796-a361-4d82-afea-9bc66fe7f429",
"type": "main",
"index": 0
}
]
]
},
"e6f72597-24f7-46f9-bf57-df361d91d2c0": {
"main": [
[
{
"node": "17016417-98fe-437d-bc8a-0dc47f78f737",
"type": "main",
"index": 0
}
]
]
},
"17016417-98fe-437d-bc8a-0dc47f78f737": {
"main": [
[
{
"node": "ecd617ef-c912-463c-b33f-a5d4754465ef",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
코드 주석을 FAQ로 동기화 (GitHub)
GPT-4o, Notion 및 Slack을 사용한 개발 팀을 위한 GitHub PR 질문 자동 답변
If
Code
Slack
+
If
Code
Slack
18 노드Rahul Joshi
엔지니어링
API 속도 제한 및 인증 FAQ 테스트
GPT-4o-mini, Google 시트 및 Slack 알림을 사용한 API FAQ 품질 테스트 자동화
If
Set
Code
+
If
Set
Code
19 노드Rahul Joshi
문서 추출
Slack, Gmail 및 AI를 사용한 Jira 백로그 정리 및 보고 자동화
Slack, Gmail 및 GPT-4를 통한 Jira 할 일 정리 및 보고 자동화
If
Set
Jira
+
If
Set
Jira
31 노드Rahul Joshi
릴리스 노트를 FAQ 스텁으로 변환(Jira/ClickUp)
GPT-4o를 사용한 ClickUp에서 Notion 및 Slack으로 릴리스 노트 자동 생성
If
Code
Gmail
+
If
Code
Gmail
20 노드Rahul Joshi
엔지니어링
세일즈 담당자 성과 추적기
HighLevel CRM, GPT-4o, Notion 및 Slack 기반 자동화된 영업 리더보드
If
Code
Slack
+
If
Code
Slack
21 노드Rahul Joshi
고객관계관리
AI 기반 API 오류 디렉토리 구축: GitHub에서 Airtable, Notion, Slack으로
GPT-4o를 사용하여 GitHub API 오류를 Airtable, Notion, Slack에 자동 감지 및 분류
If
Set
Code
+
If
Set
Code
30 노드Rahul Joshi
티켓 관리
워크플로우 정보
난이도
고급
노드 수16
카테고리-
노드 유형7
저자
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유