使用 GPT-3.5、Notion 和 Vapi 通过 AI
高级
这是一个自动化工作流,包含 33 个节点。主要使用 If, Code, Notion, Webhook, HttpRequest 等节点。 使用 GPT-3.5、Notion 和 Vapi 通过 AI 语音通话自动进行潜在客户资格认定
前置要求
- •Notion API Key
- •HTTP Webhook 端点(n8n 会自动生成)
- •可能需要目标 API 的认证凭证
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "1401ee9e9fdd0e9d0b337b70e6fb76d293cb16d23811c9f2d457eebd07c701f0",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "dfe3d2e6-448b-4939-92d0-ad0cd411a556",
"name": "Sticky Note UpdateSlot Webhook1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
1360
],
"parameters": {
"color": 6,
"width": 1002,
"height": 80,
"content": "# Update in Notion from status \"New\" to \"Meeting Scheduled\""
},
"typeVersion": 1
},
{
"id": "0dd99d00-450f-4acf-902f-711e37a359c6",
"name": "Sticky Note UpdateSlot Webhook2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
320
],
"parameters": {
"color": 6,
"width": 730,
"height": 80,
"content": "# Received inbound message on the website"
},
"typeVersion": 1
},
{
"id": "2c201478-0ca2-43bc-bfe4-e61a5699883a",
"name": "Sticky Note BookSlot Webhook2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
336
],
"parameters": {
"color": 5,
"width": 814,
"height": 336,
"content": "# Website Leads to Voice Demo and Scheduling\nCreator: [Summer Chang](https://www.youtube.com/channel/UCAdp-nOSH-jcrwXkLlUMyXQ)\n\n## AI Booking Agent Setup Guide\nOverview\nThis automation turns your website into an active booking agent. When someone fills out your form, it automatically:\n\nAdds their information to Notion\nAI researches their business from their website\nCalls them immediately with a personalized pitch\nUpdates Notion with call results\n\nTotal setup time: 30-45 minutes"
},
"typeVersion": 1
},
{
"id": "8739a382-9789-46b7-bcf5-ab10657d907c",
"name": "Goal Part 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
1488
],
"parameters": {
"width": 350,
"height": 232,
"content": "PART 2 - WEBHOOK HANDLER\n\nProcesses call results:\n1. Receives webhook from Vapi\n2. Fetches call details\n3. Generates AI summary\n4. Updates Notion\n\nIMPORTANT: Set up Part 1 first"
},
"typeVersion": 1
},
{
"id": "ce898dcd-6f4b-4815-9558-fc6f849f0cef",
"name": "Webhook Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
1488
],
"parameters": {
"width": 334,
"height": 220,
"content": "WEBHOOK SETUP\n\n1. Activate this workflow first\n2. Copy Production URL from webhook node\n3. Go to vapi.ai dashboard\n4. Open your assistant settings\n5. Add webhook URL to Server URL field\n6. Save assistant"
},
"typeVersion": 1
},
{
"id": "cd38d209-85de-4d44-b361-fdbc58fcd12a",
"name": "Fetch Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
1488
],
"parameters": {
"width": 316,
"height": 214,
"content": "FETCH CALL RESULTS\n\nReplace YOUR_VAPI_API_KEY with your actual API key\nFormat: Bearer YOUR_TOKEN_HERE\nUse same key from Part 1"
},
"typeVersion": 1
},
{
"id": "9affa4c5-a8d5-42ab-9bdd-b416f4f77640",
"name": "Update Notion",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
1488
],
"parameters": {
"width": 350,
"height": 250,
"content": "UPDATE NOTION\n\n1. Connect same Notion credentials\n2. Same database as Part 1\n3. Add property mappings:\n - Status -> {{ $json.reason }}\n - Call Summary -> {{ $json.summary }}\n - Call Recording -> {{ $json.recording }}\n - Call Notes -> {{ $json.notes }}"
},
"typeVersion": 1
},
{
"id": "722f8ee0-22eb-4baf-8df3-2635c1a80685",
"name": "Fetch Call Results2",
"type": "n8n-nodes-base.httpRequest",
"position": [
304,
1776
],
"parameters": {
"url": "=https://api.vapi.ai/calls/{{ $json.id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "af4a6fa1-8978-4681-9393-28316c5f9caf",
"name": "Extract Call Fields2",
"type": "n8n-nodes-base.code",
"position": [
528,
1776
],
"parameters": {
"jsCode": "const callData = $input.item.json.data?.[1] || $input.item.json.data?.[0] || {};\nconst customer = callData.customer || {};\n\nconst endedReason = callData.endedReason || 'unknown';\nconst wasAnswered = endedReason !== 'customer-did-not-answer';\n\nconsole.log('Call ended reason:', endedReason);\nconsole.log('Was answered:', wasAnswered);\n\nif (!wasAnswered) {\n console.log('Skipping AI summary - call not answered');\n return [{\n json: {\n summary: 'No answer - call not connected',\n notes: 'Lead did not pick up the phone.',\n recording: callData.recordingUrl || '',\n reason: 'No answer',\n skip_ai: true\n }\n }];\n}\n\nreturn [{\n json: {\n summary_input: `Lead: ${customer.name || 'Unknown'}\nDuration: ${callData.duration || 0}s\nOutcome: ${endedReason}\nCall Summary: ${callData.summary || 'None provided'}\nNotes: ${callData.notes || 'None'}`.trim(),\n recording: callData.recordingUrl || '',\n raw_reason: endedReason,\n skip_ai: false\n }\n}];"
},
"typeVersion": 2
},
{
"id": "a68a24ab-e720-49be-a3df-68ccc4bf5b77",
"name": "Need AI Summary?2",
"type": "n8n-nodes-base.if",
"position": [
736,
1776
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.skip_ai }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "adda5373-3665-451b-86fa-2a8b5919535d",
"name": "Generate AI Summary2",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1040,
1664
],
"parameters": {
"text": "={{ $json.summary_input }}",
"options": {
"systemMessage": "Summarize this call in 2 sentences:\n1. What happened\n2. Next action\n\nBe concise and factual."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "788349f7-921e-4b96-b953-eae34c357174",
"name": "Use Existing Summary2",
"type": "n8n-nodes-base.code",
"position": [
1088,
2048
],
"parameters": {
"jsCode": "return [{\n json: {\n summary: $json.summary,\n notes: $json.notes,\n recording: $json.recording,\n reason: $json.reason\n }\n}];"
},
"typeVersion": 2
},
{
"id": "a5029136-6632-4a37-9689-f234a7eea178",
"name": "Format Final Summary2",
"type": "n8n-nodes-base.code",
"position": [
1472,
1776
],
"parameters": {
"jsCode": "const aiOutput = $json.output || $json.summary;\nconst recording = $('Extract Call Fields2').item.json.recording;\nconst rawReason = $('Extract Call Fields2').item.json.raw_reason;\n\nlet notionStatus = 'Follow Up';\nif (rawReason.includes('Meeting Scheduled') || rawReason.includes('scheduled')) {\n notionStatus = 'Meeting Scheduled';\n} else if (rawReason.includes('Not Interested') || rawReason.includes('not interested')) {\n notionStatus = 'Not Interested';\n} else if (rawReason.includes('customer-did-not-answer') || rawReason.includes('no answer')) {\n notionStatus = 'No answer';\n}\n\nreturn [{\n json: {\n summary: aiOutput,\n notes: `Call ended: ${rawReason}`,\n recording: recording,\n reason: notionStatus\n }\n}];"
},
"typeVersion": 2
},
{
"id": "7657cdb0-f067-4d04-ae99-cc43446c87fa",
"name": "Update Call Results in Notion2",
"type": "n8n-nodes-base.notion",
"position": [
1728,
1776
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Update Notion with Analysis1').item.json.id }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": []
}
},
"typeVersion": 2.2
},
{
"id": "e056e59f-1ff8-43df-aaeb-447c190a8edf",
"name": "Webhook2",
"type": "n8n-nodes-base.webhook",
"position": [
-48,
1776
],
"webhookId": "575071e2-0f64-434e-b422-da797aec2f9a",
"parameters": {
"path": "575071e2-0f64-434e-b422-da797aec2f9a",
"options": {}
},
"typeVersion": 2.1
},
{
"id": "c9cc711b-5a39-466a-94de-7a38648c9c16",
"name": "GPT-3.5 (Cheap Model)4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1040,
1872
],
"parameters": {
"model": "openai/gpt-3.5-turbo",
"options": {}
},
"typeVersion": 1
},
{
"id": "7a9aaf03-d0ae-4066-be6a-a530734c1581",
"name": "Goal",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
448
],
"parameters": {
"color": 3,
"width": 400,
"height": 248,
"content": "PART 1 - MAKE A VAPI CALL\n\nAutomatically qualifies leads using AI:\n- Monitors Notion for new leads\n- Fetches website content\n- AI analyzes their business\n- Makes AI voice call via Vapi\n- Updates Notion with results"
},
"typeVersion": 1
},
{
"id": "d8882c1d-6620-4a85-aaa5-24ae7e637d66",
"name": "Trigger Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
448
],
"parameters": {
"color": 3,
"width": 302,
"height": 252,
"content": "NOTION TRIGGER SETUP\n\n1. Connect Notion via OAuth\n2. Select your leads database\n3. Database needs:\n - Name (title)\n - Phone (phone_number)\n - Website URL (url)\n - Status (select)\n - Business Analysis (rich_text)"
},
"typeVersion": 1
},
{
"id": "ab9f7f42-b945-4715-b17c-658ee002e2c7",
"name": "OpenRouter",
"type": "n8n-nodes-base.stickyNote",
"position": [
1184,
1040
],
"parameters": {
"color": 3,
"width": 300,
"height": 180,
"content": "OPENROUTER SETUP\n\n1. Go to openrouter.ai\n2. Create account and get API key\n3. Add to GPT-3.5 node\n4. Cost: $0.001-0.002 per lead"
},
"typeVersion": 1
},
{
"id": "8229ce5e-e1b0-4e04-823a-28351151c6d2",
"name": "Vapi Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
1568,
448
],
"parameters": {
"color": 3,
"width": 400,
"height": 280,
"content": "VAPI CALL SETUP - CRITICAL\n\n1. Get Vapi account at vapi.ai\n2. Create AI assistant\n3. Get phone number\n4. In this node, replace:\n - YOUR_VAPI_API_KEY\n - YOUR_VAPI_ASSISTANT_ID\n - YOUR_VAPI_PHONE_NUMBER_ID\n - [Your Company] name\n5. Setup Part 2 webhook workflow\n6. Add webhook URL to Vapi assistant"
},
"typeVersion": 1
},
{
"id": "4668ead4-c315-4b1a-bd48-2fb7b50ec73f",
"name": "Testing",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
448
],
"parameters": {
"color": 3,
"width": 300,
"height": 252,
"content": "TESTING\n\n1. Add lead named TEST Company\n2. Phone: Your phone number\n3. Website: A real website link https://example.com\n4. Status: New\n5. Run workflow\n6. Uses mock data, no real call"
},
"typeVersion": 1
},
{
"id": "38dfaa1f-3528-406b-986b-b87b0fe22869",
"name": "Is Test Lead?2",
"type": "n8n-nodes-base.if",
"position": [
368,
768
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.property_name }}",
"value2": "TEST",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"id": "ba5072b9-3049-434b-9553-39e02022fca7",
"name": "Mock Website Content2",
"type": "n8n-nodes-base.code",
"position": [
624,
640
],
"parameters": {
"jsCode": "const leadName = $('Get New Leads from Notion2').item.json.property_name;\nconst business = $('Get New Leads from Notion2').item.json.property_business || 'Test Business';\n\nreturn [{\n json: {\n data: `Welcome to ${business}. We are a leading provider of business solutions. Our services include consulting, software development, and digital transformation. Contact us today to learn more about how we can help your business grow.`\n }\n}];"
},
"typeVersion": 2
},
{
"id": "62b53e84-2288-4cb0-b256-7aa21ebc328c",
"name": "Fetch Real Website2",
"type": "n8n-nodes-base.httpRequest",
"position": [
624,
880
],
"parameters": {
"url": "={{ $json.property_website_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "c5d70b51-b3f0-498f-ac50-8b092e65a1eb",
"name": "Clean HTML Content2",
"type": "n8n-nodes-base.code",
"position": [
848,
768
],
"parameters": {
"jsCode": "const html = $input.item.json.data || '';\n\nconsole.log('Original HTML size:', html.length, 'characters');\n\nlet cleaned = html\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/<style\\b[^<]*(?:(?!<\\/style>)<[^<]*)*<\\/style>/gi, '')\n .replace(/<!--[\\s\\S]*?-->/g, '')\n .replace(/<head\\b[^<]*(?:(?!<\\/head>)<[^<]*)*<\\/head>/gi, '');\n\nlet text = cleaned.replace(/<[^>]+>/g, ' ');\n\ntext = text\n .replace(/\\s+/g, ' ')\n .replace(/\\n+/g, ' ')\n .trim();\n\nconst truncated = text.substring(0, 2000);\n\nconst tokensSaved = Math.floor((html.length - truncated.length) / 4);\n\nconsole.log('Cleaned size:', truncated.length, 'characters');\nconsole.log('Estimated tokens saved:', tokensSaved);\n\nreturn [{\n json: {\n data: truncated,\n metadata: {\n original_size: html.length,\n cleaned_size: truncated.length,\n tokens_saved: tokensSaved\n }\n }\n}];"
},
"typeVersion": 2
},
{
"id": "609e9391-da28-4b48-a23a-6b67adc194f8",
"name": "GPT-3.5 (Cheap Model)5",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1072,
1056
],
"parameters": {
"model": "openai/gpt-3.5-turbo",
"options": {}
},
"typeVersion": 1
},
{
"id": "68ec7e0e-b6f6-4803-ac15-9f0db2fcd979",
"name": "Make Real Vapi Call2",
"type": "n8n-nodes-base.httpRequest",
"position": [
1648,
768
],
"parameters": {
"url": "https://api.vapi.ai/call",
"method": "POST",
"options": {},
"jsonBody": "={\n \"assistantId\": \"YOUR_VAPI_ASSISTANT_ID\",\n \"customer\": {\n \"number\": \"{{ $json.property_phone }}\",\n \"name\": \"{{ $json.name }}\"\n },\n \"phoneNumberId\": \"YOUR_VAPI_PHONE_NUMBER_ID\",\n \"assistantOverrides\": {\n \"firstMessage\": \"Hello {{ $json.name }}, this is calling from [Your Company]. {{ $json.property_business_analysis }} and would love to discuss how we can help you today.\"\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "1dc4055d-b6de-4524-9338-4514cdd5b319",
"name": "Get New Leads from Notion2",
"type": "n8n-nodes-base.notion",
"position": [
160,
768
],
"parameters": {
"filters": {
"conditions": [
{
"key": "status|status",
"condition": "equals",
"statusValue": "New"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": ""
},
"filterType": "manual"
},
"typeVersion": 2.2
},
{
"id": "09348e1b-1743-4d49-a42c-d848ab1376ac",
"name": "Generate Business Analysis3",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1072,
768
],
"parameters": {
"text": "={{ $json.data }}",
"options": {
"systemMessage": "Extract from this website text:\n1. What the business does (max 10 words)\n2. Their main service (max 10 words)\n3. One interesting detail (max 15 words)\n\nFormat EXACTLY as:\nI researched [company]. They [what they do]. Their key service is [main service]. [interesting detail].\n\nBe concise. Ignore HTML markup."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "962590ad-5272-4efe-86f0-21280eaebe7a",
"name": "Update Notion with Analysis2",
"type": "n8n-nodes-base.notion",
"position": [
1408,
768
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Get New Leads from Notion2').item.json.id }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Business Analysis|rich_text",
"textContent": "={{ $json.output }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9e38c861-c647-46a9-856b-0bba557bbacf",
"name": "Notion Trigger2",
"type": "n8n-nodes-base.notionTrigger",
"position": [
-64,
768
],
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"databaseId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"typeVersion": 1
},
{
"id": "9579588e-88c9-414a-abab-9e471a66a54c",
"name": "Sticky Note BookSlot Webhook",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
704
],
"parameters": {
"color": 5,
"width": 814,
"height": 272,
"content": "## What You Need\nBefore starting, create accounts and gather these:\n\nn8n account (cloud or self-hosted)\nNotion account - Free plan works [duplicate my notion template](https://summerchangco.notion.site/websiteinbound?v=28e2d5cd4ef481a78864000c6a5459a7&source=copy_link)\nOpenRouter API key - Get from openrouter.ai\nVapi account - Get from vapi.ai\n\nCreate an AI assistant\nSet up a phone number\nCopy your API key, Assistant ID, and Phone Number ID"
},
"typeVersion": 1
},
{
"id": "9c94c3a5-3b55-44f2-bdc5-d80ed6754c32",
"name": "Sticky Note BookSlot Webhook1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
1008
],
"parameters": {
"color": 5,
"width": 814,
"height": 432,
"content": "## How It Works\nThe Complete Flow\n\nVisitor fills form on your website\nForm submission creates new record in Notion with Status = \"New\"\nNotion Trigger detects new record (checks every minute)\nMain Workflow executes:\n\nFetches lead's website\nAI analyzes their business\nUpdates Notion with analysis\nMakes Vapi call with personalized intro\n\n\nCall happens between your AI agent and the lead\nWhen call ends, Vapi sends webhook to n8n\nWebhook Workflow executes:\n\nFetches call details from Vapi\nAI generates call summary\nUpdates Notion with results and recording"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"e056e59f-1ff8-43df-aaeb-447c190a8edf": {
"main": [
[
{
"node": "722f8ee0-22eb-4baf-8df3-2635c1a80685",
"type": "main",
"index": 0
}
]
]
},
"38dfaa1f-3528-406b-986b-b87b0fe22869": {
"main": [
[
{
"node": "ba5072b9-3049-434b-9553-39e02022fca7",
"type": "main",
"index": 0
}
],
[
{
"node": "62b53e84-2288-4cb0-b256-7aa21ebc328c",
"type": "main",
"index": 0
}
]
]
},
"9e38c861-c647-46a9-856b-0bba557bbacf": {
"main": [
[
{
"node": "1dc4055d-b6de-4524-9338-4514cdd5b319",
"type": "main",
"index": 0
}
]
]
},
"a68a24ab-e720-49be-a3df-68ccc4bf5b77": {
"main": [
[
{
"node": "adda5373-3665-451b-86fa-2a8b5919535d",
"type": "main",
"index": 0
}
],
[
{
"node": "788349f7-921e-4b96-b953-eae34c357174",
"type": "main",
"index": 0
}
]
]
},
"c5d70b51-b3f0-498f-ac50-8b092e65a1eb": {
"main": [
[
{
"node": "09348e1b-1743-4d49-a42c-d848ab1376ac",
"type": "main",
"index": 0
}
]
]
},
"722f8ee0-22eb-4baf-8df3-2635c1a80685": {
"main": [
[
{
"node": "af4a6fa1-8978-4681-9393-28316c5f9caf",
"type": "main",
"index": 0
}
]
]
},
"62b53e84-2288-4cb0-b256-7aa21ebc328c": {
"main": [
[
{
"node": "c5d70b51-b3f0-498f-ac50-8b092e65a1eb",
"type": "main",
"index": 0
}
]
]
},
"af4a6fa1-8978-4681-9393-28316c5f9caf": {
"main": [
[
{
"node": "a68a24ab-e720-49be-a3df-68ccc4bf5b77",
"type": "main",
"index": 0
}
]
]
},
"adda5373-3665-451b-86fa-2a8b5919535d": {
"main": [
[
{
"node": "a5029136-6632-4a37-9689-f234a7eea178",
"type": "main",
"index": 0
}
]
]
},
"a5029136-6632-4a37-9689-f234a7eea178": {
"main": [
[
{
"node": "7657cdb0-f067-4d04-ae99-cc43446c87fa",
"type": "main",
"index": 0
}
]
]
},
"ba5072b9-3049-434b-9553-39e02022fca7": {
"main": [
[
{
"node": "c5d70b51-b3f0-498f-ac50-8b092e65a1eb",
"type": "main",
"index": 0
}
]
]
},
"788349f7-921e-4b96-b953-eae34c357174": {
"main": [
[
{
"node": "a5029136-6632-4a37-9689-f234a7eea178",
"type": "main",
"index": 0
}
]
]
},
"c9cc711b-5a39-466a-94de-7a38648c9c16": {
"ai_languageModel": [
[
{
"node": "adda5373-3665-451b-86fa-2a8b5919535d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"609e9391-da28-4b48-a23a-6b67adc194f8": {
"ai_languageModel": [
[
{
"node": "09348e1b-1743-4d49-a42c-d848ab1376ac",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"1dc4055d-b6de-4524-9338-4514cdd5b319": {
"main": [
[
{
"node": "38dfaa1f-3528-406b-986b-b87b0fe22869",
"type": "main",
"index": 0
}
]
]
},
"09348e1b-1743-4d49-a42c-d848ab1376ac": {
"main": [
[
{
"node": "962590ad-5272-4efe-86f0-21280eaebe7a",
"type": "main",
"index": 0
}
]
]
},
"962590ad-5272-4efe-86f0-21280eaebe7a": {
"main": [
[
{
"node": "68ec7e0e-b6f6-4803-ac15-9f0db2fcd979",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
自动化 LinkedIn 和 X 职位搜索并保存结果到 Notion
自动化 LinkedIn 和 X 职位搜索并保存结果到 Notion
If
Set
Code
+
If
Set
Code
23 节点Summer
AI驱动的自动化求职与申请工作流
AI驱动的自动化求职与申请
If
Set
Code
+
If
Set
Code
21 节点Gerald Denor
人力资源
AI驱动的食品订单处理系统
AI驱动的食品订单处理系统,集成Facebook Messenger、Google表格和日历
If
Code
Webhook
+
If
Code
Webhook
26 节点Hans Wilhelm Radam
客户培育
来自多个招聘网站的求职自动化
使用 5 个招聘平台和 AI 简历生成器自动化求职与申请
If
Set
Code
+
If
Set
Code
34 节点Gerald Denor
个人效率
构建带记忆、Google套件和多AI研究成像的WhatsApp助手
构建带记忆、Google套件和多AI研究成像的WhatsApp助手
If
Set
Code
+
If
Set
Code
71 节点Iniyavan JC
AI 聊天机器人
使用AI、ElevenLabs和多平台发布创建和审批POV视频
使用AI、ElevenLabs和多平台发布创建和审批POV视频(TikTok/IG/YT)
If
Set
Code
+
If
Set
Code
60 节点Immanuel
设计
工作流信息
难度等级
高级
节点数量33
分类-
节点类型9
作者
Summer
@summerchangProduct Designer & AI Consultant | I help business owners improve their websites, apps, and digital marketing systems to drive growth and save time—using design expertise and AI automation.
外部链接
在 n8n.io 查看 →
分享此工作流