{
  "name": "Automate lead qualification with AI voice calls using GPT-3.5, Notion and Vapi",
  "nodes": [
    {
      "id": "dfe3d2e6-448b-4939-92d0-ad0cd411a556",
      "name": "Sticky Note UpdateSlot Webhook1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        1360
      ],
      "parameters": {
        "width": 1002,
        "height": 80,
        "content": "# Update in Notion from status \"New\" to \"Meeting Scheduled\""
      }
    },
    {
      "id": "0dd99d00-450f-4acf-902f-711e37a359c6",
      "name": "Sticky Note UpdateSlot Webhook2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        320
      ],
      "parameters": {
        "width": 730,
        "height": 80,
        "content": "# Received inbound message on the website"
      }
    },
    {
      "id": "2c201478-0ca2-43bc-bfe4-e61a5699883a",
      "name": "Sticky Note BookSlot Webhook2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        336
      ],
      "parameters": {
        "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 webs"
      }
    },
    {
      "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"
      }
    },
    {
      "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 assist"
      }
    },
    {
      "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"
      }
    },
    {
      "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 ->"
      }
    },
    {
      "id": "722f8ee0-22eb-4baf-8df3-2635c1a80685",
      "name": "Fetch Call Results2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        304,
        1776
      ]
    },
    {
      "id": "af4a6fa1-8978-4681-9393-28316c5f9caf",
      "name": "Extract Call Fields2",
      "type": "n8n-nodes-base.code",
      "position": [
        528,
        1776
      ]
    },
    {
      "id": "a68a24ab-e720-49be-a3df-68ccc4bf5b77",
      "name": "Need AI Summary?2",
      "type": "n8n-nodes-base.if",
      "position": [
        736,
        1776
      ]
    },
    {
      "id": "adda5373-3665-451b-86fa-2a8b5919535d",
      "name": "Generate AI Summary2",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        1664
      ]
    },
    {
      "id": "788349f7-921e-4b96-b953-eae34c357174",
      "name": "Use Existing Summary2",
      "type": "n8n-nodes-base.code",
      "position": [
        1088,
        2048
      ]
    },
    {
      "id": "a5029136-6632-4a37-9689-f234a7eea178",
      "name": "Format Final Summary2",
      "type": "n8n-nodes-base.code",
      "position": [
        1472,
        1776
      ]
    },
    {
      "id": "7657cdb0-f067-4d04-ae99-cc43446c87fa",
      "name": "Update Call Results in Notion2",
      "type": "n8n-nodes-base.notion",
      "position": [
        1728,
        1776
      ]
    },
    {
      "id": "e056e59f-1ff8-43df-aaeb-447c190a8edf",
      "name": "Webhook2",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -48,
        1776
      ]
    },
    {
      "id": "c9cc711b-5a39-466a-94de-7a38648c9c16",
      "name": "GPT-3.5 (Cheap Model)4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1040,
        1872
      ]
    },
    {
      "id": "7a9aaf03-d0ae-4066-be6a-a530734c1581",
      "name": "Goal",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        448
      ],
      "parameters": {
        "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 Notio"
      }
    },
    {
      "id": "d8882c1d-6620-4a85-aaa5-24ae7e637d66",
      "name": "Trigger Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        448
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "ab9f7f42-b945-4715-b17c-658ee002e2c7",
      "name": "OpenRouter",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        1040
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "8229ce5e-e1b0-4e04-823a-28351151c6d2",
      "name": "Vapi Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        448
      ],
      "parameters": {
        "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_"
      }
    },
    {
      "id": "4668ead4-c315-4b1a-bd48-2fb7b50ec73f",
      "name": "Testing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        448
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "38dfaa1f-3528-406b-986b-b87b0fe22869",
      "name": "Is Test Lead?2",
      "type": "n8n-nodes-base.if",
      "position": [
        368,
        768
      ]
    },
    {
      "id": "ba5072b9-3049-434b-9553-39e02022fca7",
      "name": "Mock Website Content2",
      "type": "n8n-nodes-base.code",
      "position": [
        624,
        640
      ]
    },
    {
      "id": "62b53e84-2288-4cb0-b256-7aa21ebc328c",
      "name": "Fetch Real Website2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        624,
        880
      ]
    },
    {
      "id": "c5d70b51-b3f0-498f-ac50-8b092e65a1eb",
      "name": "Clean HTML Content2",
      "type": "n8n-nodes-base.code",
      "position": [
        848,
        768
      ]
    },
    {
      "id": "609e9391-da28-4b48-a23a-6b67adc194f8",
      "name": "GPT-3.5 (Cheap Model)5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1072,
        1056
      ]
    },
    {
      "id": "68ec7e0e-b6f6-4803-ac15-9f0db2fcd979",
      "name": "Make Real Vapi Call2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1648,
        768
      ]
    },
    {
      "id": "1dc4055d-b6de-4524-9338-4514cdd5b319",
      "name": "Get New Leads from Notion2",
      "type": "n8n-nodes-base.notion",
      "position": [
        160,
        768
      ]
    },
    {
      "id": "09348e1b-1743-4d49-a42c-d848ab1376ac",
      "name": "Generate Business Analysis3",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1072,
        768
      ]
    },
    {
      "id": "962590ad-5272-4efe-86f0-21280eaebe7a",
      "name": "Update Notion with Analysis2",
      "type": "n8n-nodes-base.notion",
      "position": [
        1408,
        768
      ]
    },
    {
      "id": "9e38c861-c647-46a9-856b-0bba557bbacf",
      "name": "Notion Trigger2",
      "type": "n8n-nodes-base.notionTrigger",
      "position": [
        -64,
        768
      ]
    },
    {
      "id": "9579588e-88c9-414a-abab-9e471a66a54c",
      "name": "Sticky Note BookSlot Webhook",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        704
      ],
      "parameters": {
        "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.sit"
      }
    },
    {
      "id": "9c94c3a5-3b55-44f2-bdc5-d80ed6754c32",
      "name": "Sticky Note BookSlot Webhook1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        1008
      ],
      "parameters": {
        "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 Work"
      }
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}