Overview
A subscriber joins your list and a five-day email funnel kicks off: welcome on Day 0, value content on Day 1, the offer introduction on Day 2, social proof on Day 3, and a last-chance email on Day 4. One email per day, and every send gets logged as a row in your Evergreen Funnel Tracker sheet.
The five days are counted from when that specific subscriber entered the funnel, not from a fixed calendar date. Two people who join a week apart each get their own clean five-day countdown.
How it runs
It's the same loop five times: send, log, wait. The Day 0 email fires immediately on entry, a JavaScript step grabs an ISO timestamp for that send, a Google Sheets step writes it to the tracker, and a Wait step holds for 24 hours before the next email goes out.
Days 1 through 4 repeat that pattern. Each day writes to its own column, so a subscriber's whole journey through the funnel ends up readable left to right in a single row. Once the Day 4 last-chance email sends and logs, an Exit step closes the run.
The steps
- Gmail (gmail_day0 → gmail_day4): One send per day. Day 0 welcomes and sets expectations, Day
1 delivers value, Day 2 introduces the offer with the Deadline Funnel link, Day 3 adds social
proof, and Day 4 closes things out on the deadline day. Each one pulls
subscriberName,subscriberEmail, anddeadlineDatefrom the input. - JavaScript (format_timestamp_day0 → day4): Grabs
new Date().toISOString()right after each send, so the tracker records the actual moment the email went out. - Google Sheets (track_day0 → track_day4): Appends a row to
Sheet1!A:Ifor every send. Nine columns: email, name, deadline date, a timestamp column for each day (0 through 4), and the run ID in the last one. These steps are markedoptional, so a Sheets hiccup never holds up the next email. - Wait (wait_1 → wait_4): Holds 24 hours between emails, computed as
startTime + 86400 * 1000. - Exit (funnel_complete): Marks the run
COMPLETEDonce all five emails are out and logged.
Design notes
The timestamp gets captured right after the send, not when the row gets written, so the tracker shows when the email actually went out rather than whenever Sheets happened to catch up.
Marking the tracking steps optional was a deliberate call. Logging matters, but it shouldn't be able to hold up the next email. If Sheets goes down for a minute, the funnel just keeps sending and you lose that one log entry, nothing more.
Each Wait is anchored to its own step's start time rather than some global clock, which is what keeps the cadence at one email a day no matter when a given subscriber actually joined.
Set up the tracker sheet
The workflow appends each send to Sheet1!A:I, so the tracker needs nine columns in exactly this
order. Easiest way to get that right is to run the
setup workflow once. It builds a correctly-structured sheet for you. Paste the
spreadsheet ID it returns into the main workflow as
variables.tracker_sheet_id.
For reference, here's what that setup workflow creates:
| Column | Header | What it holds |
|---|---|---|
| A | Subscriber Email | From subscriberEmail |
| B | Subscriber Name | From subscriberName |
| C | Deadline Date | From deadlineDate |
| D | Day 0 Sent | Welcome email timestamp |
| E | Day 1 Sent | Value content timestamp |
| F | Day 2 Sent | Offer intro timestamp |
| G | Day 3 Sent | Social proof timestamp |
| H | Day 4 Sent | Last chance timestamp |
| I | Run ID | The workflow run ID (context.id) |
A subscriber's whole run lives in one row, filling in left to right as the days pass: Day 0 lands in column D, Day 1 in E, and so on through column H.
Setup
- Connect Gmail and Google Sheets.
- Run the
setup workflow once to create the tracker sheet, then set
variables.tracker_sheet_idto the returned spreadsheet ID. - Replace
REPLACE_WITH_YOUR_SENDER_EMAILin thefromfield of all five Gmail steps with your verified sender. - Replace
REPLACE_WITH_GOOGLE_SHEETS_CONNECTION_NAMEin all five tracking steps with your Google Sheets connection name. - Fill in the email bodies. Several contain placeholders to complete: your value content on Day 1, your offer name and description on Day 2, and a real testimonial and customer name on Day 3.
- Set
variables.deadline_funnel_offer_linkto your offer URL (used in the Day 2, 3, and 4 emails). - Trigger from your opt-in form. The payload needs
subscriberEmail,subscriberName, anddeadlineDate.
When to use it
- You sell an evergreen offer and want each subscriber to move through the same timed sequence from their own entry point.
- You want a record of every send in one sheet without exporting from your email tool.
- You run a deadline-based promotion and need the offer and last-chance emails timed consistently for every lead.