Every 15 minutes
Score new Zoho leads and email me a briefing
Every new lead in Zoho CRM is scored, the score is saved on the lead, and you get a short briefing email on the ones worth calling.
- Runs
- Every 15 minutes
- Apps
- Gmail, Zoho CRM
- AI
- Yes, uses the built-in AI allowance
- Access
- Zoho read+write; gmail.send
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, check Zoho CRM for new leads. Score each one for fit, save the score and reason on the lead, and email me a briefing on any scoring 7 or above.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A B2B services firm gets dozens of leads a week from webinars, its website and partners. Most are students or tiny businesses; a few are serious buyers. The founder skims them in the evening and often misses the good ones until a day later.
Each new lead is now scored for fit as it arrives, with the reason saved on the lead in Zoho. The strong ones arrive as a short briefing email with what the company does and why they might buy, ready for a same-day call.
What you get out of it
Call the best leads first
A clear score means the right people get a call while they're still interested.
Context before the call
The briefing explains the company and likely need, so the first conversation is useful.
Scores live in the CRM
Every lead carries its score and reason, so the whole team can sort and filter by them.
Your criteria, written down
You describe your ideal customer once and every lead is judged against it the same way.
How it works
What happens, step by step
Every 30 minutes, ClickRuntime checks Zoho CRM for leads it hasn't scored yet.
AI scores each one against your ideal customer and writes a one-line reason.
The score and reason are saved on the lead in Zoho, which also marks it as done.
You get a briefing email for each lead that scores high.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Zoho CRM
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Zoho CRM steps into one automation
Under the hood
The code that runs this automation
import base64
from email.message import EmailMessage
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai, state, report_fetched
ZOHO = "https://www.zohoapis.com/crm/v6"
IDEAL = "Logistics or retail companies with 50-500 staff in the UK or EU."
@on_trigger
def run(event):
zh = {"Authorization": f"Zoho-oauthtoken {credentials.connection('zoho', 'work')}"}
leads = http.get(f"{ZOHO}/Leads", headers=zh, params={"fields": "Company,Designation,Email,Description,Fit_Score",
"sort_by": "Created_Time", "sort_order": "desc"}).json().get("data", [])
new = [l for l in leads if l.get("Fit_Score") is None]
report_fetched(len(new))
if not new:
return {"summary": "No new leads"}
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
for l in new:
r = ai.generate(f"Ideal customer: {IDEAL}\nLead: {l}", max_output_tokens=200,
json_schema={"type": "object", "properties": {"score": {"type": "integer"}, "reason": {"type": "string"},
"briefing": {"type": "string"}}}).json
http.put(f"{ZOHO}/Leads", headers=zh, json={"data": [{"id": l["id"], "Fit_Score": r["score"], "Fit_Reason": r["reason"]}]})
if r["score"] >= 7:
msg = EmailMessage()
msg["To"], msg["Subject"] = "me", f"Hot lead: {l.get('Company')} ({r['score']}/10)"
msg.set_content(r["briefing"])
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()
return {"scored": len(new)}FAQ
Common questions
What is the score based on?
Which Zoho fields does it update?
Can I get a battle card when a competitor is mentioned?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Spot upsell chances in support tickets
Support tickets that hint at a bigger need are flagged, logged as a note and task in Zoho CRM, and emailed to sales.
See how it worksDraft follow-ups for stalled deals and new leads
Each morning, stalled deals and untouched new leads get a personal follow-up drafted in your Gmail, with a note added in Zoho.
See how it worksSave each order in Zoho CRM and email a confirmation
Every new order or inquiry is saved as a contact and deal in Zoho CRM, and the customer gets a confirmation email from Gmail.
See how it worksKeep exploring
Set up “Score new Zoho leads and email me a briefing” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.