品質管理ドキュメントとコンプライアンス追跡ツール
上級
これは自動化ワークフローで、21個のノードを含みます。主にIf, Code, Slack, EmailSend, GoogleDriveなどのノードを使用。 JotformとGoogle Workspaceを使用して製造品質管理文書とコンプライアンスを自動化
前提条件
- •Slack Bot Token または Webhook URL
- •Google Drive API認証情報
- •Google Sheets API認証情報
カテゴリー
-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "MAgkC5xPvs1oSfOG",
"meta": {
"instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8"
},
"name": "Quality Control Documentation & Compliance Tracker",
"tags": [
{
"id": "CWardZYJBmejoyC4",
"name": "under review",
"createdAt": "2025-10-09T18:43:37.031Z",
"updatedAt": "2025-10-09T18:43:37.031Z"
},
{
"id": "DP1soi5mjVldqSt2",
"name": "Manufacturing",
"createdAt": "2025-10-16T07:01:03.515Z",
"updatedAt": "2025-10-16T07:01:03.515Z"
},
{
"id": "YsSinivD5gbLQ0t9",
"name": "Quality Control",
"createdAt": "2025-10-16T07:01:03.524Z",
"updatedAt": "2025-10-16T07:01:03.524Z"
},
{
"id": "fVuzFMBZ0wHzY3en",
"name": "Compliance",
"createdAt": "2025-10-16T07:01:03.521Z",
"updatedAt": "2025-10-16T07:01:03.521Z"
}
],
"nodes": [
{
"id": "8f4dabc5-b0f6-4f4b-8e07-aec5b456c963",
"name": "新規検査の確認",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-656,
160
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 15
}
]
}
},
"typeVersion": 1.1
},
{
"id": "09bfd902-b390-418e-8b95-52f1e2b12853",
"name": "検査キューを読み取る",
"type": "n8n-nodes-base.googleSheets",
"position": [
-448,
160
],
"parameters": {
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 4
},
{
"id": "9511a47d-58f0-4755-9f03-c36adfcffbe4",
"name": "検査データを処理",
"type": "n8n-nodes-base.code",
"position": [
-256,
256
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Parse inspection data and determine compliance status\nconst item = $input.item.json;\n\n// Extract inspection details\nconst inspectionData = {\n id: item.inspection_id || new Date().getTime().toString(),\n timestamp: new Date().toISOString(),\n product_name: item.product_name || item.answers?.product_name || '',\n batch_number: item.batch_number || item.answers?.batch_number || '',\n inspector_name: item.inspector_name || item.answers?.inspector_name || '',\n inspection_type: item.inspection_type || item.answers?.inspection_type || 'Standard',\n \n // Measurement data\n measurements: {\n dimension_length: parseFloat(item.dimension_length || item.answers?.dimension_length || 0),\n dimension_width: parseFloat(item.dimension_width || item.answers?.dimension_width || 0),\n dimension_height: parseFloat(item.dimension_height || item.answers?.dimension_height || 0),\n weight: parseFloat(item.weight || item.answers?.weight || 0),\n temperature: parseFloat(item.temperature || item.answers?.temperature || 0)\n },\n \n // Quality checks\n visual_inspection: item.visual_inspection || item.answers?.visual_inspection || 'Pass',\n surface_finish: item.surface_finish || item.answers?.surface_finish || 'Acceptable',\n color_match: item.color_match || item.answers?.color_match || 'Yes',\n defects_found: item.defects_found || item.answers?.defects_found || 'None',\n \n // Compliance calculation\n specifications: {\n length_min: 100,\n length_max: 102,\n width_min: 50,\n width_max: 52,\n height_min: 25,\n height_max: 27,\n weight_min: 450,\n weight_max: 550\n }\n};\n\n// Check compliance\nconst m = inspectionData.measurements;\nconst s = inspectionData.specifications;\n\nconst dimensionsCompliant = \n m.dimension_length >= s.length_min && m.dimension_length <= s.length_max &&\n m.dimension_width >= s.width_min && m.dimension_width <= s.width_max &&\n m.dimension_height >= s.height_min && m.dimension_height <= s.height_max;\n\nconst weightCompliant = m.weight >= s.weight_min && m.weight <= s.weight_max;\n\nconst visualCompliant = \n inspectionData.visual_inspection === 'Pass' &&\n inspectionData.surface_finish === 'Acceptable' &&\n inspectionData.color_match === 'Yes';\n\ninspectionData.compliance_status = \n dimensionsCompliant && weightCompliant && visualCompliant ? 'PASS' : 'FAIL';\n\ninspectionData.non_conformities = [];\nif (!dimensionsCompliant) inspectionData.non_conformities.push('Dimensions out of spec');\nif (!weightCompliant) inspectionData.non_conformities.push('Weight out of spec');\nif (!visualCompliant) inspectionData.non_conformities.push('Visual inspection failed');\n\nreturn inspectionData;"
},
"typeVersion": 2
},
{
"id": "5c1c11fe-848e-4951-9423-e86a0bb8b14b",
"name": "Google Drive に保存",
"type": "n8n-nodes-base.googleDrive",
"position": [
-48,
160
],
"parameters": {
"name": "=QC_Report_{{$json.batch_number}}_{{$json.id}}.json",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
}
},
"typeVersion": 3
},
{
"id": "32d6c442-d011-4dd4-8755-ed62277041b5",
"name": "追跡シートに記録",
"type": "n8n-nodes-base.googleSheets",
"position": [
160,
160
],
"parameters": {
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 4
},
{
"id": "8665c487-3083-4f39-b9de-69ad7bd68afd",
"name": "不合格か確認",
"type": "n8n-nodes-base.if",
"position": [
-48,
352
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json.compliance_status}}",
"value2": "FAIL"
}
]
}
},
"typeVersion": 1
},
{
"id": "ae823af6-bfe5-4c77-8789-b5c27daf5327",
"name": "品質チームに警告",
"type": "n8n-nodes-base.slack",
"position": [
160,
464
],
"webhookId": "d22990c8-4a80-46f8-8071-c6a7aedd2934",
"parameters": {
"text": "🚨 *Quality Control Alert*\n\nProduct: {{$json.product_name}}\nBatch: {{$json.batch_number}}\nStatus: *{{$json.compliance_status}}*\n\nNon-conformities:\n{{$json.non_conformities.join('\\n• ')}}",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "e1e70d0c-4d12-4e10-85fc-b42a062451d2",
"name": "証明書を生成",
"type": "n8n-nodes-base.code",
"position": [
352,
160
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Generate HTML certificate of compliance\nconst data = $input.item.json;\n\nconst html = `\n<!DOCTYPE html>\n<html>\n<head>\n <style>\n body { font-family: Arial, sans-serif; margin: 40px; }\n .header { text-align: center; margin-bottom: 30px; }\n .certificate { border: 2px solid #333; padding: 30px; }\n h1 { color: #2c5aa0; }\n .details { margin: 20px 0; }\n .signature { margin-top: 50px; }\n .footer { text-align: center; margin-top: 30px; font-size: 12px; }\n </style>\n</head>\n<body>\n <div class=\"certificate\">\n <div class=\"header\">\n <h1>CERTIFICATE OF COMPLIANCE</h1>\n <p>ISO 9001:2015 Quality Management System</p>\n </div>\n \n <div class=\"details\">\n <p><strong>Certificate No:</strong> ${data.id}</p>\n <p><strong>Date:</strong> ${new Date(data.timestamp).toLocaleDateString()}</p>\n <p><strong>Product:</strong> ${data.product_name}</p>\n <p><strong>Batch Number:</strong> ${data.batch_number}</p>\n <p><strong>Inspector:</strong> ${data.inspector_name}</p>\n \n <h3>Inspection Results</h3>\n <table border=\"1\" style=\"width: 100%; border-collapse: collapse;\">\n <tr>\n <th>Parameter</th>\n <th>Measured Value</th>\n <th>Specification</th>\n <th>Status</th>\n </tr>\n <tr>\n <td>Length (mm)</td>\n <td>${data.measurements.dimension_length}</td>\n <td>100-102</td>\n <td>${data.measurements.dimension_length >= 100 && data.measurements.dimension_length <= 102 ? '✓' : '✗'}</td>\n </tr>\n <tr>\n <td>Width (mm)</td>\n <td>${data.measurements.dimension_width}</td>\n <td>50-52</td>\n <td>${data.measurements.dimension_width >= 50 && data.measurements.dimension_width <= 52 ? '✓' : '✗'}</td>\n </tr>\n <tr>\n <td>Weight (g)</td>\n <td>${data.measurements.weight}</td>\n <td>450-550</td>\n <td>${data.measurements.weight >= 450 && data.measurements.weight <= 550 ? '✓' : '✗'}</td>\n </tr>\n </table>\n \n <h3>Compliance Status: ${data.compliance_status}</h3>\n </div>\n \n <div class=\"signature\">\n <p>_______________________</p>\n <p>Quality Manager Signature</p>\n </div>\n \n <div class=\"footer\">\n <p>This certificate is electronically generated and valid without signature</p>\n </div>\n </div>\n</body>\n</html>\n`;\n\nreturn {\n html: html,\n filename: `Certificate_${data.batch_number}_${data.id}.html`\n};"
},
"typeVersion": 2
},
{
"id": "622adac3-cd64-44d5-839e-dca015951252",
"name": "証明書をメール送信",
"type": "n8n-nodes-base.emailSend",
"position": [
560,
160
],
"webhookId": "2f8295a5-2d25-49cb-b690-694a0ca8cd3a",
"parameters": {
"options": {
"attachments": "={{$node['Generate Certificate'].json.html}}"
},
"subject": "Quality Certificate - Batch {{$json.batch_number}}",
"toEmail": "={{$json.customer_email || 'customer@example.com'}}",
"fromEmail": "quality@yourcompany.com"
},
"typeVersion": 2.1
},
{
"id": "8bbe8307-48a8-4875-9e55-27988dc638af",
"name": "日次レポートトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-656,
656
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.1
},
{
"id": "1af14ece-11a2-44a0-a935-8cdbdc0cff3e",
"name": "日次データを取得",
"type": "n8n-nodes-base.googleSheets",
"position": [
-448,
656
],
"parameters": {
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 4
},
{
"id": "91204a97-f66a-4d3f-bc34-f9b06b25e21f",
"name": "サマリーを生成",
"type": "n8n-nodes-base.code",
"position": [
-256,
656
],
"parameters": {
"jsCode": "// Generate daily compliance summary\nconst items = $input.all();\nconst today = new Date().toDateString();\n\nconst todaysInspections = items.filter(item => {\n const itemDate = new Date(item.json.timestamp).toDateString();\n return itemDate === today;\n});\n\nconst summary = {\n date: today,\n total_inspections: todaysInspections.length,\n passed: todaysInspections.filter(i => i.json.compliance_status === 'PASS').length,\n failed: todaysInspections.filter(i => i.json.compliance_status === 'FAIL').length,\n pass_rate: 0,\n products_inspected: [...new Set(todaysInspections.map(i => i.json.product_name))],\n inspectors: [...new Set(todaysInspections.map(i => i.json.inspector_name))],\n common_issues: {}\n};\n\nif (summary.total_inspections > 0) {\n summary.pass_rate = ((summary.passed / summary.total_inspections) * 100).toFixed(1);\n}\n\n// Count non-conformities\ntodaysInspections.forEach(inspection => {\n if (inspection.json.non_conformities) {\n inspection.json.non_conformities.forEach(issue => {\n summary.common_issues[issue] = (summary.common_issues[issue] || 0) + 1;\n });\n }\n});\n\nreturn summary;"
},
"typeVersion": 2
},
{
"id": "4947aabe-e0be-4ea2-85f4-fa259b1f4290",
"name": "日次レポートを送信",
"type": "n8n-nodes-base.slack",
"position": [
-48,
656
],
"webhookId": "e8a8d211-7f01-45d0-a16b-64675b98d59f",
"parameters": {
"text": "📊 *Daily Quality Report*\nDate: {{$json.date}}\n\n*Summary:*\n• Total Inspections: {{$json.total_inspections}}\n• Passed: {{$json.passed}} ✅\n• Failed: {{$json.failed}} ❌\n• Pass Rate: {{$json.pass_rate}}%\n\n*Products Inspected:*\n{{$json.products_inspected.join('\\n• ')}}",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "151db029-c3da-4324-b523-014be9200479",
"name": "注記",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
112
],
"parameters": {
"width": 250,
"height": 156,
"content": "## 📥 INPUT SOURCES\n\n**Two ways to receive data:**\n- Form submissions\n- Scheduled checks"
},
"typeVersion": 1
},
{
"id": "efd420c8-6496-4775-ae49-e9ddd0439deb",
"name": "注記 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
384
],
"parameters": {
"width": 200,
"height": 152,
"content": "## 🔄 PROCESSING\n\nCalculates compliance\nbased on specs"
},
"typeVersion": 1
},
{
"id": "97aad2cd-f193-48d2-91c4-271a5c2d3a11",
"name": "注記 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
0
],
"parameters": {
"width": 372,
"height": 136,
"content": "## 💾 STORAGE\n\nSaves to Drive & tracking sheet"
},
"typeVersion": 1
},
{
"id": "d214ceff-a286-4941-aa49-a2e8ccad92f4",
"name": "注記 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
624
],
"parameters": {
"width": 180,
"height": 136,
"content": "## 🚨 ALERTS\n\nNotifies team\nfor failures only"
},
"typeVersion": 1
},
{
"id": "76539b89-3dab-4804-b6f8-c2f4b5dac0ec",
"name": "注記 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
320
],
"parameters": {
"width": 360,
"height": 120,
"content": "## 📋 DOCS\n\nGenerates & emails certificates"
},
"typeVersion": 1
},
{
"id": "11a5eb71-0f1f-4d6e-8f40-11113c6513e0",
"name": "注記 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-912,
688
],
"parameters": {
"width": 200,
"height": 168,
"content": "## 📊 DAILY REPORTS\n\nRuns at 8 AM\nSummarizes metrics"
},
"typeVersion": 1
},
{
"id": "7191be65-1d4b-4ee1-8eb5-48dd0343c85a",
"name": "注記 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
384
],
"parameters": {
"width": 314,
"height": 156,
"content": "## 📥 MANUAL FORM\n\nJotform Trigger\n\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)"
},
"typeVersion": 1
},
{
"id": "db6112a6-2bfe-4242-b893-8c4ab757592b",
"name": "Jotform トリガー",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-640,
416
],
"webhookId": "7ea0164b-ac9b-46b6-a7fa-bcd4003fe8cf",
"parameters": {
"form": "252815424602048"
},
"credentials": {
"jotFormApi": {
"id": "cOSh16Q5l4e0EB1A",
"name": "Jotform jitesh@mediajade.com"
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "43118887-aa49-452b-81c1-4ad1fc98eabb",
"connections": {
"1af14ece-11a2-44a0-a935-8cdbdc0cff3e": {
"main": [
[
{
"node": "91204a97-f66a-4d3f-bc34-f9b06b25e21f",
"type": "main",
"index": 0
}
]
]
},
"8665c487-3083-4f39-b9de-69ad7bd68afd": {
"main": [
[
{
"node": "ae823af6-bfe5-4c77-8789-b5c27daf5327",
"type": "main",
"index": 0
}
]
]
},
"db6112a6-2bfe-4242-b893-8c4ab757592b": {
"main": [
[
{
"node": "9511a47d-58f0-4755-9f03-c36adfcffbe4",
"type": "main",
"index": 0
}
]
]
},
"91204a97-f66a-4d3f-bc34-f9b06b25e21f": {
"main": [
[
{
"node": "4947aabe-e0be-4ea2-85f4-fa259b1f4290",
"type": "main",
"index": 0
}
]
]
},
"8bbe8307-48a8-4875-9e55-27988dc638af": {
"main": [
[
{
"node": "1af14ece-11a2-44a0-a935-8cdbdc0cff3e",
"type": "main",
"index": 0
}
]
]
},
"e1e70d0c-4d12-4e10-85fc-b42a062451d2": {
"main": [
[
{
"node": "622adac3-cd64-44d5-839e-dca015951252",
"type": "main",
"index": 0
}
]
]
},
"32d6c442-d011-4dd4-8755-ed62277041b5": {
"main": [
[
{
"node": "e1e70d0c-4d12-4e10-85fc-b42a062451d2",
"type": "main",
"index": 0
}
]
]
},
"09bfd902-b390-418e-8b95-52f1e2b12853": {
"main": [
[
{
"node": "9511a47d-58f0-4755-9f03-c36adfcffbe4",
"type": "main",
"index": 0
}
]
]
},
"5c1c11fe-848e-4951-9423-e86a0bb8b14b": {
"main": [
[
{
"node": "32d6c442-d011-4dd4-8755-ed62277041b5",
"type": "main",
"index": 0
}
]
]
},
"9511a47d-58f0-4755-9f03-c36adfcffbe4": {
"main": [
[
{
"node": "5c1c11fe-848e-4951-9423-e86a0bb8b14b",
"type": "main",
"index": 0
},
{
"node": "8665c487-3083-4f39-b9de-69ad7bd68afd",
"type": "main",
"index": 0
}
]
]
},
"8f4dabc5-b0f6-4f4b-8e07-aec5b456c963": {
"main": [
[
{
"node": "09bfd902-b390-418e-8b95-52f1e2b12853",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
領収書添付あり?
GPT-4o による詐欺検出と QuickBooks で領支付宝を自動抽出して承認
If
Code
Gmail
+
If
Code
Gmail
22 ノードJitesh Dugar
マルチレベル費用承認と経費精算の自動化
JotForm、Slack、および Google Sheets を使用した多段階費用承認と精算の自動化
If
Set
Code
+
If
Set
Code
21 ノードJitesh Dugar
セミナー講演者証明書の事前発行システム
JotForm、メール検証、Google Workspace を統合した自動化ワークショップ 証明書システム
If
Code
Gmail
+
If
Code
Gmail
24 ノードJitesh Dugar
文書抽出
GPT-4、Jotform、Google スプシを基盤としたAI従業員賞賛システムの構築
GPT-4、Jotform、Google スプレッドシートを基にした AI 従業員認रूムシステムを構築
If
Set
Code
+
If
Set
Code
24 ノードJitesh Dugar
詐欺防止型リードキャプチャ・育成千リードシステム
AIによるスコアリング、テーブル追跡、マルチチャネルアラートを使って詐欺対策リードをキャプチャーし育成
If
Set
Code
+
If
Set
Code
28 ノードJitesh Dugar
コンテンツ作成
会議議事録とアクションアイテムトラッカー
AIベースの会議議事録:GPT-4の活用、タスク割り当て、マルチチャネル配信
If
Set
Code
+
If
Set
Code
38 ノードJitesh Dugar
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数21
カテゴリー-
ノードタイプ9
作成者
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
外部リンク
n8n.ioで表示 →
このワークフローを共有