使用VEXA、OpenAI和Mem0自动化会议智能分析
高级
这是一个Document Extraction, AI Summarization领域的自动化工作流,包含 26 个节点。主要使用 Set, Code, Merge, Redis, Switch 等节点。 使用VEXA、OpenAI和Mem0自动化会议对话洞察分析
前置要求
- •Redis 服务器连接信息
- •HTTP Webhook 端点(n8n 会自动生成)
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (26)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "834bc6c387a1c56d0622a24b912577f9e6d66c5873f4e6426166054eb488d8fc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "ff74078e-4506-4750-80ec-6df095b3344d",
"name": "无操作,不执行任何操作",
"type": "n8n-nodes-base.noOp",
"position": [
340,
1440
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e02d44ca-fe4e-414e-80bd-38890b129022",
"name": "Baserow:设置行ID",
"type": "n8n-nodes-base.redis",
"position": [
560,
1000
],
"parameters": {
"key": "=setMem0-userId",
"ttl": 3600,
"value": "={{ $json['meeting with']}}",
"expire": true,
"operation": "set"
},
"credentials": {
"redis": {
"id": "AiUKJfkEA9bDF1g3",
"name": "Redis account"
}
},
"typeVersion": 1
},
{
"id": "d3b157f5-c60c-4475-b5ac-2bda2422ad8e",
"name": "vexa-start",
"type": "n8n-nodes-base.webhook",
"position": [
-320,
1260
],
"webhookId": "39142ea2-8192-4a0c-b506-4677fad0c4ce",
"parameters": {
"path": "vexa-API",
"options": {
"allowedOrigins": "*"
},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "49fe574d-3b08-42f6-8f25-3c6bc123db8a",
"name": "Baserow:更新状态为'进行中'",
"type": "n8n-nodes-base.baserow",
"position": [
340,
1000
],
"parameters": {
"rowId": "={{ $('vexa-start').item.json.body.items[0].id}}",
"tableId": 630917,
"fieldsUi": {
"fieldValues": [
{
"fieldId": 5143180,
"fieldValue": "In Progress"
}
]
},
"operation": "update",
"databaseId": 268764
},
"credentials": {
"baserowApi": {
"id": "HadM27Hzjj2CaqeH",
"name": "Baserow account"
}
},
"typeVersion": 1
},
{
"id": "18de75e4-6d24-4f6b-8481-cb18f034e932",
"name": "Baserow:更新状态为'已停止'",
"type": "n8n-nodes-base.baserow",
"position": [
340,
1200
],
"parameters": {
"rowId": "={{ $('vexa-start').item.json.body.items[0].id}}",
"tableId": 630917,
"fieldsUi": {
"fieldValues": [
{
"fieldId": 5143180,
"fieldValue": "Stop Request"
}
]
},
"operation": "update",
"databaseId": 268764
},
"credentials": {
"baserowApi": {
"id": "HadM27Hzjj2CaqeH",
"name": "Baserow account"
}
},
"typeVersion": 1
},
{
"id": "e042c9b4-81c5-4852-b405-a7e346483eec",
"name": "HTTP:启动 VEXA 机器人",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"maxTries": 2,
"position": [
80,
1020
],
"parameters": {
"url": "https://gateway.dev.vexa.ai/bots",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "platform",
"value": "google_meet"
},
{
"name": "native_meeting_id",
"value": "={{ $json.body.items[0][\"Meeting Link\"].extractUrlPath().replace('/',\"\")}}"
},
{
"name": "language",
"value": "en"
},
{
"name": "bot_name",
"value": "={{ $json.body.items[0][\"Bot Name\"] }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "UqKQMj1xtlK4u3Q9",
"name": "VEXA-"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"waitBetweenTries": 5000
},
{
"id": "d6097c2d-5acb-41ec-b468-e93ef9693b89",
"name": "HTTP:停止 VEXA 机器人",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
120,
1260
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/bots/google_meet/{{ $json.body.items[0]['Meeting Link'].extractUrlPath().slice(1)}}",
"method": "DELETE",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "UqKQMj1xtlK4u3Q9",
"name": "VEXA-"
}
},
"typeVersion": 4.2
},
{
"id": "4183ab08-ddca-4489-8358-dec530778d28",
"name": "路由:机器人操作(启动/停止)",
"type": "n8n-nodes-base.switch",
"position": [
-100,
1260
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Start_Bot",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "31e88a02-32ed-4407-bcf2-f6aed6079397",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.items.first()['Send Bot'].value}}",
"rightValue": "Start_Bot"
}
]
},
"renameOutput": true
},
{
"outputKey": "Stop_Bot",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "be0fb069-7bf0-4a4c-8231-00ba70eb6da8",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.items.first()['Send Bot'].value}}",
"rightValue": "Stop_Bot"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "no_action"
},
"looseTypeValidation": true
},
"typeVersion": 3.2
},
{
"id": "40f2c644-6fad-473f-bc17-273b4106d45a",
"name": "Webhook:转录就绪",
"type": "n8n-nodes-base.webhook",
"position": [
-280,
1960
],
"webhookId": "d6ac3751-20bc-4b70-89a3-e7121b95350c",
"parameters": {
"path": "luffy",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "981f41f0-b5aa-4524-a6c1-60c526ed2131",
"name": "VEXA:获取转录",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-60,
2060
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/transcripts/google_meet/{{ $json.body.native_meeting_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "UqKQMj1xtlK4u3Q9",
"name": "VEXA-"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false,
"waitBetweenTries": 5000
},
{
"id": "8e62e7c4-7307-4a65-a9c8-c9e77ec87b43",
"name": "处理:分割转录片段",
"type": "n8n-nodes-base.splitOut",
"position": [
160,
1960
],
"parameters": {
"options": {},
"fieldToSplitOut": "segments"
},
"typeVersion": 1
},
{
"id": "6d690e78-8a51-4b45-82b3-febc02d8a752",
"name": "准备:选择转录数据",
"type": "n8n-nodes-base.set",
"position": [
380,
1940
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9dad0189-4fce-4945-8828-894dcf92a0e5",
"name": "speaker",
"type": "string",
"value": "={{ $json.speaker }}"
},
{
"id": "6aa88e65-6cfc-43b0-90d9-7675f37097f1",
"name": "meeting_transcript",
"type": "string",
"value": "={{ $json.text }}"
},
{
"id": "e1725954-5701-4ec6-8e11-2cd39ed69810",
"name": "created_at",
"type": "string",
"value": "={{ $json.created_at }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d0912b45-fe4e-4380-bcb9-be9b0365dad3",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
600,
1860
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3
},
{
"id": "8e838252-400b-4019-a22e-a3268f654db1",
"name": "准备:聚合以进行分析",
"type": "n8n-nodes-base.aggregate",
"position": [
740,
1860
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "summary "
},
"typeVersion": 1
},
{
"id": "6224428f-723c-4024-bab9-483edcf777fa",
"name": "AI:分析转录",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
880,
1860
],
"parameters": {
"text": "={{ JSON.stringify ($json)}} ",
"options": {
"systemPromptTemplate": "=<role>\nYou are a Senior Business Analyst specializing in Conversation Intelligence.\n</role>\n\n<task>Your task is to review the provided meeting notes and create a concise summary that captures the essential information, focusing on key takeaways and action items assigned to specific individuals or departments during the meeting. Use clear and professional language, and organize the summary in a logical manner using appropriate formatting such as headings, subheadings, and bullet points. Ensure that the summary is easy to understand and provides a comprehensive but succinct overview of the meeting’s content, with a particular focus on clearly indicating who is responsible for each action item.\n</task>\n\n### tip : Identifying entities and their context to better understand the sentiment"
},
"attributes": {
"attributes": [
{
"name": "summary",
"required": true,
"description": " A concise, 2-3 sentence executive summary of the entire conversation, capturing the main goal, key findings, and overall outcome of the call."
},
{
"name": "overallSentiment",
"description": "Your task is to analyze a conversation transcript and provide a structured breakdown of the sentiment associated with each key entity, followed by a final, conclusive summary."
},
{
"name": "potential red flags",
"required": true,
"description": "=Identify and list any potential risks, deal-breakers, or significant negative signals from the prospect. This includes mentions of serious budget freezes, internal politics, distrust in the proposed solution, or strong preference for a competitor. If no red flags are identified, return an empty array []."
},
{
"name": "nextSteps",
"required": true,
"description": "A list of all agreed-upon action items and next steps for both sides."
},
{
"name": "socialChatter",
"description": " List any non-business, rapport-building topics discussed. If the conversation is strictly business, return an empty array []."
},
{
"name": "user_id",
"required": true,
"description": "=the property name is the user_id. \"propertyName\":\"{{ $json['summary '][0].propertyName }}\""
}
]
}
},
"typeVersion": 1
},
{
"id": "78614e07-62af-4cec-8f7f-d35d9814d615",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
980,
2080
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {
"temperature": 0.7
}
},
"credentials": {
"openAiApi": {
"id": "TKQcXt7XlrfyymWn",
"name": "OpenAI Free"
}
},
"typeVersion": 1.2
},
{
"id": "724eb262-e53c-4aad-8050-6feb8eea7236",
"name": "Mem0:添加转录记忆",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
1620,
1860
],
"parameters": {
"url": "https://api.mem0.ai/v1/memories/",
"method": "POST",
"options": {},
"jsonBody": "={{ $json.mem0Payload }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "r4QUfrE3liJp4KMR",
"name": "Mem0"
}
},
"typeVersion": 4.2
},
{
"id": "15125ec1-3ece-4a0e-8221-1d3359c71f7a",
"name": "Redis:获取用户 ID",
"type": "n8n-nodes-base.redis",
"position": [
380,
1760
],
"parameters": {
"key": "=setMem0-userId",
"options": {
"dotNotation": true
},
"operation": "get"
},
"credentials": {
"redis": {
"id": "AiUKJfkEA9bDF1g3",
"name": "Redis account"
}
},
"typeVersion": 1
},
{
"id": "5a32f034-8afe-4747-9581-52d5e2360b3c",
"name": "停止并报错",
"type": "n8n-nodes-base.stopAndError",
"position": [
240,
2100
],
"parameters": {
"errorMessage": "error"
},
"typeVersion": 1
},
{
"id": "e4435a20-ac5d-4047-bf44-111175034913",
"name": "设置您的 webhook",
"type": "n8n-nodes-base.httpRequest",
"position": [
1140,
1400
],
"parameters": {
"url": "https://gateway.dev.vexa.ai/user/webhook",
"method": "PUT",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "webhook_url",
"value": "https://stuctstunter.zeabur.app/webhook/luffy"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "UqKQMj1xtlK4u3Q9",
"name": "VEXA-"
}
},
"typeVersion": 4.2
},
{
"id": "b6715064-6c07-44a0-9545-5d9cd8a29f9d",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1000,
880
],
"parameters": {
"width": 480,
"height": 1620,
"content": "### 工作原理"
},
"typeVersion": 1
},
{
"id": "bdb077ab-ba7e-4145-bed5-4241b09d31ba",
"name": "注册您的 webhook",
"type": "n8n-nodes-base.manualTrigger",
"position": [
920,
1400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c7406080-b022-4d12-8344-7bf4b97e822c",
"name": "便利贴5",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
1280
],
"parameters": {
"color": 6,
"width": 420,
"height": 80,
"content": "## 注册您的 Webhook"
},
"typeVersion": 1
},
{
"id": "0b1fe396-bfa7-410d-91bb-5939337c6100",
"name": "便签 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
1140
],
"parameters": {
"color": 6,
"width": 260,
"height": 80,
"content": "## 机器人管理"
},
"typeVersion": 1
},
{
"id": "c1a973db-26c6-4731-8d02-54785a93cec1",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
1820
],
"parameters": {
"color": 6,
"width": 280,
"height": 80,
"content": "## 笔记记录魔法"
},
"typeVersion": 1
},
{
"id": "7d181d4b-fd87-438a-b164-326c5a9a8638",
"name": "为 mem0 清理",
"type": "n8n-nodes-base.code",
"position": [
1240,
1860
],
"parameters": {
"jsCode": "// N8N Code Node: Verwerkt LLM output en assembleert de Mem0 payload.\n// Deze code is ontworpen om de output van een AI-model te structureren voor Mem0.\n\n// ===================================================================\n// I. CONFIGURATION\n// ===================================================================\nconst APP_ID = \"vexa_baserow_project\";\nconst AGENT_ID = \"vexa_baserow_ingestor\";\nconst AGENT_CONTACT_NAMES = [\n { name: \"Stephan\", keywords: [\"stephan\", \"stephan koning\"] },\n // Voeg hier andere agent namen toe\n];\n\n// ===================================================================\n// II. HELPER FUNCTIONS\n// ===================================================================\n\n// Helper: Vertaalt een datumstring naar een Unix timestamp (seconden sinds de epoch).\nfunction getUnixTimestamp(dateString) {\n if (!dateString) return null;\n try {\n const dateObj = new Date(dateString);\n if (isNaN(dateObj.getTime())) return null;\n return Math.floor(dateObj.getTime() / 1000);\n } catch (e) {\n return null;\n }\n}\n\n// Helper: Zoekt naar bekende agentnamen in de tekst.\nfunction determineAgentContactPerson(text) {\n if (!text) return '';\n const searchableText = String(text).toLowerCase();\n for (const agent of AGENT_CONTACT_NAMES) {\n if (agent.keywords.some(keyword => searchableText.includes(keyword))) {\n return agent.name;\n }\n }\n return '';\n}\n\n// Helper: Escaped een string voor JSON-compatibiliteit.\nfunction escapeJsonString(str) {\n if (typeof str !== 'string') return str;\n return JSON.stringify(str).slice(1, -1);\n}\n\n// Helper: Haalt een waarde op uit een object met een fallback voor als de key niet bestaat.\nfunction getWithFallback(obj, key, fallback = null) {\n if (obj && obj.hasOwnProperty(key)) {\n return obj[key] !== null ? obj[key] : fallback;\n }\n return fallback;\n}\n\n// ===================================================================\n// III. MAIN EXECUTION\n// ===================================================================\nconst output_items = [];\n\n// Dit script verwerkt een enkel LLM output-item dat als input wordt gegeven.\ntry {\n const llm_output_item = items[0]; // De LLM output is het eerste item\n const llm_output = llm_output_item.json.output || {};\n\n const meeting_summary = getWithFallback(llm_output, 'summary', \"No summary provided.\");\n const meeting_sentiment = getWithFallback(llm_output, 'overallSentiment', \"Neutral\");\n const meeting_red_flags = getWithFallback(llm_output, 'potential red flags', \"None\");\n const meeting_next_steps = getWithFallback(llm_output, 'nextSteps', \"None\");\n const social_chatter = getWithFallback(llm_output, 'socialChatter', \"None\");\n const client_id = getWithFallback(llm_output, 'user_id', \"unknown_client@example.com\");\n\n const agent_contact_person_name = determineAgentContactPerson(meeting_summary);\n\n // --- Samenstellen van de 'content' voor Mem0 ---\n const mem0_content_raw = `Klant had een vergadering met ${agent_contact_person_name || 'een agent'}.\n\nSamenvatting: ${meeting_summary}\nVolgende Stappen: ${meeting_next_steps}`;\n\n const mem0_content = escapeJsonString(mem0_content_raw);\n\n // --- Samenstellen van de 'metadata' ---\n const mem0_metadata = {\n \"type\": \"meeting\",\n \"summary\": escapeJsonString(meeting_summary),\n \"sentiment\": escapeJsonString(meeting_sentiment),\n \"red_flags\": escapeJsonString(meeting_red_flags),\n \"next_steps\": escapeJsonString(meeting_next_steps),\n \"social_chatter\": escapeJsonString(social_chatter),\n \"agent_contact_person_name\": escapeJsonString(agent_contact_person_name),\n \"native_meeting_id\": getWithFallback(llm_output, 'native_meeting_id', 'no_id')\n };\n\n const mem0_categories = [\"meeting\", \"summary\"];\n if (meeting_red_flags.toLowerCase() !== \"none\" && meeting_red_flags.length > 2) {\n mem0_categories.push(\"red_flag\");\n }\n if (meeting_next_steps.toLowerCase() !== \"none\") {\n mem0_categories.push(\"action_items\");\n }\n\n // --- Definitieve Mem0 Payload ---\n const mem0_payload = {\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": mem0_content\n }\n ],\n \"user_id\": client_id,\n \"agent_id\": AGENT_ID,\n \"app_id\": APP_ID,\n \"run_id\": `meeting_${client_id}_${Date.now()}`,\n \"metadata\": mem0_metadata,\n \"infer\": true,\n \"categories\": mem0_categories,\n \"version\": \"v2\",\n \"output_format\": \"v1.1\",\n \"timestamp\": getUnixTimestamp(new Date().toISOString())\n };\n \n output_items.push({\"json\": {\"mem0Payload\": mem0_payload}});\n\n} catch (error) {\n console.error(`Fout bij verwerken van LLM output:`, error.message, error);\n output_items.push({\"json\": {\"error\": true, \"message\": String(error), \"originalItem\": items[0].json}});\n}\n\nreturn output_items;"
},
"typeVersion": 2
}
],
"pinData": {},
"connections": {
"Merge": {
"main": [
[
{
"node": "Prepare: Aggregate for Analysis",
"type": "main",
"index": 0
}
]
]
},
"vexa-start": {
"main": [
[
{
"node": "Route: Bot Action (Start/Stop)",
"type": "main",
"index": 0
}
]
]
},
"Clean up for mem0": {
"main": [
[
{
"node": "Mem0: Add Transcript Memory",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI: Analyze Transcript",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Redis: Get User ID": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"HTTP: Stop VEXA Bot": {
"main": [
[
{
"node": "Baserow: Update Status to 'Stopped'",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"HTTP: Start VEXA Bot": {
"main": [
[
{
"node": "Baserow: Update Status to 'In Progress'",
"type": "main",
"index": 0
}
]
]
},
"VEXA: Get Transcript": {
"main": [
[
{
"node": "Process: Split Transcript Segments",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop and Error",
"type": "main",
"index": 0
}
]
]
},
"Register your webhook": {
"main": [
[
{
"node": "SET your webhook",
"type": "main",
"index": 0
}
]
]
},
"AI: Analyze Transcript": {
"main": [
[
{
"node": "Clean up for mem0",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Transcript Ready": {
"main": [
[
{
"node": "VEXA: Get Transcript",
"type": "main",
"index": 0
},
{
"node": "Redis: Get User ID",
"type": "main",
"index": 0
}
]
]
},
"Route: Bot Action (Start/Stop)": {
"main": [
[
{
"node": "HTTP: Start VEXA Bot",
"type": "main",
"index": 0
}
],
[
{
"node": "HTTP: Stop VEXA Bot",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Prepare: Aggregate for Analysis": {
"main": [
[
{
"node": "AI: Analyze Transcript",
"type": "main",
"index": 0
}
]
]
},
"Prepare: Select Transcript Data": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Process: Split Transcript Segments": {
"main": [
[
{
"node": "Prepare: Select Transcript Data",
"type": "main",
"index": 0
}
]
]
},
"Baserow: Update Status to 'In Progress'": {
"main": [
[
{
"node": "Baserow : set rowID",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 文档提取, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
灵活新闻聚合器 - 多源集成、AI分析和可设置频道
多源新闻策展系统,集成Mistral AI分析、摘要和自定义频道
If
Set
Xml
+32
120 节点Hybroht
内容创作
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+21
141 节点Ezema Kingsley Chibuzo
潜在客户开发
Fireflies会议转录和摘要自动化
使用Gemini和Gmail从Fireflies转录自动化会议摘要
Set
Code
Gmail
+11
26 节点Davide
文档提取
使用 AI 和 Gmail 自动更新 YNAB 中的亚马逊交易备注
使用 AI 和 Gmail 自动更新 YNAB 中的亚马逊交易备注
If
Set
Wait
+13
30 节点Angel Menendez
文档提取
使用 GPT-4o、Whisper 转录和 Redis 缓冲创建 WhatsApp 聊天机器人
使用 GPT-4o、Whisper 转录和 Redis 缓冲创建 WhatsApp 聊天机器人
Set
Code
Wait
+13
35 节点Jose Bossa
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
工作流信息
难度等级
高级
节点数量26
分类2
节点类型16
作者
Stephan Koning
@reklaimAccount Executive by day , Noco builder for fun at night and always a proud dad of Togo the Samoyed.
外部链接
在 n8n.io 查看 →
分享此工作流