You’ve got leads coming in from your landing page, but following up manually is a time sink. You know you should send a sequence of emails, but hiring a developer to build it feels overkill. Good news: you can automate the whole thing with a script and a free email service. Here’s how.
First, pick your tools. You’ll need a way to capture leads (a form on your site), a place to store them (a Google Sheet works fine), and an email service that supports API sending (Mailgun, SendGrid, or even Gmail with App Passwords). The script will pull new rows from your sheet and send personalized emails on a schedule.
Start by setting up your lead capture form. If you’re using a static site, a simple HTML form that POSTs to a Google Apps Script endpoint is enough. That script appends the lead’s email, name, and timestamp to your sheet. This takes about 10 minutes to set up and costs nothing.
Next, grab the follow-up automation script from Kintly. It’s a Python script that reads your sheet, checks which leads haven’t received a follow-up yet, and sends the next email in your sequence. You define the sequence in a YAML file—subject lines, body text, and delay days. No coding, just editing a text file.
The script uses a ‘last_contacted’ column to track progress. When it sends an email, it updates that column with the current date. On the next run, it skips leads that were contacted within the delay period. This prevents duplicate sends and keeps your sequence on track.
To make it run automatically, set up a cron job (on your server) or a scheduled task (on your computer) to execute the script once a day. If you don’t have a server, you can use a free service like PythonAnywhere or GitHub Actions to run it on a schedule. GitHub Actions is surprisingly easy: create a workflow file that runs the script daily, and store your credentials as secrets.
Personalization matters. The script supports placeholders like {{first_name}} and {{company}}, which pull from your sheet columns. If you don’t have a company column, you can add one or fall back to a generic greeting. The goal is to make the email feel human, not robotic.
What about replies? The script doesn’t handle incoming emails, but you can set up a simple filter in your inbox to label replies and pause the sequence for that lead. Or you can use a tool like Zapier to update the sheet status when a reply is detected. Keep it simple—the core automation is the sending part.
Test with a small batch first. Add your own email to the sheet and run the script manually. Check that the email arrives, the placeholders are filled, and the sheet updates correctly. Once it works, scale up.
A common mistake is sending too many emails too fast. Start with a 3-email sequence over 10 days. Measure open and reply rates. If people aren’t engaging, tweak the copy before adding more emails. Automation amplifies your message—make sure it’s a good one.
Another gotcha: email deliverability. Use a reputable sender and avoid spammy words. Keep your emails plain-text or simple HTML. Don’t include attachments or too many links. The script sends via API, which helps with deliverability compared to SMTP.
Once it’s running, you’ll wonder why you ever did it manually. The best part? You can set it and forget it, checking in weekly to review performance. That’s the power of automation: it gives you back your time without sacrificing personalization.
