Zoho CRM + Gmail: qualified leads sent to sales fast
Your CRM fills up fast. But most of those “new leads” are not ready for sales, so reps either chase the wrong people or ignore the inbox entirely. Zoho lead scoring automation fixes that bottleneck by qualifying first, then alerting sales only when a lead is worth the effort.
Sales managers feel it as a pipeline quality problem. Marketing ops sees it as broken routing. Agency teams running lead gen for clients get stuck in the middle, cleaning data and answering “did anyone follow up?”
This workflow checks Zoho CRM on a schedule, enriches each new lead with firmographic data, uses AI to score it, updates the lead status, and sends a Gmail notification only for qualified leads. You’ll see what it does, what you need, and how it behaves in the real world.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Zoho CRM + Gmail: qualified leads sent to sales fast
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compute Last Check"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code in JavaScript"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Enrich Lead (PDL)"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF - Qualified Lead", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zoho.svg' width='40' height='40' /></div><br/>Update Lead status - Qualified"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zoho.svg' width='40' height='40' /></div><br/>Update Lead status - NOT qua.."]
n11@{ icon: "mdi:message-outline", form: "rounded", label: "send mail for verified lead", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zoho.svg' width='40' height='40' /></div><br/>Get many leads"]
n2 --> n3
n12 --> n2
n5 --> n8
n0 --> n1
n0 --> n12
n4 --> n5
n3 --> n4
n1 --> n2
n8 --> n9
n8 --> n10
n6 -.-> n5
n7 -.-> n5
n9 --> n11
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n5,n7 ai
class n6 aiModel
class n8 decision
class n4 api
class n1,n3 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n9,n10,n12 customIcon
Why This Matters: Sales follow-up is wasted on unqualified leads
In a busy inbox, “new lead” stops meaning “good lead.” Someone fills a form, a salesperson gets notified, and now you have a choice: respond fast and risk spending time on a poor fit, or respond slower and lose the ones who were ready to buy. The painful part is the repetition. You review the same missing details (no website, generic email, unclear company), open three tabs to research, then still guess at intent. Multiply that by a handful of inbound leads a day and you’re burning hours on work that doesn’t move revenue forward.
The friction compounds. Here’s where most teams get stuck.
- Reps get notified about every lead, so alerts become background noise and response time gets worse.
- Manual research takes maybe 10 minutes per lead, and it’s easy to miss key context like company size or industry.
- Lead statuses drift because nobody enjoys updating CRM fields after a long day of calls.
- Without consistent scoring criteria, “qualified” means something different to every person on the team.
What You’ll Build: AI lead qualification that updates Zoho and emails sales
This automation runs quietly in the background and turns raw Zoho leads into a clean, prioritized list. Every 5 minutes, it checks Zoho CRM for newly created leads, then pulls out a key detail (the company website) to enrich the record using People Data Labs. Once the lead has better context like industry and company size, the workflow sends those details to an AI scoring chain (Google Gemini) that returns a structured result: a short summary, a score, and the factors behind it. Finally, it updates the lead status in Zoho CRM as Qualified or Not Qualified, and only then sends a Gmail notification to your sales inbox when the score clears your threshold.
The flow starts with a schedule trigger and a “last run” timestamp so you only process new leads. Enrichment adds the missing context your team normally hunts down. Scoring makes the decision consistent, and the CRM update plus Gmail alert makes it actionable.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you get 15 new inbound leads on a typical weekday. If a rep spends about 10 minutes researching each one, that’s roughly 2.5 hours of manual triage before anyone even follows up. With this workflow, the only “hands-on” time is reviewing the qualified notifications, which might be 3–5 leads, plus the workflow’s background run time every 5 minutes. For most teams, that’s about 2 hours back per day and a noticeably cleaner pipeline.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Zoho CRM to fetch and update lead records.
- Gmail to notify sales about qualified leads.
- People Data Labs API key (get it from your PDL dashboard).
- Google Gemini API credentials (get them from Google AI Studio / Google Cloud).
Skill level: Intermediate. You’ll connect OAuth accounts, add API keys, and adjust one scoring threshold confidently.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A scheduled check runs every 5 minutes. The workflow starts on a timer, then calculates a “last run” window so it can focus on leads created since the previous check.
Zoho CRM leads are retrieved and narrowed to new ones. It pulls lead records, merges them with the timestamp stream, and filters by Created_Time so you’re not rescoring old data over and over.
Enrichment and scoring happen in the middle. The workflow extracts the website field, calls People Data Labs to enrich the company, then sends the enriched profile to Google Gemini for a structured score plus a short rationale you can store or reference later.
Zoho is updated and Gmail only fires for the good ones. If the score clears your threshold (the default logic is score > 80), the lead is marked Qualified and a Gmail message goes to your chosen sales recipient. If not, the lead is still updated, just without the noise of a notification.
You can easily modify the score threshold to match your sales capacity, or change the email recipient to route by territory or product line. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
This workflow starts on a timed schedule and immediately branches to prepare time context and fetch CRM leads.
- Add and open Scheduled Poll Trigger.
- Set the schedule interval inside Rule to match your desired poll frequency (the default aligns with the 10‑minute lookback in Calculate Last Run).
- Confirm the parallel execution: Scheduled Poll Trigger outputs to both Calculate Last Run and Retrieve CRM Leads in parallel.
Tip: Keep the schedule interval aligned with Calculate Last Run (the code uses a 10‑minute lookback) to avoid missed or duplicated lead checks.
Step 2: Connect Zoho CRM
Zoho CRM is used to retrieve leads and update their qualification status based on the AI score.
- Open Retrieve CRM Leads and set Resource to
lead, Operation togetAll, and enable Return All. - Credential Required: Connect your zohoOAuth2Api credentials in Retrieve CRM Leads.
- Open Set Lead Status Qualified and verify Lead ID is set to
{{ $('Retrieve CRM Leads').item.json.id }}, then set Lead_Status to"Qualified". - Credential Required: Connect your zohoOAuth2Api credentials in Set Lead Status Qualified.
- Open Set Lead Status Unqualified and set Lead ID to
{{ $('Retrieve CRM Leads').item.json.data[0].id }}, then set Lead_Status to"Not Qualified". - Credential Required: Connect your zohoOAuth2Api credentials in Set Lead Status Unqualified.
⚠️ Common Pitfall: The lead ID fields reference different JSON paths. Make sure your Zoho response structure matches id or data[0].id to prevent update failures.
Step 3: Prepare and Enrich Lead Data
This phase merges the scheduled context and lead data, extracts the website field, and enriches the company profile.
- Open Calculate Last Run and keep Mode set to
runOnceForEachItemwith the provided JavaScript to outputlastCheck. - Open Combine Streams and set Mode to
combinewith Combination Mode set tomergeByPosition. - Open Extract Website Field and keep the JavaScript to map
Websiteintowebsiteusing$('Retrieve CRM Leads').item.json.Website. - Open Enrich Company Data and set URL to
https://api.peopledatalabs.com/v5/company/enrich?website={{ $json.website }}. - In Enrich Company Data, set the header x-api-key value to your People Data Labs API key (replace
[CONFIGURE_YOUR_API_KEY]).
⚠️ Common Pitfall: Enrich Company Data does not use n8n credentials—if the x-api-key header is not set, the HTTP request will fail.
Step 4: Set Up the AI Scoring Chain
The AI layer scores each enriched company and returns structured JSON used for routing.
- Open LLM Scoring Chain and set Text to the provided prompt, including the expression
{{JSON.stringify($json, null, 2)}}. - Ensure Has Output Parser is enabled in LLM Scoring Chain.
- Open Gemini Chat Model and connect it as the language model to LLM Scoring Chain.
- Credential Required: Connect your googlePalmApi credentials in Gemini Chat Model.
- Review Structured Result Parser and keep the JSON schema example for the expected output structure.
Tip: Structured Result Parser is a sub-node—credentials must be added to the parent node Gemini Chat Model, not to the parser itself.
Step 5: Configure Qualification Routing and Email Actions
Qualified leads are updated in Zoho and emailed to your team, while unqualified leads are marked accordingly.
- Open Qualified Lead Check and set the condition to compare
{{ $json.output.score }}with a threshold of80using a Number > (gt) operator. - Verify the True branch from Qualified Lead Check goes to Set Lead Status Qualified, and the False branch goes to Set Lead Status Unqualified.
- Open Dispatch Qualified Lead Email and set Subject to
New Qualified Lead:{{ $('Enrich Company Data').item.json.name }}. - Set Message to the provided template, keeping the expressions for name, company, email, score, and summary intact.
- Credential Required: Connect your gmailOAuth2 credentials in Dispatch Qualified Lead Email.
Tip: Leave Send To in Dispatch Qualified Lead Email blank until you decide the notification recipient(s), then add a valid email address to avoid silent failures.
Step 6: Test and Activate Your Workflow
Run a manual test to verify data flow, AI scoring, and CRM updates before enabling the schedule.
- Click Execute Workflow and verify that Retrieve CRM Leads returns records.
- Confirm Enrich Company Data returns JSON data, and LLM Scoring Chain outputs
summary,score, andfactors. - Check that Qualified Lead Check routes correctly to Set Lead Status Qualified or Set Lead Status Unqualified.
- If a lead qualifies, confirm Dispatch Qualified Lead Email sends successfully and the subject includes the company name.
- Toggle the workflow to Active to enable scheduled runs once testing succeeds.
Troubleshooting Tips
- Zoho CRM credentials can expire or need specific permissions. If things break, check the Zoho connection in n8n’s Credentials first and confirm the account can edit Leads.
- If you’re using enrichment and AI calls, processing times vary. Bump up wait time (or reduce batch size) if downstream nodes fail because an API responds slowly or returns empty data.
- Gemini prompts that are too generic can produce vague scoring. Add your ICP rules (industry, employee count, geo, job titles) into the scoring prompt early, or you will be second-guessing results forever.
Quick Answers
About 30 minutes if you already have the API keys and OAuth access ready.
No. You’ll mainly connect accounts and edit a few fields like the score threshold and the recipient email.
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 People Data Labs enrichment costs and Google Gemini API usage.
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.
Yes, and you should. Most teams start by changing the Qualified Lead Check threshold (score > 80) to match their capacity. You can also swap People Data Labs for another enrichment provider by editing the Enrich Company Data HTTP Request node, and you can rewrite the Gemini prompt in the LLM scoring chain to reflect your ICP (industries, geo, employee count, job titles). If you want an audit trail, add a Google Sheets or Airtable logging step right after the structured parser.
Usually it’s expired OAuth credentials or missing scopes. Reconnect the Zoho CRM credential in n8n, then confirm the same Zoho user can read and update Leads. If updates fail, it’s often a leadId mapping issue, so check that the workflow is passing the Zoho Lead ID (not an email) into the update node. Also confirm the lead fields exist with the expected names (Company, Email, First_Name, Last_Name, Created_Time, Lead_Status).
On n8n Cloud’s Starter plan you can usually handle a few thousand executions per month, and self-hosting removes the hard execution cap (it mostly depends on your server and the API limits of Zoho, PDL, and Gemini). This specific workflow runs every 5 minutes, so you’re looking at roughly 8,000 scheduled checks a month plus one execution path per lead processed. If you expect heavy volume, process leads in small batches and watch for rate limits on enrichment and AI calls.
Often, yes. The AI scoring plus structured parsing tends to require more control than a simple two-step Zap, and n8n handles branching logic (qualified vs unqualified) cleanly without turning it into a pricing puzzle. You also get the option to self-host, which is a big deal when the workflow runs every 5 minutes. Zapier or Make can still be fine if your process is lightweight and you want the quickest possible setup. If you’re unsure, Talk to an automation expert and map it to your lead volume and routing needs.
Once this is running, your team stops treating every lead like an emergency. The workflow qualifies, updates Zoho, and pings sales only when it’s time to move.
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.