{
  "id": "30NPBKKx7NzBicRL",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Creator Template - Lead Qualification & Follow-up (Gemini)",
  "tags": [],
  "nodes": [
    {
      "id": "2c79aa92-b720-46fb-abac-093f2a7974dc",
      "name": "WordPress Form Trigger",
      "type": "n8n-nodes-base.webhook",
      "notes": "Template: Lead Qualification & Follow\u2011up (Gemini)\nCaptures leads via webhook or form, qualifies with Gemini, and branches to qualified/not qualified paths with calls, scheduling, email, CRM, and Mailchimp.\n\nSetup:\n- Configure credentials: Google Gemini, Gmail, HubSpot, Zoom, Google Calendar, VAPI.\n- Set env vars: MAILCHIMP_LIST_ID_QUALIFIED, MAILCHIMP_LIST_ID_FOLLOWUP.\n- Enable either Webhook (wordpress-form) or Form Trigger.\n- Test with a form submission; adjust copy and delays as needed.",
      "onError": "continueRegularOutput",
      "position": [
        -1408,
        208
      ],
      "parameters": {
        "path": "wordpress-form",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "dfbdbf23-7568-4ae3-8bfc-01d9c2ed50f2",
      "name": "Initial Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1168,
        208
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "18a143b3-3505-439c-92f9-e0c59134b4c1",
      "name": "AI Lead Qualification",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        -1008,
        208
      ],
      "parameters": {
        "modelId": "models/gemini-2.5-flash",
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a lead qualification assistant. Based on the form submission, decide if the lead is QUALIFIED or NOT QUALIFIED. Output exactly one of: QUALIFIED or NOT QUALIFIED."
            },
            {
              "content": "Name: {{$node['WordPress Form Trigger'].json.body.name || ''}}\nEmail: {{$node['WordPress Form Trigger'].json.body.email || ''}}\nMessage: {{$node['WordPress Form Trigger'].json.body.message || ''}}"
            }
          ]
        }
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bc86775e-b69e-40f1-b2fd-18f6b5e12d00",
      "name": "Lead Decision",
      "type": "n8n-nodes-base.if",
      "position": [
        -720,
        208
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c56904a9-fc19-4003-8a3b-e5b6b15c48bb",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "04f43a7b-f901-4802-b37c-9d182f6d21a3",
      "name": "Qualified Lead Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        -512,
        96
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "89703af2-94c6-4d42-9718-82bff7137c5b",
      "name": "VAPI AI Call - Qualified",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -288,
        96
      ],
      "parameters": {
        "url": "https://api.vapi.ai/call/phone",
        "options": {
          "timeout": 30000,
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $credentials.vapiApi.token }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f78f3612-1a27-4d9b-b511-0bbe219adaf7",
      "name": "Post-Call Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        -64,
        96
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "9e58a05c-2b29-4e6d-b541-a5811200fdff",
      "name": "Schedule Meeting",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        160,
        96
      ],
      "parameters": {
        "end": {
          "dateTime": "={{ DateTime.now().plus({ days: 1, hours: 11 }).toISO() }}"
        },
        "start": {
          "dateTime": "={{ DateTime.now().plus({ days: 1, hours: 10 }).toISO() }}"
        },
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "additionalFields": {}
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "86fcc9c5-ef3a-4f81-95ac-3b64670925ff",
      "name": "Create Zoom Meeting",
      "type": "n8n-nodes-base.zoom",
      "position": [
        384,
        -16
      ],
      "parameters": {
        "topic": "=Sales Consultation - {{ $node['WordPress Form Trigger'].json.body.name }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "a9c8ba7e-924c-440f-a0c4-e072c1735b09",
      "name": "Qualified Lead Campaign",
      "type": "n8n-nodes-base.mailchimp",
      "notes": "Adds qualified lead to Mailchimp audience. Replace {{$env.MAILCHIMP_LIST_ID_QUALIFIED}} with your list ID.",
      "position": [
        608,
        -16
      ],
      "parameters": {
        "list": "={{$env.MAILCHIMP_LIST_ID_QUALIFIED}}",
        "email": "={{ $node['WordPress Form Trigger'].json.body.email }}",
        "status": "subscribed",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "3bd32626-5402-4860-9dba-663c8b60c35a",
      "name": "Meeting Confirmation Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        816,
        96
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=Hi {{ $node['WordPress Form Trigger'].json.body.name ? $node['WordPress Form Trigger'].json.body.name.split(' ')[0] : 'there' }},\n\nThank you for your interest in our services! After our initial conversation, I've scheduled a detailed consultation call to discuss how we can help you achieve your goals.\n\n\ud83d\udcc5 **Meeting Details:**\n\u2022 Date: {{ DateTime.fromISO($node['Schedule Meeting'].json.start.dateTime).toFormat('EEEE, MMMM dd, yyyy') }}\n\u2022 Time: {{ DateTime.fromISO($node['Schedule Meeting'].json.start.dateTime).toFormat('h:mm a ZZZZ') }}\n\u2022 Duration: 60 minutes\n\n\ud83d\udd17 **Join the meeting:**\n{{ $node['Create Zoom Meeting'].json.join_url }}\n\n**Meeting ID:** {{ $node['Create Zoom Meeting'].json.id }}\n**Passcode:** {{ $node['Create Zoom Meeting'].json.password }}\n\nI'm looking forward to our detailed conversation!\n\nBest regards,\nAJ\nWeb Developer\nioVista",
        "options": {},
        "subject": "=Your Sales Consultation is Scheduled - {{ DateTime.now().plus({ days: 1 }).toFormat('MMM dd') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "0b5b5445-391a-46ff-8f97-68066228d825",
      "name": "Update CRM - Qualified",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1040,
        192
      ],
      "parameters": {
        "email": "={{ $node['WordPress Form Trigger'].json.body.email }}",
        "options": {},
        "authentication": "oAuth2",
        "additionalFields": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "68ed4aac-6d87-4cb1-9224-a9f4b45196f3",
      "name": "VAPI AI Call - Not Qualified",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -288,
        336
      ],
      "parameters": {
        "url": "https://api.vapi.ai/call/phone",
        "options": {
          "timeout": 30000,
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $credentials.vapiApi.token }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bb6d047d-132b-4fcb-ae5a-9d6fec22bdb3",
      "name": "Follow-up Campaign",
      "type": "n8n-nodes-base.mailchimp",
      "notes": "Adds not-qualified lead to Mailchimp audience. Replace {{$env.MAILCHIMP_LIST_ID_FOLLOWUP}} with your list ID.",
      "position": [
        -48,
        448
      ],
      "parameters": {
        "list": "={{$env.MAILCHIMP_LIST_ID_FOLLOWUP}}",
        "email": "={{ $node['WordPress Form Trigger'].json.body.email }}",
        "status": "subscribed",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "28dd177d-d322-448e-bb4b-5952ac2882b9",
      "name": "Follow-up Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        144,
        448
      ],
      "parameters": {
        "message": "=Hi {{ $node['WordPress Form Trigger'].json.body.name ? $node['WordPress Form Trigger'].json.body.name.split(' ')[0] : 'there' }},\n\nThank you for taking the time to submit your information and for our recent conversation. While we may not be the perfect fit for your current needs, we appreciate your interest in our services.\n\nWe'll keep you updated with valuable content, industry insights, and new service offerings that might be helpful for your business in the future.\n\nIf your requirements change or you'd like to explore other ways we might be able to help, please don't hesitate to reach out.\n\nBest regards,\n[Your Name]\n[Company Name]\n\nP.S. Feel free to follow us on social media for regular updates and tips!",
        "options": {},
        "subject": "Thank you for your interest - Stay connected"
      },
      "typeVersion": 2.1
    },
    {
      "id": "a5e20900-6d6b-4f97-af7d-b5946cc7a1c9",
      "name": "Update CRM - Not Qualified",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        384,
        448
      ],
      "parameters": {
        "email": "={{ $node['WordPress Form Trigger'].json.body.email }}",
        "options": {},
        "authentication": "oAuth2",
        "additionalFields": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "2207162d-03b8-4b62-8a07-3dcb2e16265a",
      "name": "Schedule Follow-up Calendar",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        608,
        528
      ],
      "parameters": {
        "end": {
          "dateTime": "={{ DateTime.now().plus({ days: 30, hours: 14, minutes: 30 }).toISO() }}"
        },
        "start": {
          "dateTime": "={{ DateTime.now().plus({ days: 30, hours: 14 }).toISO() }}"
        },
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "additionalFields": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "0898358a-02b7-4fd1-98fd-809946bd6670",
      "name": "Get Qualified Call Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -64,
        -48
      ],
      "parameters": {
        "url": "=https://api.vapi.ai/call/{{ $node['VAPI AI Call - Qualified'].json.id }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $credentials.vapiApi.token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bccd8b9d-9b42-40ab-a46f-5a22eaf1cb86",
      "name": "Get Follow-up Call Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -64,
        272
      ],
      "parameters": {
        "url": "=https://api.vapi.ai/call/{{ $node['VAPI AI Call - Not Qualified'].json.id }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $credentials.vapiApi.token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c39d5f9f-9d37-4d28-9c4e-9b17fecd7664",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1424,
        400
      ],
      "parameters": {
        "options": {},
        "formTitle": "Contact us",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Ajay"
            },
            {
              "fieldLabel": "email"
            },
            {
              "fieldLabel": "Phone Number"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "f2e0b3a1-7c4a-4a9e-9c7a-1b8b6b7a4d11",
      "name": "Flow Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        -384
      ],
      "parameters": {
        "height": 1760,
        "content": "Flow Doc: Lead Qualification & Follow-up (Gemini)\n\nOverview:\n- Trigger via Webhook path \"wordpress-form\" or built-in Form Trigger\n- AI (Gemini models/gemini-2.5-flash) classifies lead: QUALIFIED or NOT QUALIFIED\n\nQualified path:\n- VAPI call to phone outreach\n- Create Google Calendar event and Zoom meeting\n- Add to Mailchimp audience: $env.MAILCHIMP_LIST_ID_QUALIFIED\n- Send meeting confirmation email via Gmail\n- Update contact in HubSpot CRM\n\nNot qualified path:\n- VAPI call to phone outreach\n- Add to Mailchimp audience: $env.MAILCHIMP_LIST_ID_FOLLOWUP\n- Send follow-up email via Gmail\n- Update contact in HubSpot CRM\n- Schedule 30\u2011day follow-up calendar reminder\n\nSetup requirements:\n- Credentials: Google Gemini, Gmail, HubSpot, Zoom, Google Calendar, VAPI\n- Env: MAILCHIMP_LIST_ID_QUALIFIED, MAILCHIMP_LIST_ID_FOLLOWUP\n- Use ONE trigger in production (Webhook OR Form)\n\nHow to test:\n1) Send test form/webhook with name, email, message\n2) Verify AI decision at \"Lead Decision\"\n3) If QUALIFIED: confirm VAPI call, Calendar event, Zoom link, Mailchimp add, Gmail send, HubSpot update\n4) If NOT QUALIFIED: confirm VAPI call, Mailchimp add, Gmail send, HubSpot update, 30\u2011day calendar event\n5) In HTTP nodes, check response codes and error messages\n\nGo\u2011live checklist:\n- All credentials connected (no red warnings)\n- Env vars set: MAILCHIMP_* values\n- Timezone/delays adjusted\n- Emails personalized\n- Workflow toggled Active after final test\n\nNotes:\n- Adjust copy/timings to your timezone\n- For errors, open the execution and expand each node\n\nOwner: Ajay Yadav (ackm04@gmail.com)\nLast updated: 2025-09-15"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "da82f9aa-149b-442d-bbea-8653d11d9ef3",
  "connections": {
    "Initial Delay": {
      "main": [
        [
          {
            "node": "AI Lead Qualification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Decision": {
      "main": [
        [
          {
            "node": "Qualified Lead Delay",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "VAPI AI Call - Not Qualified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Follow-up Email": {
      "main": [
        [
          {
            "node": "Update CRM - Not Qualified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post-Call Delay": {
      "main": [
        [
          {
            "node": "Schedule Meeting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Meeting": {
      "main": [
        [
          {
            "node": "Create Zoom Meeting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Follow-up Campaign": {
      "main": [
        [
          {
            "node": "Follow-up Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Initial Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Zoom Meeting": {
      "main": [
        [
          {
            "node": "Qualified Lead Campaign",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qualified Lead Delay": {
      "main": [
        [
          {
            "node": "VAPI AI Call - Qualified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Lead Qualification": {
      "main": [
        [
          {
            "node": "Lead Decision",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WordPress Form Trigger": {
      "main": [
        [
          {
            "node": "Initial Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qualified Lead Campaign": {
      "main": [
        [
          {
            "node": "Meeting Confirmation Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VAPI AI Call - Qualified": {
      "main": [
        [
          {
            "node": "Get Qualified Call Results",
            "type": "main",
            "index": 0
          },
          {
            "node": "Post-Call Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Meeting Confirmation Email": {
      "main": [
        [
          {
            "node": "Update CRM - Qualified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update CRM - Not Qualified": {
      "main": [
        [
          {
            "node": "Schedule Follow-up Calendar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VAPI AI Call - Not Qualified": {
      "main": [
        [
          {
            "node": "Get Follow-up Call Results",
            "type": "main",
            "index": 0
          },
          {
            "node": "Follow-up Campaign",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}