8
n8n 中文网amn8n.com

使用 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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量33
分类-
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者

Product 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 查看

分享此工作流

分类

分类: 34