AutomationFlowsAI & RAG › Automate Lead Qualification with AI Voice Calls Using Gpt-3.5, Notion and Vapi

Automate Lead Qualification with AI Voice Calls Using Gpt-3.5, Notion and Vapi

BySummer @summerchang on n8n.io

Creator: Summer Chang

Webhook trigger★★★★★ complexityAI-powered33 nodesHTTP RequestAgentNotionOpenRouter ChatNotion Trigger
AI & RAG Trigger: Webhook Nodes: 33 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9803 — we link there as the canonical source.

This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "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
      ],
      "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
    }
  ],
  "connections": {
    "Webhook2": {
      "main": [
        [
          {
            "node": "Fetch Call Results2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Test Lead?2": {
      "main": [
        [
          {
            "node": "Mock Website Content2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch Real Website2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notion Trigger2": {
      "main": [
        [
          {
            "node": "Get New Leads from Notion2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Need AI Summary?2": {
      "main": [
        [
          {
            "node": "Generate AI Summary2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Use Existing Summary2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean HTML Content2": {
      "main": [
        [
          {
            "node": "Generate Business Analysis3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Call Results2": {
      "main": [
        [
          {
            "node": "Extract Call Fields2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Real Website2": {
      "main": [
        [
          {
            "node": "Clean HTML Content2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Call Fields2": {
      "main": [
        [
          {
            "node": "Need AI Summary?2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate AI Summary2": {
      "main": [
        [
          {
            "node": "Format Final Summary2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Final Summary2": {
      "main": [
        [
          {
            "node": "Update Call Results in Notion2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mock Website Content2": {
      "main": [
        [
          {
            "node": "Clean HTML Content2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Use Existing Summary2": {
      "main": [
        [
          {
            "node": "Format Final Summary2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT-3.5 (Cheap Model)4": {
      "ai_languageModel": [
        [
          {
            "node": "Generate AI Summary2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "GPT-3.5 (Cheap Model)5": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Business Analysis3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get New Leads from Notion2": {
      "main": [
        [
          {
            "node": "Is Test Lead?2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Business Analysis3": {
      "main": [
        [
          {
            "node": "Update Notion with Analysis2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Notion with Analysis2": {
      "main": [
        [
          {
            "node": "Make Real Vapi Call2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Creator: Summer Chang

Source: https://n8n.io/workflows/9803/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow acts as an AI-powered research assistant that takes a topic from the user, performs multi-step intelligent research, and stores the final report in Notion. It uses advanced search, conte

Memory Buffer Window, Output Parser Structured, Agent +6
AI & RAG

This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La

Google Sheets, HTTP Request, Slack +10
AI & RAG

Deep Research new (fr). Uses outputParserStructured, formTrigger, chainLlm, form. Event-driven trigger; 82 nodes.

Output Parser Structured, Form Trigger, Chain Llm +8
AI & RAG

Who is this for? Agencies, consultants, and service providers who conduct discovery calls and need to quickly turn conversations into professional proposals.

Tool Think, Tool Calculator, Agent Tool +18
AI & RAG

Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.

Output Parser Structured, Chain Llm, Google Drive +9