SaifBrand

LeadLedger — Cold Outreach That Remembers What It Did

Seven n8n workflows that find business prospects, look at their websites, write one honest email about what they found, and keep a permanent record of all of it.

🧪 Built and import-tested on n8n 2.8.4 · 121 nodes · no paid APIs to run it

A ledger of prospect domains, each with the fault found on their website and its current state — drafted, replied, never again, waiting, skipped
The problem

Every outreach template ends the same way: it hands you a spreadsheet

Run it twice and it emails the same person twice. Someone unsubscribes and next month's campaign finds them again, because nothing wrote it down. A mailbox bounces and you keep hitting it until your domain is in a spam folder. Somebody asks where you got their address and you have nothing to show them.

None of that is a scraping problem. It is a memory problem — and n8n's Data Tables are the first native way to fix it without bolting a database onto the side.

So this is a ledger with a workflow attached, rather than a scraper with a spreadsheet attached.

Six ways an email does not get sent

Most packs are judged on how much they send. This one is built around what it refuses to send, and why.

  • 🛑Outside your sending window — held
  • 🛑Daily cap already used — held
  • 🛑On the do-not-contact list — dropped
  • 🛑Contacted too recently — held
  • 🛑Out of contact attempts — dropped
  • 🛑No findings on their site — never sent
🧩 Seven workflows, one system

What Is Inside

Not a bundle of unrelated files. Each one hands the next something it needs.

1

Setup

Press one button. It creates its own four data tables and checks them off for you. Nothing to configure, no IDs to copy.

2

Intake & Vetting

Finds businesses on OpenStreetMap, screens them against everything you already know, and checks the mail domain actually exists before storing anyone.

3

Evidence & Scoring

Fetches each website and checks 18 specific, verifiable faults. This is where the reason for your email comes from — and where missing email addresses get recovered.

4

Guarded Send

Five guards, then an email written only from the evidence. Ships in draft mode: it writes to Gmail drafts until you decide otherwise.

5

Reply & Opt-out Watcher

Opt-outs and bounces are suppressed permanently within minutes. Real replies stop the sequence. Out-of-office is recognised and ignored on purpose.

6

Compliance Console

One form: show everything held about an address, erase someone, block someone, or purge data you no longer have a reason to keep.

7

Import Your Own List

Already have a list? Paste it in and it goes through the identical screening, the identical ledger and the identical guards.

Why This One Is Different

🧠

It Has A Memory

One row per business domain, shared across every campaign you will ever run. A domain already in the ledger is never collected twice. The do-not-contact list is checked at intake and again at the moment of sending, because people unsubscribe in between.

🔍

It Cannot Make Things Up

The model is handed a list of faults found on the live page and forbidden from saying anything else. A lead with no findings is never emailed at all — there would be nothing honest to say. A well-built site correctly scores zero.

🚪

The Opt-Out Is Written In Code

Every message carries a mailto: link with that lead's own token, added after the model has finished. Workflow 5 watches for exactly that token. A model told to remember an unsubscribe link forgets eventually; this one never sees that part of the message.

🛡️

It Will Not Burn Your Domain

A sending window, a hard daily cap counted in a table rather than guessed, a minimum gap between contacts, and a maximum number of messages per business — ever, not per campaign.

📝

It Can Answer For Itself

Every lead stores the exact source URL, the timestamp, and the lawful basis you selected. Somebody asks where you got their address and you have the answer on screen in seconds, not a shrug.

💸

Nothing To Subscribe To

Prospect data from OpenStreetMap, geocoding from Nominatim, MX checks over Cloudflare's public DNS. No Apify, no Hunter, no Apollo, no verification service. The only credential that can cost money is your language model, and Gemini's free tier covers ordinary use.

🧪 How it was checked

Most template packs have never been imported by anyone but their author

Every node type and version in these files was read out of a running n8n 2.8.4 — not guessed, not copied from a blog post. Wrong versions are the single most common reason a downloaded workflow will not import.

All seven were then imported into a clean n8n instance and exported again, to confirm all 135 nodes survive the round trip intact.

The pack ships with the test suite that proves it: 87 assertions run against the actual JavaScript inside the Code nodes — the audit rules, every guard, the reply classifier, the list parser. Fork it, change it, and you can still prove you did not break it.

121
functional nodes
87
passing assertions
0
paid APIs required

What It Will Not Do

Read this before you buy, not after. If any of it is a dealbreaker, do not buy it.

OpenStreetMap coverage is uneven

Dense in Western Europe, thinner elsewhere, and it favours businesses with a physical premises. Measured on live data for Bristol across five trades — 243 named businesses — 14% published a website and 2% published an email. Workflow 3 recovers most of that gap by reading addresses off the sites themselves, but plan on roughly one in seven being contactable. Workflow 7 exists precisely so the pack is useful with your own list too.

The audit reads HTML, it does not render pages

It catches missing tags, insecure transport, stale copyright notices, exposed CMS versions, mixed content and render-blocking scripts. It cannot measure Core Web Vitals or find faults that only appear after JavaScript runs.

Deliverability is still your job

SPF, DKIM and DMARC on your sending domain matter more than anything in this pack. Gmail's own sending limits also apply, and they sit below anything these workflows will do.

This is not legal advice

The pack records a lawful basis, honours opt-outs permanently, and produces a subject access report on demand. Whether your particular campaign is lawful where you operate is a question for someone qualified to answer it.

Launch price — first release
$59

one-time · no seats, no per-lead fee · includes 12 months of updates

This is the introductory price for the first release. It goes up as more workflows are added — buy now and the updates you get are still included.

  • All seven workflows as importable JSON
  • Setup, requirements and troubleshooting guides
  • The generator and the 87-assertion test suite
  • Use on your own and your clients' n8n instances
  • 12 months of updates as n8n changes

Updates after the first year are optional at $29/year. The workflows you already have keep working whether you renew or not.

Questions

What do I need before this will run?

Self-hosted n8n with Data Tables (built and tested on 2.8.4), a Gmail account connected over OAuth2, and a Google Gemini API key. That is the entire list.

Will it start emailing people the moment I import it?

No. Workflow 4 ships in draft mode and writes to Gmail drafts. Sending is one setting, changed by you, after you have read a batch.

Can I use OpenAI or Claude instead of Gemini?

Yes. Delete the Gemini node, drop in any n8n chat model node, and reconnect one line. Nothing else changes.

Does it work with my existing leads?

Yes — that is workflow 7. Paste a CRM export or a spreadsheet and it goes through the same screening and the same guards. The ledger does not care where a name came from, as long as you record where it came from.

What happens when n8n changes?

Node versions do move, and a pack like this needs maintaining. Every purchase includes twelve months of updates. After that, renewing at $29/year keeps them coming — optional, and the workflows you already have keep working either way.

Can I use it for client work?

Yes, on as many of your own and your clients' n8n instances as you like. You may not resell or repackage the workflows themselves.

Outreach you will not have to apologise for

It writes down where every name came from, refuses to email anyone twice, and can answer for itself when someone asks.