Templates

5-Day Evergreen Email Funnel

Someone joins your list and this workflow runs a five-day sequence, welcome, value, offer intro, social proof, and last chance, sending one email per day and logging each send to your Evergreen Funnel Tracker in Google Sheets.

10 minutes setupUpdated 2026-05-21

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, and deadlineDate from 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:I for 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 marked optional, 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 COMPLETED once 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:

ColumnHeaderWhat it holds
ASubscriber EmailFrom subscriberEmail
BSubscriber NameFrom subscriberName
CDeadline DateFrom deadlineDate
DDay 0 SentWelcome email timestamp
EDay 1 SentValue content timestamp
FDay 2 SentOffer intro timestamp
GDay 3 SentSocial proof timestamp
HDay 4 SentLast chance timestamp
IRun IDThe 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

  1. Connect Gmail and Google Sheets.
  2. Run the setup workflow once to create the tracker sheet, then set variables.tracker_sheet_id to the returned spreadsheet ID.
  3. Replace REPLACE_WITH_YOUR_SENDER_EMAIL in the from field of all five Gmail steps with your verified sender.
  4. Replace REPLACE_WITH_GOOGLE_SHEETS_CONNECTION_NAME in all five tracking steps with your Google Sheets connection name.
  5. 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.
  6. Set variables.deadline_funnel_offer_link to your offer URL (used in the Day 2, 3, and 4 emails).
  7. Trigger from your opt-in form. The payload needs subscriberEmail, subscriberName, and deadlineDate.

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.

Adapt this template in Unmeshed

Start from the sequence above, then connect your APIs, approvals, decision logic, and notifications as durable workflow steps.