🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Gemini + HubSpot, qualify leads and book calls

Lisa Granqvist Partner Workflow Automation Expert

Leads come in. Then they sit. Someone forgets to reply, someone else replies twice, and your CRM turns into a half-finished to-do list with missing context.

This is the kind of mess marketing managers and sales ops teams deal with daily, and honestly, founders feel it too. This Gemini HubSpot leads automation qualifies every inquiry, routes it to the right next step, and keeps your records clean without extra tabs and copy-paste.

Below you’ll see exactly what the workflow does, what you get out of it, and what you need to run it in your own setup.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Gemini + HubSpot, qualify leads and book calls

The Problem: Leads Fall Through the Cracks After “Contact Us”

The moment a lead hits your inbox is when speed matters most, yet it’s also when things get chaotic. A form submission lands in one place, a follow-up happens somewhere else, and the CRM update is “later” (which usually means never). If the lead is strong, you risk replying too late and losing them to a competitor. If the lead is weak, you still spend time writing polite responses, tagging lists, and setting reminders you won’t trust. Meanwhile, HubSpot ends up full of half-updated contacts, which makes reporting feel like guesswork.

It adds up fast. Here’s where the workflow usually breaks down before you automate it.

  • You spend about 10 minutes per lead just deciding if it’s worth a sales touch.
  • Form details get copied into HubSpot inconsistently, so segmentation and handoffs are unreliable.
  • Hot leads don’t get a clear next step, which means fewer booked meetings.
  • Unqualified leads still eat time because follow-ups and reminders aren’t systemized.

The Solution: AI Qualification, Scheduling, and CRM Updates in One Flow

This workflow turns lead intake into a consistent, repeatable pipeline. A lead comes in through your WordPress form webhook or an n8n form (you keep one trigger enabled in production). After a short delay, Google Gemini reviews the lead’s name, email, and message, then classifies it as QUALIFIED or NOT QUALIFIED. From there, the workflow takes over. Qualified leads get an AI phone call via VAPI, then a Google Calendar booking, a Zoom meeting created automatically, and a confirmation email sent from Gmail. At the same time, HubSpot is updated and the contact is enrolled into the right Mailchimp audience. If the lead isn’t a fit, the workflow still follows up professionally, updates HubSpot, adds them to a follow-up list in Mailchimp, and creates a 30-day reminder so you can re-check later without relying on memory.

The flow starts with lead intake, then AI scoring, then a simple branch decision. One path books the meeting and sends details; the other path runs a lighter-touch follow-up sequence and schedules a future check-in.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you get 20 inbound leads a week. Manually, you might spend about 10 minutes scoring each one, another 10 minutes updating HubSpot, and 10 more writing and sending the right email, so roughly 10 hours a week. With this workflow, the only “manual” moment is the lead submitting the form, then you review outcomes in HubSpot. Gemini scores the message, Gmail sends the right email, and qualified leads get a Calendar event plus a Zoom link without someone on your team stitching it together.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Gemini API for AI lead scoring decisions
  • HubSpot to create/update contacts and properties
  • Mailchimp list IDs (get them from Mailchimp Audience settings)

Skill level: Intermediate. You’ll connect OAuth accounts, set two environment variables, and confirm field mappings in HubSpot.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A lead hits your workflow. It starts from either a WordPress form POSTing JSON to the webhook path (wordpress-form) or from an n8n Form Trigger. In production you keep only one enabled, so you don’t double-process submissions.

Gemini scores the message. The workflow sends the lead’s name, email, and message to Google Gemini and gets back a clear label: QUALIFIED or NOT QUALIFIED. That one decision drives everything else, which is what makes the process consistent.

The right next step runs automatically. For QUALIFIED leads, the workflow triggers an AI phone call via VAPI, schedules a Google Calendar event, creates a Zoom meeting, adds the lead to the qualified Mailchimp list, and sends the meeting confirmation via Gmail. For NOT QUALIFIED, it still runs a VAPI call (if you want it), enrolls them into a follow-up list, emails them, updates HubSpot, and creates a 30-day calendar reminder.

Your systems stay in sync. HubSpot is updated in both branches, so you always know what happened and when. And because Mailchimp enrollment is handled automatically, your nurturing stays aligned with the qualification outcome.

You can easily modify the qualification criteria to fit your ICP, or change the outreach messages to match your brand voice. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the inbound form triggers so the workflow can start from WordPress and the built-in form submission.

  1. Open WP Form Webhook and set Path to wordpress-form and HTTP Method to POST.
  2. Copy the Test URL from WP Form Webhook and configure your WordPress form to send submissions to it.
  3. Open Form Submit Trigger and confirm Form Title is Contact us with fields Name, email, and Phone Number.
  4. Verify both WP Form Webhook and Form Submit Trigger connect to Start Delay Pause as the first action.

If you only plan to use one trigger, you can disable the other node to avoid duplicate lead processing.

Step 2: Configure the Initial Delay and AI Qualification

Introduce a pause before scoring, then classify each lead using Gemini.

  1. Open Start Delay Pause and configure the wait duration you want before scoring (leave empty to use defaults).
  2. In AI Lead Scoring, set Model to models/gemini-2.5-flash.
  3. Ensure the user message references the webhook payload: Name: {{$node['WP Form Webhook'].json.body.name || ''}}, Email: {{$node['WP Form Webhook'].json.body.email || ''}}, Message: {{$node['WP Form Webhook'].json.body.message || ''}}.
  4. Credential Required: Connect your googlePalmApi credentials in AI Lead Scoring.

⚠️ Common Pitfall: If the webhook fields are named differently in WordPress, the AI prompt will receive empty strings. Confirm the form field names match name, email, and message.

Step 3: Configure the Qualification Routing

Route qualified vs. unqualified leads using the decision logic.

  1. Open Qualification Branch and set the condition to compare the AI output to QUALIFIED.
  2. Confirm the true branch goes to Qualified Wait and the false branch goes to Follow-up Voice API Call.
  3. Adjust Qualified Wait to your desired pause before the outbound call.

Step 4: Configure Qualified Lead Actions

Qualified leads receive a voice call, booking, Zoom session, Mailchimp list add, confirmation email, and CRM update.

  1. In Qualified Voice API Call, keep URL as https://api.vapi.ai/call/phone and ensure headers include Authorization: Bearer {{ $credentials.vapiApi.token }}.
  2. Credential Required: Connect your HTTP Header Auth credentials for Qualified Voice API Call (uses $credentials.vapiApi.token).
  3. Note the parallel execution: Qualified Voice API Call outputs to both Fetch Qualified Call Results and Post Call Pause in parallel.
  4. In Fetch Qualified Call Results, set URL to =https://api.vapi.ai/call/{{ $node['Qualified Voice API Call'].json.id }} and include Authorization header with Bearer {{ $credentials.vapiApi.token }}.
  5. Configure Post Call Pause duration, then open Calendar Booking and set Start to {{ DateTime.now().plus({ days: 1, hours: 10 }).toISO() }} and End to {{ DateTime.now().plus({ days: 1, hours: 11 }).toISO() }}.
  6. Credential Required: Connect your googleCalendarOAuth2Api credentials in Calendar Booking.
  7. In Zoom Session Create, set Topic to =Sales Consultation - {{ $node['WP Form Webhook'].json.body.name }}.
  8. Credential Required: Add Zoom credentials to Zoom Session Create before running in production.
  9. In Qualified Mailchimp Add, set List to ={{$env.MAILCHIMP_LIST_ID_QUALIFIED}}, Email to ={{ $node['WP Form Webhook'].json.body.email }}, and Status to subscribed.
  10. Credential Required: Connect your Mailchimp credentials in Qualified Mailchimp Add.
  11. In Meeting Confirmation Dispatch, set Send To to [YOUR_EMAIL], keep the message body as configured, and set Subject to =Your Sales Consultation is Scheduled - {{ DateTime.now().plus({ days: 1 }).toFormat('MMM dd') }}.
  12. Credential Required: Connect your gmailOAuth2 credentials in Meeting Confirmation Dispatch.
  13. In CRM Update Qualified, set Email to ={{ $node['WP Form Webhook'].json.body.email }} and ensure Authentication is oAuth2.
  14. Credential Required: Connect your HubSpot credentials in CRM Update Qualified.

⚠️ Common Pitfall: The Mailchimp list IDs are environment variables. Make sure MAILCHIMP_LIST_ID_QUALIFIED is set in your n8n environment or the node will fail.

Step 5: Configure Unqualified Lead Follow-up

Unqualified leads receive a voice call, follow-up list add, email, CRM update, and a calendar reminder.

  1. In Follow-up Voice API Call, keep URL at https://api.vapi.ai/call/phone and include header Authorization: Bearer {{ $credentials.vapiApi.token }}.
  2. Credential Required: Connect your HTTP Header Auth credentials for Follow-up Voice API Call (uses $credentials.vapiApi.token).
  3. Note the parallel execution: Follow-up Voice API Call outputs to both Fetch Follow-up Call Results and Follow-up Mailchimp Add in parallel.
  4. In Fetch Follow-up Call Results, set URL to =https://api.vapi.ai/call/{{ $node['Follow-up Voice API Call'].json.id }} and include Authorization header with Bearer {{ $credentials.vapiApi.token }}.
  5. In Follow-up Mailchimp Add, set List to ={{$env.MAILCHIMP_LIST_ID_FOLLOWUP}}, Email to ={{ $node['WP Form Webhook'].json.body.email }}, and Status to subscribed.
  6. Credential Required: Connect your Mailchimp credentials in Follow-up Mailchimp Add.
  7. Open Follow-up Email Dispatch and confirm the message and subject. Add Gmail credentials before use.
  8. Credential Required: Connect your Gmail credentials in Follow-up Email Dispatch.
  9. In CRM Update Unqualified, set Email to ={{ $node['WP Form Webhook'].json.body.email }} and ensure Authentication is oAuth2.
  10. Credential Required: Connect your HubSpot credentials in CRM Update Unqualified.
  11. Open Follow-up Calendar Reminder and set Start to {{ DateTime.now().plus({ days: 30, hours: 14 }).toISO() }} and End to {{ DateTime.now().plus({ days: 30, hours: 14, minutes: 30 }).toISO() }}.
  12. Credential Required: Connect your Google Calendar credentials in Follow-up Calendar Reminder.

⚠️ Common Pitfall: The unqualified email flow uses Gmail but no credentials are preconfigured. Add Gmail credentials to Follow-up Email Dispatch or the node will fail.

Step 6: Confirm Environment Variables and External Dependencies

Validate any external values used in expressions and ensure services are reachable.

  1. Set environment variables MAILCHIMP_LIST_ID_QUALIFIED and MAILCHIMP_LIST_ID_FOLLOWUP in your n8n instance.
  2. Verify your Vapi API token is available to the HTTP Header Auth credentials used by Qualified Voice API Call, Fetch Qualified Call Results, Follow-up Voice API Call, and Fetch Follow-up Call Results.
  3. Confirm the calendar in Calendar Booking is set to [YOUR_EMAIL] or replace it with your actual calendar ID.

Step 7: Test & Activate

Run a full test to confirm each branch works, then enable the workflow for production.

  1. Click Execute Workflow and submit a test payload to WP Form Webhook or submit the Form Submit Trigger form.
  2. Verify AI Lead Scoring returns either QUALIFIED or NOT QUALIFIED and routes through Qualification Branch correctly.
  3. Check for successful actions in Google Calendar, Zoom, Mailchimp, Gmail, and HubSpot depending on the branch taken.
  4. When the test succeeds, toggle the workflow to Active to run automatically on new submissions.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • HubSpot OAuth scopes can be too limited for the properties you want to update. If it fails, check the HubSpot connected app permissions and the field mappings in your “CRM Update” nodes first.
  • If you’re using Wait nodes or external call steps (like VAPI), processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Gemini prompts that are too generic produce “meh” classifications. Add your qualification rubric early (budget, fit, timeline, intent) or you will end up second-guessing the output.

Frequently Asked Questions

How long does it take to set up this Gemini HubSpot leads automation?

About an hour if your accounts and permissions are ready.

Do I need coding skills to automate Gemini lead qualification and HubSpot updates?

No. You’ll mainly connect accounts and map the lead fields. The only “technical” part is making sure your form sends name, email, and message in the expected format.

Is n8n free to use for this Gemini HubSpot leads workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Gemini API usage, plus Zoom/Calendar/API quotas and any VAPI calling costs.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Gemini HubSpot leads workflow for my qualification rules and meeting flow?

Yes, and you should. Update the prompt inside the “AI Lead Scoring” node to reflect your ICP (industry, budget, timeline, intent), then adjust the “Meeting Confirmation Dispatch” Gmail copy and the Zoom topic to match your offer. You can also swap the intake method by enabling the Webhook or the n8n Form Trigger, but keep only one active. A common tweak is adding a third “needs review” outcome for ambiguous leads so you can manually decide without losing speed.

Why is my HubSpot connection failing in this workflow?

Usually it’s expired OAuth access or missing scopes for the contact properties you’re trying to write. Reconnect HubSpot in n8n, then open the “CRM Update Qualified” or “CRM Update Unqualified” node and confirm the property mappings still exist. If you recently changed HubSpot fields, the workflow can fail even though authentication is “green.” Rate limiting can also show up during lead spikes, so check the error message in the node execution details.

How many leads can this Gemini HubSpot leads automation handle?

On self-hosted n8n there’s no hard execution limit, so capacity mainly depends on your server and the API quotas for Gmail, Zoom, Calendar, and Gemini. On n8n Cloud, your monthly executions depend on the plan you choose, and higher-volume pipelines typically move to a larger plan quickly. Practically, this workflow can handle steady daily volume without drama, but if you’re expecting bursts (like a webinar day), you’ll want to watch rate limits and increase the Wait nodes so downstream calls don’t collide.

Is this Gemini HubSpot leads automation better than using Zapier or Make?

Often, yes, because this workflow has branching logic, multiple external actions (VAPI, Calendar, Zoom, Gmail, HubSpot, Mailchimp), and some timing controls that get expensive or awkward in simpler tools. n8n also gives you a self-hosting option, which matters once you’re processing lots of leads. Zapier or Make can still be fine if you only need “form → email → create contact” and nothing else. If you’re unsure, map your required steps first, then pick the platform that won’t force compromises later. Talk to an automation expert if you’re not sure which fits.

Once this is live, your leads don’t depend on someone having a “catch up on CRM” day. The workflow handles the repetitive handoffs so your team can focus on conversations that actually close.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal