This content originally appeared on DEV Community and was authored by 0x7b-shop
Fun Weird Things:
Sick of paying $19/month just to send a follow-up email after someone fills out a form? Here’s how I replaced an entire chunk of my CRM and automation stack using Python + a Gmail API + a Google Sheets trigger.
This article walks you through an end-to-end Python automation for solo founders and devs looking to cut SaaS costs and own their stack.
What You’ll Build
A Python script that:
- Monitors a Google Sheet for new leads (like Typeform or Tally exports)
- Sends a customized follow-up email via Gmail
- Logs sent status + timestamps
- Can be run via cron, PythonAnywhere, or a simple server
Prerequisites
- Google Sheet with lead data
- Gmail account with API access (OAuth or App Password)
-
smtplib,gspread,oauth2clientinstalled - Basic knowledge of Python
Step 1: Connect to Google Sheets
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds",
"https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('creds.json', scope)
client = gspread.authorize(creds)
sheet = client.open("Leads").sheet1
data = sheet.get_all_records()
Step 2: Send Email via Gmail
import smtplib
from email.mime.text import MIMEText
def send_email(to_email, name):
subject = f"Nice to meet you, {name}!"
body = f"Hey {name}, just following up on your interest in our product..."
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = "you@example.com"
msg['To'] = to_email
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login("you@example.com", "your_app_password")
server.send_message(msg)
Step 3: Full Automation Loop
for i, row in enumerate(data):
if row["Followed Up"] == "No":
send_email(row["Email"], row["Name"])
sheet.update_cell(i+2, 3, "Yes") # Assuming column 3 is 'Followed Up'
Optional: Run Daily with PythonAnywhere
- Free tier supports daily scheduled tasks
- Paste your script and run via Task Scheduler
- Try PythonAnywhere
What You’re Replacing
- No-code tools like Zapier, Make, or Pabbly
- Lightweight CRM automations (e.g., Pipedrive drip emails)
- Basic onboarding emails from HelpScout, Intercom
Takeaways for Indie Hackers
- You don’t need a SaaS for everything — Python can cover 80% of basic automation needs
- Own your stack, control your data, reduce costs
- Great for MVPs, solopreneur systems, or one-off product launches
Bonus Resources
- Google Sheets + Python (gspread)
- Send Email with Gmail + Python
- PythonAnywhere Scheduler
- Gmail App Password Setup
Want more no-SaaS Python automations?
Drop a comment with the tool you’d love to replace next (Calendly, Airtable, Notion?) and I’ll write the next one.
This content originally appeared on DEV Community and was authored by 0x7b-shop
Build, Rank & Package: Start a Local Website Business for $0 – Only 20 Left!
$1000+ Page Plan: Rank a Simple Website for Local KeywordsSEO isn’t dead. Bad SEO is. Learn how to rank for the only keywords that matter—local ones.
Local Biz Toolkit: Make $1K/Month Selling a “Business Starter Pack”Don’t just sell a site. Sell the transformation — logo, content, setup, everything they need.Why this works:Offline businesses don’t need fancy tech.They need one person who can get them online, visible, and looking legit. That person is you. This bundle gives you the website, the ranking strategy, and the starter pack to offer a complete package clients will happily pay for.No ads. No audience. No budget.Just one weekend and this system.If I had to start a service business from scratch with zero cash?This is what I’d use.Let’s build something real.Let’s turn your laptop into a local business launcher.