Free resource · The Follow-Up Leak Map
Before you buy more leads, look at the records you already have.
Follow-up records get scattered: old spreadsheets, CRM notes, quiet inbox threads, quotes that never got a second touch, and the names that live only in your head. Not every one is a customer waiting to return— but some may still deserve a thoughtful look, and right now nobody is making that call. The complete method is on this page, free. A spreadsheet is enough, and you approve every message before it goes anywhere.
no signup · no pricing on this page · examples are synthetic and labeled
- spreadsheets
- crm notes
- inbox
- quotes
- memory
- Sampast customerFound
- Priyainquiry went quietDrafted
- Jordanopen quoteFound
Drafted follow-up · synthetic sample
Hi Jordan, following up on the quote you asked about. Happy to walk you through it this week. Does Thursday or Friday work better?
HELD: waiting for a person’s approval before anything sends
This is the rule, not a live demo — nothing on this page sends anything.
Drafting is the only job AI gets — a person decides at HELD.
The map at a glance
- Build one list — pull every scattered record into a single sheet — one row each, from all five places.
- Clean up duplicates — by hand: merge the same person into one row, and never merge records you are unsure about.
- Add last touch + segment — when you last spoke, the relationship, and whether a follow-up would be welcome. Skip the no's.
- Rank what to work first — order by your own judgment — age, warmth, an open thread, permission. Not a prediction of who buys.
- Diagnose the leak — count and inspect your own list. A descriptive picture of where records pile up — not a revenue estimate.
- Draft carefully — one short message per segment, from real context only. AI may help draft; it never decides or sends.
- Hold before it sends — every message rests at HELD until a person approves, edits, or rejects it. Nothing sends itself.
- Take one first action — work a small, clearly welcome handful by hand. A complete first pass beats a perfect whole list.
The full map — every step
The complete method, free, right here. Nothing to sign up for, nothing to buy.
Follow-up records can end up split across spreadsheets, CRM notes, inbox threads, old quotes, and an owner’s memory. When that happens, appropriate follow-ups may be missed. This guide helps you identify and organize records that deserve human review. It does not assume every record should be contacted or predict what any follow-up will produce.
It walks you through finding that leak and organizing it, with one rule underneath everything: nothing gets sent until you approve it.
What you need:a spreadsheet — Google Sheets, Excel, or Airtable all work. Set aside a focused block for the first pass; a larger or messier list may take longer.
What you don’t need: new software, a CRM migration, or any AI tool. You can do the whole thing by hand.
The five places your follow-ups leak
Before you spend another dollar on new leads, look in the five places you already have. Each one becomes rows in the single list you build in Step 1.
- Old spreadsheets— customer lists, job logs, quote trackers, that one sheet from two years ago.
- CRM notes— the notes nobody has opened in months, including contacts that were entered and never worked again.
- Quiet inbox threads— conversations that just went silent. Search terms like
quote,estimate,following up, andthanks for reaching outcan help surface relevant threads. - Quotes, jobs, or inquiries that never received another touch— someone asked, you replied once, and it ended there.
- Names or opportunities living only in your head— ones you remember but have not recorded. Write them down so you can assess whether any appropriate next action exists.
A follow-up you never wrote down is a follow-up you can’t act on. This gets all five into one place so you can finally see them.
Step 1 — Build one working list
Create a new spreadsheet and add these columns. One row per person or opportunity. Go through all five sources and add everyone you find — don’t clean, sort, or judge yet. Collection and judgment are separate jobs.
| Column | What goes in it |
|---|---|
| name | contact's name |
| company | optional |
| contact | email or phone — whatever you have |
| source | spreadsheet / CRM / inbox / quote or job / memory |
| relationship | past_customer / quoted_no_close / inquired_only |
| last_touch | date of the last real interaction — see Step 3 |
| welcome? | yes / probably / no |
| priority | high / medium / low / do-not-contact — set in Step 4 |
| draft | the drafted message (Step 6) |
| status | found / drafted / held / approved / sent / replied / closed |
| owner_decision | approve / edit / reject — filled by a human, always |
| notes | context, and what a reply turned into |
Paste-ready header row (tab it into cell A1):
name company contact source relationship last_touch welcome? priority draft status owner_decision notesWorks identically in Excel, Google Sheets, or Airtable. If you use Airtable: one table, two views — Held for review and Approved, ready to send.
Blank vs. assumed — keep them honest.If you don’t know a value, write unknown— don’t invent one. If you’re estimating (a rough date, a best-guess spelling), mark it as an estimate (e.g. ~2024 or est.) so you can tell a real fact from a guess later.
Done when:every name you could find, from all five sources, is in one sheet — however messy.
Step 2 — Clean up duplicates (do this by hand)
A person may appear in more than one source under different spellings. Merge them so each person is exactly one row. This is a judgment task, not a find-and-delete:
- Compare email and phone first.A matching email or phone is a strong indicator, but confirm it against name, company, and context — shared inboxes, household numbers, and recycled details can create false matches.
- When identifiers differ or are missing, look at name, company, and context. “J. Smith at Acme” and “John Smith, Acme Ltd” with the same history may be one person; verify before merging. Two different Sarahs are not.
- Merge the obvious duplicates into one row. Keep the most current contact details, the most recent
last_touch, and the useful notes from both. - Flag anything ambiguous for a second look (e.g.
notes: possible dup?) rather than force-merging. - Never merge records you’re unsure about.A wrong merge mixes two people’s history and produces a follow-up that references the wrong job.
Done when: each person appears once, ambiguous matches are flagged rather than force-merged, and no history was thrown away.
Step 3 — Add last touch and segment
Now add judgment to each row.
last_touch— the last meaningful interaction. Use the real date if you know it; label an estimate as an estimate; writeunknownif you genuinely don’t know.relationship—past_customer(you did work for them),quoted_no_close(you quoted, they never closed), orinquired_only(they asked, it went quiet).welcome?— would a follow-up reasonably be welcome?yes/probably/no.- Permission / do-not-contact. If someone opted out, asked not to be contacted, or you only have their details from a purchased or scraped list, mark them and leave them out. Only reach out where you have both permission and a real relationship.
Rule: skip the no’s.If you’re unsure whether someone wants to hear from you, they probably don’t. Mark them and leave them out.
Done when: every row has last_touch, relationship, and welcome? filled, and anyone off-limits is clearly marked.
Step 4 — Rank what to work first
You can’t work the whole list at once, so put it in a sensible order. Set each row’s priorityusing your own judgment — no formula, no score:
- Age of last touch— how long they’ve been quiet.
- Warmth and relevance— how strong and recent the relationship is.
- A known open quote, job, or inquiry— something concrete already on the table.
- Permission and welcome— you’re allowed to contact them and a follow-up would land well.
- Owner judgment— cases where only you can decide whether it’s appropriate.
Turn that into a simple ordering: high (work first), medium, low, and do-not-contact(the no’s and off-limits rows, which you leave alone). This is a where to start ordering based on your judgment. It is nota prediction of who will buy — the guide makes no claim about conversion.
Done when: every workable row has a priority, and the do-not-contact rows are set aside.
Step 5 — Diagnose the leak
Before you write a single message, step back and look at the list you’ve built. Count and inspect:
- How many records made the list in total?
- How many are in each
relationshipgroup? - How many have an
unknownlast touch — people you’d genuinely lost track of? - Where is the biggest cluster sitting? That is a useful place to inspect first.
That picture — your own numbers, from your own list — is the leak, made visible. It is a descriptive diagnosis: it shows where records are accumulating and how concentrated they are. It is not a revenue estimate, and this guide makes no claim about what any of it is worth in dollars.
Done when: the counts are written down and you can name where the leak concentrates.
Step 6 — Draft carefully (send nothing yet)
Write a short message for the rows you’ve prioritized. Use only the real context in the row. Put each draft in the draft column and set status to held.
Illustrative templates only— examples to rework in your own voice, filling [brackets] with details you actually know:
Past customer: “We did your
[job]back in[time]— how’s it holding up? We’ve got room in the schedule this month if anything needs a look.”Quoted, never closed: “Quoted you on
[thing]a while back — priorities shift, no worries. If it’s still on the list, happy to refresh the numbers.”Inquired, never quoted: “You asked about
[thing]and it slipped through on our end — that’s on us. Still interested?”
The one hard rule for drafting: never invent.Don’t fabricate a job, a date, a price, a promise, or availability you can’t stand behind. If you don’t know a detail, leave it out rather than guessing.
If you use an AI assistant to draft:that’s fine — it’s good at first drafts, and it can work from the context already in the row. Drafting is the only job it gets. It never decides who to contact, and it never sends.
Done when:each prioritized, welcome contact has a personalized draft, and every draft’s status is held.
Step 7 — Hold every message before it sends
This is the rule the whole method rests on. Every drafted message stays at HELD until a person decides what happens to it.
- Open the sheet and look only at rows where
status=held. - Read each draft with the actual person in mind, then set
owner_decision:approve(send it yourself, then setstatustosent),edit(fix it, decide again), orreject/ skip (don’t send; note why). - One at a time. Eyes on every message.
- When someone replies, set
statustorepliedand write what happened innotes.
The queue rule: every message rests at HELDuntil a human chooses approve, edit, or reject. Nothing sends automatically. If you’re ever unsure whether a follow-up would be welcome, don’t send it. Anything sensitive or exceptional stays a human decision — always.
Done when: working the held queue is a short weekly habit and the notes column is filling up.
Step 8 — Take one useful first action
Don’t wait until the whole list is perfect. Pick a small handful of the clearest, warmest, most obviously welcome records — the ones at the top of your prioritycolumn. Draft those thoughtfully, review each by hand, and decide on each. That’s a complete first pass.
This is deliberately not a bulk-send playbook. A small batch is easier to review carefully, personalize honestly, and keep under owner control. Start small and inspect every message.
What this free guide does and doesn’t include
What it gives you:the complete manual method. With this guide and a spreadsheet, you can find your follow-up leak, organize it, rank it, draft carefully, and keep every message under your own approval — by hand, today, without buying anything.
What it does not include:
- Connecting your live tools — no integration with your real CRM, inbox, or booking system.
- Automated duplicate-matching across systems — the dedupe here is the manual version.
- Any credentialed access to your accounts or data.
- Monitoring, alerting, rollback, or production deployment.
Those are implementationconcerns — the work of building this into live systems and keeping it running reliably. They’re not information held back from you. The method on this page is the whole method. The line between doing it by hand and having it built into a business is accountable implementation, not a secret.
Before you start
You can begin this map with a spreadsheet. Start with a few records that clearly need review, add the required columns, and work through the steps in order. The judgment stays with you throughout. Go find the leak.
Keep the map
It works without ever talking to me.
The map above is the whole method — take it and run it by hand with a spreadsheet. I publish breakdowns of supervised AI systems as I build them; the next resource is on the way.