Skip to content

Follow-Up Zap (356080312)

⚠️ Deprecated — March 26, 2026. This Zap has been replaced by a Python cron running on Mac Mini. See followup-cron.md for the current implementation. This document is kept for reference only.

Name: Inbound Lead Follow-Up Sequence for Creators Agency
Status: Replaced by Python cron (March 26, 2026)
Schedule: Was Mon/Wed/Fri at 9am CT via Zapier


What It Does

Sends follow-up emails to brands that haven't replied to our initial auto-response. Four follow-ups maximum, at Day 3, 7, 11, and 14 after the original inbound email.

Stops automatically when:

  • Responded = true (brand replied or booked a call)
  • Follow Up Count >= 4 (all 4 follow-ups sent)
  • Reply Sent is false (initial reply never sent — skip these)

Steps

Step 1 — Schedule Trigger

Fires Mon/Wed/Fri at 9am CT via Schedule by Zapier.

Step 2 — Airtable: Get All Records

Fetches all records from the Inbound Messages table. No pre-filter at this stage — the filter happens in Step 3.

Returns all records as line items for the subsequent steps to iterate over.

Step 3 — Filter: Early exit conditions

Only continues for records where ALL of these are true:

  • Reply Sent = checked — initial auto-response was sent
  • Follow Up Count < 4 — fewer than 4 follow-ups sent
  • Responded = false (unchecked) — brand hasn't replied or booked

This is the gate that stops follow-ups for engaged or exhausted leads.

Step 4 — Formatter: Date Compare

Calculates the number of days between routed_at (when the Airtable record was created) and the current time. This gives us "days since first contact" used by the Paths step to determine which follow-up to send.

  • Start date: routed_at field from Step 2 (Airtable createdTime — auto-set on record creation)
  • End date: Current time

Step 5 — Paths: Route by Follow-Up Number

Four paths based on Follow Up Count and days elapsed:

PathConditionFollow-Up #
Path AFollow Up Count = 0 AND 3+ days since routed_atDay 3
Path BFollow Up Count = 1 AND 7+ days since routed_atDay 7
Path CFollow Up Count = 2 AND 11+ days since routed_atDay 11
Path DFollow Up Count = 3 AND 14+ days since routed_atDay 14

If no path matches (e.g., it's been 2 days and this is the first follow-up), the record is skipped for this run and checked again on the next scheduled run.

Each path then:

  1. Anthropic (Claude): Drafts the follow-up email with a different angle per follow-up number
  2. Gmail: Sends the reply in-thread from intake@creatorsagency.co as the assigned agent
  3. Airtable Update: Increments Follow Up Count by 1, updates Last Contact Date, sets In Follow-Up = true, saves Last Follow Up Body

Follow-Up Voice & Angle

Each follow-up takes a different angle so they don't feel like copy-paste repetitions:

  • Day 3: Short nudge, reference the original outreach
  • Day 7: Different angle — creator fit / specific opportunity
  • Day 11: Soft urgency — Q2 slots filling, timing note
  • Day 14: Final follow-up — keep the door open without burning the bridge

All follow-ups are under 120 words, no em dashes, sent in-thread (brand sees the full conversation).


Timing Notes

  • Calendar days, not business days: Day 3 means exactly 3 calendar days after routed_at. If a brand emails on Friday, Day 3 is Monday — but there's no business-day awareness. Weekends count.
  • routed_at field: This is an Airtable createdTime field — it auto-populates when the Main Inbound Zap creates the record. It's not a field anyone manually writes.
  • Run frequency: The Zap runs 3x/week. A record at Day 3 today will be caught on the next Mon, Wed, or Fri run. There's ~1-2 day variance in actual send timing.

What Gets Written Back to Airtable

After each follow-up sent:

  • Follow Up Count → incremented by 1
  • Last Contact Date → today's date
  • In Follow-Up → true
  • Last Follow Up Body → the email Claude generated

The Responded field is NOT written by this Zap — it's written by the two companion Zaps when a brand replies or books a call.