ドキュメント同期ワークフロー
上級
これは自動化ワークフローで、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 Model",
"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よくある質問品質テストの自動化
If
Set
Code
+
If
Set
Code
19 ノードRahul Joshi
文書抽出
Jira のタスク整理レポートをSlack、Gmail、AIで自動化
Slack、Gmail そして GPT-4 を使った Jira タスク整理とレポートの自動化
If
Set
Jira
+
If
Set
Jira
31 ノードRahul Joshi
リリースノートをよくある質問用に変換(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で表示 →
このワークフローを共有