Daily
Send client follow-up emails from Notion on schedule
Leads in Notion whose follow-up date is today get the right email from your Gmail, and Notion moves them to the next step.
- Runs
- Daily
- Apps
- Gmail, Notion
- AI
- Optional
- Access
- Notion read+write; Gmail gmail.send
Send this to your assistant
Create a ClickRuntime automation: every weekday at 9am, find Notion leads whose next follow-up date is today, send them the email for their current step from Gmail and move them to the next step.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A one-person marketing consultancy tracks leads and new clients in a Notion database. The follow-up plan is sensible, a thank-you after the call, a case study a week later, a check-in after two weeks, but it lives in her head. When work gets busy, follow-ups slip, and warm leads go cold.
Letting the Notion database decide who gets which email each day turns that plan into something that runs. Consultants, agencies, coaches and small sales teams use it for lead nurturing and client onboarding without paying for a separate email sequence tool.
What you get out of it
Follow-ups happen on the day you planned
Each lead's next email goes out on its follow-up date, busy week or not. Consistent follow-up is often the difference between a lead that converts and one that forgets you.
Your CRM stays up to date
After each email, the lead's step and next date are updated in Notion. The database always shows where each relationship stands.
Emails come from your own inbox
Messages are sent from your Gmail, so they look personal and replies reach you directly. There is no marketing platform branding at the bottom.
Easy to pause someone
Clearing the follow-up date or changing the step in Notion stops the emails for that person. You stay in control when a lead replies or a deal changes.
How it works
What happens, step by step
Every weekday morning, ClickRuntime asks your Notion database for leads whose follow-up date is today.
For each lead, it picks the email for their current step and fills in their name and company, with AI adding a personal line from their notes when available.
The email is sent from your Gmail.
The lead is moved to the next step in Notion with a new follow-up date, so nobody gets the same email twice.
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 Notion and share the database you want it to use
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
- Run it at a different time, more or less often, or only on weekdays
- 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 Notion steps into one automation
Under the hood
The code that runs this automation
import base64
from datetime import date, timedelta
from email.message import EmailMessage
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai
DATABASE_ID = "your-database-id"
STEPS = {"Thank you": ("Great to speak today", 7, "Case study"), "Case study": ("How Northwind cut costs", 7, "Check-in"),
"Check-in": ("Any questions?", 0, "Done")}
@on_trigger
def run(event):
nh = {"Authorization": f"Bearer {credentials.connection('notion', 'work')}", "Notion-Version": "2022-06-28"}
today = date.today().isoformat()
leads = http.post(f"https://api.notion.com/v1/databases/{DATABASE_ID}/query", headers=nh, json={"filter": {
"property": "Follow-up", "date": {"equals": today}}}).json()["results"]
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
for lead in leads:
p = lead["properties"]
name, email, step = p["Name"]["title"][0]["plain_text"], p["Email"]["email"], p["Step"]["select"]["name"]
if step not in STEPS or not email:
continue
subject, gap, nxt = STEPS[step]
text = f"Hi {name.split()[0]},\n\nFollowing up on our conversation. ({step})\n\nBest regards"
try:
notes = "".join(t["plain_text"] for t in p.get("Notes", {}).get("rich_text", []))
text = ai.generate(f"Write a short '{step}' follow-up email to {name}. Notes: {notes[:1500]}", max_output_tokens=300).text
except ai.AIError:
pass
msg = EmailMessage()
msg["To"], msg["Subject"] = email, subject
msg.set_content(text)
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()
follow = {"date": {"start": (date.today() + timedelta(days=gap)).isoformat()}} if gap else {"date": None}
http.patch(f"https://api.notion.com/v1/pages/{lead['id']}", headers=nh, json={"properties": {
"Step": {"select": {"name": nxt}}, "Follow-up": follow}})
return {"leads": len(leads)}
FAQ
Common questions
Where are the email texts kept?
What happens when a lead replies?
Can the emails be tailored to each lead?
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
Get a morning priorities email from Notion and Gmail
Every morning at 7 you get one email that combines your open Notion tasks and important unread Gmail, put in order by AI.
See how it worksTrack websites and subreddits in Notion with a daily email
New posts and page changes from the sites and subreddits you watch are summarised into Notion, with highlights emailed to you.
See how it worksSave labelled Gmail emails to Notion
Any email you label Notion in Gmail is saved as a page in your Notion database with its subject, sender and text.
See how it worksKeep exploring
Set up “Send client follow-up emails from Notion on schedule” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.