The moment it happens
Get an email only for strong form leads
When someone fills in your form, their email is checked and enriched with Hunter, and you get an email only if they look like a real business lead.
- Runs
- The moment it happens
- Apps
- Gmail, Hunter.io
- AI
- Not needed
- Access
- Hunter key; gmail.send
Send this to your assistant
Create a ClickRuntime automation: when my form sends a new lead to this link, verify the email with Hunter, look up their company, and if it's a valid business address email me the lead details from my Gmail.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A website form attracts students, job seekers, competitors and spam alongside real buyers. When every submission lands in your inbox looking the same, the good ones wait while you sort through the rest.
Founders, consultants and small sales teams use it to hear about real business leads right away, with the company already looked up, and to let everything else wait.
What you get out of it
Only real leads interrupt you
Personal, disposable and invalid addresses are filtered out before you see them.
Company context included
The email shows the person's role, company, size and industry where Hunter knows them.
Faster first replies
Getting a strong lead in front of you within a minute makes a same-hour reply easy.
Each lead handled once
Repeat deliveries of the same submission are ignored, so you never get a lead twice.
How it works
What happens, step by step
When someone submits your form, the lead arrives at your automation's link straight away.
Hunter checks the email address and looks up the person and their company.
Leads with a valid business address pass; personal, invalid or repeat submissions are skipped.
You get an email from your Gmail with the lead's details and company information.
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 Hunter.io
- Paste your automation's link into the other app's webhook settings
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
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Hunter.io steps into one automation
Under the hood
The code that runs this automation
import base64
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, http, state
ME = "me@example.com"
def send(to, subject, body):
raw = f"To: {to}\r\nSubject: {subject}\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n{body}"
build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).users() \
.messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(raw.encode()).decode()}).execute()
@on_event
def handle(event):
email = str((event.json or {}).get("email", "")).strip()
if not email or state.get(f"seen:{email}"):
return {"skipped": True}
key = credentials.secret("HUNTER_API_KEY")
check = http.get("https://api.hunter.io/v2/email-verifier", params={"email": email, "api_key": key}).json().get("data") or {}
state.set(f"seen:{email}", True)
if check.get("status") != "valid" or check.get("webmail"):
return {"sent": False, "status": check.get("status")}
info = http.get("https://api.hunter.io/v2/combined/find", params={"email": email, "api_key": key}).json().get("data") or {}
person, company = info.get("person") or {}, info.get("company") or {}
send(ME, f"Strong lead: {company.get('name') or email}",
f"{(person.get('name') or {}).get('fullName', '')} · {(person.get('employment') or {}).get('title', '')}\n{email}\n"
f"{company.get('name', '')} · {company.get('metrics', {}).get('employees', '?')} employees · "
f"{company.get('category', {}).get('industry', '')}\n\nMessage: {(event.json or {}).get('message', '')}")
return {"sent": True}FAQ
Common questions
What counts as a business email?
What happens to leads that don't pass?
Who receives the alert?
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
Send your outreach only to verified addresses
Before each day's outreach goes out, every address is checked with Hunter and only the valid ones are emailed from your Gmail.
See how it worksFind prospects' emails and send a personal intro each day
Each day the next people on your list get their email found with Hunter and a short, personal intro sent from your Gmail, up to a daily limit.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Get an email only for strong form leads” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
