VEXA、OpenAI、Mem0を使った会議のAI分析の自動化
上級
これは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": "No Operation, do nothing",
"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: ステータスを 'In Progress' に更新",
"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: ステータスを 'Stopped' に更新",
"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 Botを開始",
"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 Botを停止",
"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": "Route: Botアクション(開始/停止)",
"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": "Process: トランスクリプトセグメントを分割",
"type": "n8n-nodes-base.splitOut",
"position": [
160,
1960
],
"parameters": {
"options": {},
"fieldToSplitOut": "segments"
},
"typeVersion": 1
},
{
"id": "6d690e78-8a51-4b45-82b3-febc02d8a752",
"name": "Prepare: トランスクリプトデータを選択",
"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": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
600,
1860
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3
},
{
"id": "8e838252-400b-4019-a22e-a3268f654db1",
"name": "Prepare: 分析用に集約",
"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 Chat Model",
"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": "Stop and Error",
"type": "n8n-nodes-base.stopAndError",
"position": [
240,
2100
],
"parameters": {
"errorMessage": "error"
},
"typeVersion": 1
},
{
"id": "e4435a20-ac5d-4047-bf44-111175034913",
"name": "SET your 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": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1000,
880
],
"parameters": {
"width": 480,
"height": 1620,
"content": "### How it works\n\nThis workflow has two distinct parts that work together to manage a meeting's entire lifecycle.\n\n* **Part 1: Bot Management.** A command is received from your CRM (Baserow) to either deploy or remove an AI bot from a Google Meet. This ensures the bot is present only when needed. The workflow instantly updates the status in your Baserow table to `In Progress` or `Stopped`.\n* **Part 2: AI-Powered Analysis.** Upon meeting completion, a separate webhook from VEXA triggers the second part of the workflow. It automatically retrieves the full transcript and uses a powerful AI model (OpenAI) to analyze the conversation. The AI extracts key details like a **summary**, **next steps**, and **potential risks**. This structured output is then logged into a memory layer (Mem0) for a persistent, queryable record of all conversations.\n\n\n### Who's it for\n\nBuilt for non-technical solopreneurs and small business owners who want to effortlessly add conversation intelligence to their workflow. Get a single source of truth for all your meeting data without manual transcription or analysis.\n\n\n### Setup Steps\n\nRapid deployment. Your action plan:\n\n1. **Register Webhook:** First, run the manual trigger in this workflow to send your n8n webhook URL to VEXA. This is a crucial one-time setup step that tells VEXA where to send meeting transcripts after a call.\n2. **Connect Your CRM:** Copy the `vexa-start` webhook URL from n8n and paste it into your Baserow automation. For example, trigger it when you set the \"Send Bot\" field to `Start_Bot` in your table.\n3. **Integrate Platforms:** Set up your VEXA, Mem0, and OpenAI API credentials in n8n.\n4. **Use the Baserow Template:** We provide a free Baserow template that serves as your bot control panel. You can access it here: [https://baserow.io/public/grid/t5kYjovKEHjNix2-6Rijk99y4SDeyQY4rmQISciC14w](https://baserow.io/public/grid/t5kYjovKEHjNix2-6Rijk99y4SDeyQY4rmQISciC14w). This template contains the necessary fields like `Meeting Link`, `Bot Name`, and the `Send Bot` command field that triggers this workflow.\n\n\n### Requirements\n\n* Active n8n instance (self-hosted/cloud).\n* **VEXA.ai** account.\n* **Mem0.ai** account.\n* **Baserow** account for bot management.\n* **OpenAI** account.\n* **Redis Account:** A Redis database is required to temporarily store user IDs.\n* Your Baserow table must include specific fields:\n * **`Meeting Link`**: The URL of your Google Meet.\n * **`Bot Name`**: The name you want your AI bot to have.\n * **`Send Bot`**: A single-select field with `Start_Bot` and `Stop_Bot` as options.\n * **`Status`**: A single-select field for the workflow to update.\n\n### Next Steps\n\nThis workflow provides a powerful foundation. Here are a few ways to extend its value:\n\n* **Automate Follow-ups:** Trigger an automated email or task in your CRM based on AI-identified next steps or red flags.\n* **Integrate Email & Engagements:** Connect your email or other communication platforms to a workflow that uses Mem0 to parse and store all engagements, building a holistic client memory.\n* **Build a Headless CRM:** Use these combined workflows to create a fully AI-powered, headless CRM that handles everything from initial contact to proactive client management without any manual data entry."
},
"typeVersion": 1
},
{
"id": "bdb077ab-ba7e-4145-bed5-4241b09d31ba",
"name": "Register your webhook",
"type": "n8n-nodes-base.manualTrigger",
"position": [
920,
1400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c7406080-b022-4d12-8344-7bf4b97e822c",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
1280
],
"parameters": {
"color": 6,
"width": 420,
"height": 80,
"content": "## Register Your Webhook\n"
},
"typeVersion": 1
},
{
"id": "0b1fe396-bfa7-410d-91bb-5939337c6100",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
1140
],
"parameters": {
"color": 6,
"width": 260,
"height": 80,
"content": "## BOT Management "
},
"typeVersion": 1
},
{
"id": "c1a973db-26c6-4731-8d02-54785a93cec1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
1820
],
"parameters": {
"color": 6,
"width": 280,
"height": 80,
"content": "## The Notetaking Magic"
},
"typeVersion": 1
},
{
"id": "7d181d4b-fd87-438a-b164-326c5a9a8638",
"name": "Clean up for 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": {
"d0912b45-fe4e-4380-bcb9-be9b0365dad3": {
"main": [
[
{
"node": "8e838252-400b-4019-a22e-a3268f654db1",
"type": "main",
"index": 0
}
]
]
},
"d3b157f5-c60c-4475-b5ac-2bda2422ad8e": {
"main": [
[
{
"node": "4183ab08-ddca-4489-8358-dec530778d28",
"type": "main",
"index": 0
}
]
]
},
"7d181d4b-fd87-438a-b164-326c5a9a8638": {
"main": [
[
{
"node": "724eb262-e53c-4aad-8050-6feb8eea7236",
"type": "main",
"index": 0
}
]
]
},
"78614e07-62af-4cec-8f7f-d35d9814d615": {
"ai_languageModel": [
[
{
"node": "6224428f-723c-4024-bab9-483edcf777fa",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"15125ec1-3ece-4a0e-8221-1d3359c71f7a": {
"main": [
[
{
"node": "d0912b45-fe4e-4380-bcb9-be9b0365dad3",
"type": "main",
"index": 0
}
]
]
},
"d6097c2d-5acb-41ec-b468-e93ef9693b89": {
"main": [
[
{
"node": "18de75e4-6d24-4f6b-8481-cb18f034e932",
"type": "main",
"index": 0
}
],
[
{
"node": "ff74078e-4506-4750-80ec-6df095b3344d",
"type": "main",
"index": 0
}
]
]
},
"e042c9b4-81c5-4852-b405-a7e346483eec": {
"main": [
[
{
"node": "49fe574d-3b08-42f6-8f25-3c6bc123db8a",
"type": "main",
"index": 0
}
]
]
},
"981f41f0-b5aa-4524-a6c1-60c526ed2131": {
"main": [
[
{
"node": "8e62e7c4-7307-4a65-a9c8-c9e77ec87b43",
"type": "main",
"index": 0
}
],
[
{
"node": "5a32f034-8afe-4747-9581-52d5e2360b3c",
"type": "main",
"index": 0
}
]
]
},
"bdb077ab-ba7e-4145-bed5-4241b09d31ba": {
"main": [
[
{
"node": "e4435a20-ac5d-4047-bf44-111175034913",
"type": "main",
"index": 0
}
]
]
},
"6224428f-723c-4024-bab9-483edcf777fa": {
"main": [
[
{
"node": "7d181d4b-fd87-438a-b164-326c5a9a8638",
"type": "main",
"index": 0
}
]
]
},
"40f2c644-6fad-473f-bc17-273b4106d45a": {
"main": [
[
{
"node": "981f41f0-b5aa-4524-a6c1-60c526ed2131",
"type": "main",
"index": 0
},
{
"node": "15125ec1-3ece-4a0e-8221-1d3359c71f7a",
"type": "main",
"index": 0
}
]
]
},
"4183ab08-ddca-4489-8358-dec530778d28": {
"main": [
[
{
"node": "e042c9b4-81c5-4852-b405-a7e346483eec",
"type": "main",
"index": 0
}
],
[
{
"node": "d6097c2d-5acb-41ec-b468-e93ef9693b89",
"type": "main",
"index": 0
}
],
[
{
"node": "ff74078e-4506-4750-80ec-6df095b3344d",
"type": "main",
"index": 0
}
]
]
},
"8e838252-400b-4019-a22e-a3268f654db1": {
"main": [
[
{
"node": "6224428f-723c-4024-bab9-483edcf777fa",
"type": "main",
"index": 0
}
]
]
},
"6d690e78-8a51-4b45-82b3-febc02d8a752": {
"main": [
[
{
"node": "d0912b45-fe4e-4380-bcb9-be9b0365dad3",
"type": "main",
"index": 1
}
]
]
},
"8e62e7c4-7307-4a65-a9c8-c9e77ec87b43": {
"main": [
[
{
"node": "6d690e78-8a51-4b45-82b3-febc02d8a752",
"type": "main",
"index": 0
}
]
]
},
"49fe574d-3b08-42f6-8f25-3c6bc123db8a": {
"main": [
[
{
"node": "e02d44ca-fe4e-414e-80bd-38890b129022",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - 文書抽出, AI要約
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
潜在顧客開掘とメールワーキングフロー
Google Maps、SendGrid、AIを使用してB2Bリード獲得とメールマーケティングを自動化
If
Set
Code
+
If
Set
Code
141 ノードEzema Kingsley Chibuzo
リード獲得
Firefliesの会議文字起こしとサマリー自動化
GeminiとGmailを使ってFirefliesから会議の要約を自動転記する
Set
Code
Gmail
+
Set
Code
Gmail
26 ノードDavide
文書抽出
AI および Gmail を使って YNAB 内の Amazon 取引の備考を自動更新
AIとGmailを使ってYNABのAmazon取引コメントを自動更新
If
Set
Wait
+
If
Set
Wait
30 ノードAngel Menendez
文書抽出
N8nとSlackを使ってAIメールアプリを作成する
WhatsApp チャットボットを作成(GPT-4o、Whisper での文字起こし、Redis による缓冲を使用)
Set
Code
Wait
+
Set
Code
Wait
35 ノードJose Bossa
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
ペットショップ 4
ペットショップ予約AIエージェント
If
Set
Code
+
If
Set
Code
187 ノードBruno Dias
人工知能
ワークフロー情報
難易度
上級
ノード数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で表示 →
このワークフローを共有