使用Mistral AI OCR和JigsawStack分类和提取平面图数据
高级
这是一个Miscellaneous, AI Summarization, Multimodal AI领域的自动化工作流,包含 24 个节点。主要使用 If, Code, Switch, Webhook, HttpRequest 等节点。 使用Mistral AI OCR和JigsawStack分类和提取平面图数据
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "834bc6c387a1c56d0622a24b912577f9e6d66c5873f4e6426166054eb488d8fc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "120c98f6-17fd-46e7-b449-539cf0e6eccd",
"name": "低质量端点说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
4500,
-300
],
"parameters": {
"width": 400,
"height": 440,
"content": "## 🚫 低质量 / 丢弃"
},
"typeVersion": 1
},
{
"id": "fa9dc8cf-6eaa-4a65-b6d0-27d8da7b1a59",
"name": "人工审核说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
4820,
520
],
"parameters": {
"color": 3,
"width": 400,
"height": 480,
"content": "## ⚠️ 需要人工审核"
},
"typeVersion": 1
},
{
"id": "65ded5cd-8648-4eaa-a230-b5eb562df429",
"name": "继续到 JIG 说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
5140,
20
],
"parameters": {
"color": 4,
"width": 380,
"height": 460,
"content": "## ✅ 继续到步骤 2"
},
"typeVersion": 1
},
{
"id": "0016e3f6-0552-4cee-b59a-445129a3236a",
"name": "分类成功说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
3280,
-520
],
"parameters": {
"color": 5,
"width": 580,
"height": 540,
"content": "## 图像分类"
},
"typeVersion": 1
},
{
"id": "c96745c9-5646-423a-98e9-239df792662e",
"name": "流程摘要说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
2340,
-340
],
"parameters": {
"color": 6,
"width": 400,
"height": 360,
"content": "## 📊 流程摘要"
},
"typeVersion": 1
},
{
"id": "e0bcf1b8-ee8e-4a88-afe8-23b9a7b7c4ac",
"name": "文件限制说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
3700,
480
],
"parameters": {
"color": 2,
"width": 440,
"height": 460,
"content": "## 📏 文件大小/页数限制"
},
"typeVersion": 1
},
{
"id": "67704d28-dbab-4e48-b0b6-1643e0dadc7e",
"name": "📘 工作流文档",
"type": "n8n-nodes-base.stickyNote",
"position": [
1620,
-340
],
"parameters": {
"width": 600,
"height": 1560,
"content": "# 🏠 平面图分类器与测量提取器"
},
"typeVersion": 1
},
{
"id": "30aee9c1-02f8-40b4-b431-8bc122bb08d6",
"name": "检查 – GDPR 同意",
"type": "n8n-nodes-base.if",
"position": [
2560,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "or",
"conditions": [
{
"id": "1e3d1d01-1b9e-45b5-9616-93335d2bc270",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.body.GDPR_check || $json.body.GDPR_check2}}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "2e9797b2-9ce9-4628-b049-95b28bd43e4e",
"name": "Webhook – 接收上传",
"type": "n8n-nodes-base.webhook",
"position": [
2320,
80
],
"webhookId": "fb607944-5e45-4dab-b805-7d0701e5eaa9",
"parameters": {
"path": "fp-mvp",
"options": {
"ignoreBots": true,
"allowedOrigins": "*"
},
"httpMethod": "POST",
"responseMode": "responseNode",
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "cBS3tiMMVMINcjbT",
"name": "stucstunter.nl"
}
},
"typeVersion": 2
},
{
"id": "c2de825d-fd9b-4e42-a43c-ff570ea90068",
"name": "响应 – 需要同意",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2860,
300
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={\n \"thankYouMessage\": \"<div style='text-align:center; padding:40px 20px; font-family:system-ui;'><h2 style='color:#FF5252;'>⚠️ Consent Required</h2><p>We need your permission to process your floorplan. Please check the privacy consent box and try again.</p><p style='font-size:12px; color:#999; margin-top:20px;'>Your data is deleted within 10 minutes • GDPR compliant</p></div>\"\n}"
},
"typeVersion": 1.1
},
{
"id": "d48a571b-0dac-48b2-b60e-d8485ad9f980",
"name": "处理 – 多文件上传",
"type": "n8n-nodes-base.code",
"position": [
2820,
60
],
"parameters": {
"jsCode": "const results = [];\n\nfor (const item of items) {\n if (!item.binary) continue;\n\n for (const [key, value] of Object.entries(item.binary)) {\n results.push({\n json: {\n fileKey: key,\n fileName: value.fileName,\n mimeType: value.mimeType,\n fileExtension: value.fileExtension,\n fileSize: value.fileSize\n },\n binary: {\n [key]: value // behoud originele binary key naam!\n }\n });\n }\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "cb575124-245b-4d34-aa23-1d04fddfeea3",
"name": "检查 – 文件类型(PDF/图像)",
"type": "n8n-nodes-base.if",
"position": [
3040,
60
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "837a00af-0c9d-4dde-a184-4d4c2d918005",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ [\"png\",\"jpg\",\"jpeg\",\"bmp\",\"tiff\",\"webp\",\"gif\"]\n .includes($json.fileExtension.toLowerCase()) }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "28353d44-0328-4407-b942-0a87b44c244f",
"name": "提取 – PDF 元数据/文本",
"type": "n8n-nodes-base.extractFromFile",
"position": [
3300,
80
],
"parameters": {
"options": {
"keepSource": "both"
},
"operation": "pdf",
"binaryPropertyName": "={{ $json.fileKey }}"
},
"typeVersion": 1
},
{
"id": "4023d030-c089-413a-864d-7a467ce63232",
"name": "检查 – 文件大小和页数",
"type": "n8n-nodes-base.if",
"position": [
3500,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d94826b9-a2fe-4af2-9c76-0d76fdb0c0d8",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ \n (() => {\n const raw = $json.fileSize || \"\";\n const val = parseFloat(raw);\n if (raw.toLowerCase().includes(\"mb\")) return val < 10;\n if (raw.toLowerCase().includes(\"kb\")) return val < 10000; // 10 MB = 10,000 KB\n if (raw.toLowerCase().includes(\"bytes\")) return val < 10485760; // 10 MB in bytes\n return false; // if unknown format\n })()\n}}",
"rightValue": ""
},
{
"id": "b58f8207-18c9-4e0a-a52d-6a3151f6ee57",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{$json.fileExtension.toLowerCase() !== \"pdf\"\n ? true \n : ($json.numpages && $json.numpages < 10)}}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "25d2a512-494a-4552-a6c6-e68714fd522d",
"name": "分析 – 置信度评分(启发式)",
"type": "n8n-nodes-base.code",
"position": [
3740,
60
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// --- SAFER INPUT HANDLING ---\nconst text = ($json.text || \"\").toLowerCase();\nconst numpages = $json.numpages || 1;\n\nlet score = 0;\nlet reasons = []; \n\n// --- KEYWORD LISTS ---\nconst nlSpaces = [\"woonkamer\", \"keuken\", \"slaapkamer\", \"badkamer\", \"overloop\", \"entree\", \"hal\", \"toilet\", \"berging\", \"techniek\", \"meterkast\", \"mk\"];\nconst enSpaces = [\"living room\", \"kitchen\", \"bedroom\", \"bathroom\", \"landing\", \"entrance\", \"hall\", \"toilet\", \"storage\", \"utility room\"];\nconst floorWords = [\"verdieping\", \"begane grond\", \"zolder\", \"kelder\", \"vliering\", \"doorsnede\", \"gevel\", \"plattegrond\"];\nconst enFloorWords = [\"floor\", \"ground floor\", \"attic\", \"basement\", \"cross-section\", \"facade\", \"floor plan\"];\nconst symbols = [\"wcd\", \"th\", \"wp\", \"v.v.\", \"wm\", \"wd\", \"wtw\", \"pv\", \"rad.\", \"rm\", \"gr\"];\nconst projectWords = [\"bouwnummer\", \"opdrachtgever\", \"project\", \"schaal\", \"datum\", \"bladnummer\", \"formaat\"];\n\n// --- CHECKS ---\n// 1. Spaces\nconst foundNlSpaces = nlSpaces.filter(w => text.includes(w));\nconst foundEnSpaces = enSpaces.filter(w => text.includes(w));\nif ((foundNlSpaces.length + foundEnSpaces.length) >= 3) {\n score += 0.35;\n reasons.push(`Found ${foundNlSpaces.length + foundEnSpaces.length} room names`);\n}\n\n// 2. m² matches\nconst m2Matches = text.match(/\\d+(?:[.,]\\d+)?\\s*m(?:²|2)/g) || [];\nif (m2Matches.length >= 3) {\n score += 0.25;\n reasons.push(`Found ${m2Matches.length} m² measurements`);\n}\n\n// 3. mm matches (dimensions)\nconst mmMatches = text.match(/\\d{3,}\\s*mm/g) || [];\nif (mmMatches.length >= 3) {\n score += 0.15;\n reasons.push(`Found ${mmMatches.length} mm measurements`);\n}\n\n// 4. Symbols\nconst foundSymbols = symbols.filter(s => text.includes(s.toLowerCase()));\nif (foundSymbols.length >= 3) {\n score += 0.15;\n reasons.push(`Found ${foundSymbols.length} technical symbols`);\n}\n\n// 5. Floor/plan words\nconst foundFloors = [...floorWords, ...enFloorWords].filter(w => text.includes(w));\nif (foundFloors.length >= 2) {\n score += 0.10;\n reasons.push(`Found ${foundFloors.length} floor/drawing parts`);\n}\n\n// 6. Project words\nconst foundProjectWords = projectWords.filter(w => text.includes(w));\nif (foundProjectWords.length >= 3) {\n score += 0.10;\n reasons.push(`Found ${foundProjectWords.length} project info words`);\n}\n\n// --- NORMALIZE SCORE ---\nif (score > 1) score = 1;\n\n// ✅ Return one item with JSON + preserve binary\nreturn {\n json: {\n ...$json,\n confidence: parseFloat(score.toFixed(2)),\n analysis: {\n reasons,\n foundNlSpaces,\n foundEnSpaces,\n m2Matches,\n mmMatches,\n foundSymbols,\n foundFloors,\n foundProjectWords,\n pages: numpages\n }\n },\n binary: item.binary // pass binary unchanged\n};"
},
"typeVersion": 2
},
{
"id": "87868e3c-e4eb-47ff-acf0-bb4072d38bbc",
"name": "路由 – 置信度级别",
"type": "n8n-nodes-base.switch",
"position": [
4020,
0
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "very_likely_not_floorplan",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.2
}
]
},
"renameOutput": true
},
{
"outputKey": "likely_not_floorplan",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.4
},
{
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.2
}
]
},
"renameOutput": true
},
{
"outputKey": "uncertain_low_confidence",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.6
},
{
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.4
}
]
},
"renameOutput": true
},
{
"outputKey": "=uncertain_high_confidence",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.85
},
{
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.6
}
]
},
"renameOutput": true
},
{
"outputKey": "very_likely_floorplan",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.confidence }}",
"rightValue": 0.85
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"allMatchingOutputs": true,
"renameFallbackOutput": "needs_review"
}
},
"typeVersion": 3.2
},
{
"id": "0a0bf7f3-0eb5-457a-b445-48111e7ac7d3",
"name": "响应 – 低质量/丢弃",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
4640,
-20
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{\n {\n \"thankYouMessage\":\n $json.confidence && $json.confidence[0] < 0.4\n ? \"🚫 Unable to Process Your Floorplan. The image quality is too low or unclear. Please upload an architectural blueprint or CAD drawing instead. Accepted formats: JPG, PNG, PDF.\"\n : (\n $json.predictions[0] === \"floorplan\"\n ? \"SUCCESS: Floorplan detected! Processing your measurements now. This will take 15-30 seconds.\"\n : \"ERROR: Not a floorplan detected. Please upload an architectural blueprint or technical floor layout instead.\"\n )\n }\n}}"
},
"typeVersion": 1.1
},
{
"id": "cee2d67e-f07c-49b8-9018-e0753ff16d76",
"name": "分类 – 图像文件",
"type": "n8n-nodes-base.httpRequest",
"position": [
3560,
-200
],
"parameters": {
"url": "https://api.jigsawstack.com/v1/classification",
"method": "POST",
"options": {},
"jsonBody": "={\n \"dataset\": [\n {\n \"type\": \"image\",\n \"value\": \"{{ $json.temp_public_url }}\"\n }\n ],\n \"labels\": [\n {\n \"type\": \"text\",\n \"value\": \"floorplan\"\n },\n {\n \"type\": \"text\",\n \"value\": \"not floorplan\"\n }\n ]\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "A2GUIb1l3Nybba3k",
"name": "jigsaw"
}
},
"typeVersion": 4.2
},
{
"id": "14201ed6-6613-4bfc-b8bd-d7434507036c",
"name": "分类 – PDF 文本",
"type": "n8n-nodes-base.httpRequest",
"position": [
4880,
820
],
"parameters": {
"url": "https://api.jigsawstack.com/v1/classification",
"method": "POST",
"options": {},
"jsonBody": "={\n \"dataset\": [\n {\n \"type\": \"text\",\n \"value\": {{ JSON.stringify ($json.text) }}\n }\n ],\n \"labels\": [\n {\n \"type\": \"text\",\n \"value\": \"floorplan\"\n },\n {\n \"type\": \"text\",\n \"value\": \"not floorplan\"\n }\n ]\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "A2GUIb1l3Nybba3k",
"name": "jigsaw"
}
},
"typeVersion": 4.2
},
{
"id": "13aa840e-eb2c-42c5-a344-a1aab65d89d2",
"name": "响应 – 分类结果(图像)",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
3720,
-200
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{\n {\n \"thankYouMessage\": $json.predictions[0] === \"floorplan\" \n ? \"SUCCESS: Floorplan detected! Processing your measurements now. This will take 15-30 seconds.\"\n : \"ERROR: Not a floorplan detected. Please upload an architectural blueprint or technical floor layout instead.\"\n }\n}}"
},
"typeVersion": 1.1
},
{
"id": "988144cc-e416-440c-8fb6-2b445c0b398b",
"name": "响应 – 分类结果(PDF)",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
5040,
820
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{\n {\n \"thankYouMessage\": $json.predictions[0] === \"floorplan\" \n ? \"SUCCESS: Floorplan detected! Processing your measurements now. This will take 15-30 seconds.\"\n : \"ERROR: Not a floorplan detected. Please upload an architectural blueprint or technical floor layout instead.\"\n }\n}}"
},
"typeVersion": 1.1
},
{
"id": "38a92798-d6c2-4d46-b069-069c46ee6de4",
"name": "响应 – 文件过大",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
3740,
780
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{ {\n \"thankYouMessage\": \"📏 File Too Large. The uploaded file exceeds our limits (max 10MB or PDFs with more than 20 pages). Please split multi‑floor plans into separate files or extract only the relevant pages, then try again.\"\n} }}"
},
"typeVersion": 1.1
},
{
"id": "2c4d4e53-59dd-4b47-8213-e86ff873d874",
"name": "上传 – JigsawStack(存储)",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"maxTries": 2,
"position": [
3340,
-180
],
"parameters": {
"url": "https://api.jigsawstack.com/v1/store/file",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"contentType": "binaryData",
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "key",
"value": "={{ $json.fileName }}"
},
{
"name": "overwrite",
"value": "true"
},
{
"name": "temp_public_url",
"value": "true"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "={{ $json.mimeType }}"
}
]
},
"inputDataFieldName": "={{ $json.fileKey }}"
},
"credentials": {
"httpHeaderAuth": {
"id": "A2GUIb1l3Nybba3k",
"name": "jigsaw"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"waitBetweenTries": 3000
},
{
"id": "0b6380ad-d3e7-499d-a097-f5cde6031129",
"name": "无操作,不执行任何操作",
"type": "n8n-nodes-base.noOp",
"position": [
5260,
340
],
"parameters": {},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Classify – PDF Text": {
"main": [
[
{
"node": "Respond – Classification Result (PDF)",
"type": "main",
"index": 0
}
]
]
},
"Check – GDPR Consent": {
"main": [
[
{
"node": "Process – Multiple File Uploads",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond – Consent Required",
"type": "main",
"index": 0
}
]
]
},
"Classify – Image Files": {
"main": [
[
{
"node": "Respond – Classification Result (Image)",
"type": "main",
"index": 0
}
]
]
},
"No Operation, do nothing": {
"main": [
[]
]
},
"Webhook – Receive Upload": {
"main": [
[
{
"node": "Check – GDPR Consent",
"type": "main",
"index": 0
}
]
]
},
"Check – File Size & Pages": {
"main": [
[
{
"node": "Analyze – Confidence Score (Heuristics)",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond – File Too Large",
"type": "main",
"index": 0
}
]
]
},
"Route – Confidence Levels": {
"main": [
[
{
"node": "Respond – Low Quality/Drop",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond – Low Quality/Drop",
"type": "main",
"index": 0
}
],
[
{
"node": "Classify – PDF Text",
"type": "main",
"index": 0
}
],
[
{
"node": "Classify – PDF Text",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Extract – PDF Metadata/Text": {
"main": [
[
{
"node": "Check – File Size & Pages",
"type": "main",
"index": 0
}
]
]
},
"Check – File Type (PDF/Image)": {
"main": [
[
{
"node": "Upload – JigsawStack (Storage)",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract – PDF Metadata/Text",
"type": "main",
"index": 0
}
]
]
},
"Upload – JigsawStack (Storage)": {
"main": [
[
{
"node": "Classify – Image Files",
"type": "main",
"index": 0
}
]
]
},
"Process – Multiple File Uploads": {
"main": [
[
{
"node": "Check – File Type (PDF/Image)",
"type": "main",
"index": 0
}
]
]
},
"Analyze – Confidence Score (Heuristics)": {
"main": [
[
{
"node": "Route – Confidence Levels",
"type": "main",
"index": 0
}
]
]
},
"Respond – Classification Result (Image)": {
"main": [
[]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 杂项, AI 摘要总结, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用Groq AI和GhostGenius比较LinkedIn个人资料与职位描述
使用Groq AI和GhostGenius比较LinkedIn个人资料与职位描述的匹配度
If
Set
Code
+8
17 节点Stephan Koning
杂项
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
If
Set
Code
+20
52 节点Daniel Lianes
杂项
使用OpenAI和n8n从URL、文本和PDF进行AI内容摘要
使用OpenAI GPT-4.1-mini从URL、文本和PDF汇总内容
If
Set
Switch
+8
47 节点Dahiana
杂项
云文档转换为安全控制基线(OpenAI 和 Google Drive)
使用 OpenAI 和 Google Drive 将云文档转换为安全控制基线
If
Set
Code
+9
35 节点Raphael De Carvalho Florencio
AI 摘要总结
竞争对手内容差距分析器:自动化网站主题映射
使用Gemini AI、Apify和Google Sheets分析竞争对手内容差距
If
Set
Code
+10
30 节点Mychel Garzon
杂项
使用Gemini AI视觉分析与Telegram警报监控X平台品牌提及
使用Gemini AI视觉分析与Telegram警报监控X平台品牌提及
If
Set
Code
+13
24 节点Atta
杂项
工作流信息
难度等级
高级
节点数量24
分类3
节点类型9
作者
Stephan Koning
@reklaimAccount Executive by day , Noco builder for fun at night and always a proud dad of Togo the Samoyed.
外部链接
在 n8n.io 查看 →
分享此工作流