Clay's enrichment table, rebuilt in n8n

A free n8n workflow and a 7-page guide. Company names go into a Google Sheet; a named decision-maker, a verified email and an opener that quotes the company's own site come out. 10 rows in 3 minutes for $0.36 in the demo run.

GuideEN7 pages

A free n8n workflow that does the job most people open Clay for. You type company names into a Google Sheet. For each row it finds a decision-maker, gets a verified email through a waterfall of providers, and writes an opener that quotes the company's own website. The guide shows how it works and how to set it up; the workflow JSON imports straight into n8n.

What one real run did

Ten company names in a sheet. Three minutes later:

  • A named decision-maker on 9 of 10 rows, including one with no website.
  • 9 verified emails through the waterfall.
  • 7 openers that quote the company's own site.
  • $0.36 for the whole run, about $0.04 per verified email.

One play, not all of Clay. No signals, no CRM sync, no sequencer.

How a row moves

One row at a time, so the credit budget is exact.

  1. Find the domain

    From the website column, or by search when it is empty.

  2. Read the site

    Firecrawl scrapes the homepage and the About page.

  3. Find the person

    One Hunter domain search for the role on the row, or the target roles in Table Settings.

  4. Email waterfall

    The company site first, then Hunter, then Dropcontact. It stops at the first verified address.

  5. Write the opener

    An LLM through OpenRouter writes one line from one checked fact.

  6. Write back

    Every result and its cost go back into the sheet, and a run report goes out by Gmail.

Two checks against made-up facts

The AI only reads text the workflow scraped. Code then checks every quote it gives against that text, word for word, and drops any fact whose quote is not on the page.

A second check reads the opener before it is written to the sheet. It is rejected unless it cites a fact that passed, every number in it is in that fact, it is 45 words or fewer, and it has no flattery and no "I came across".

Set it up

Import the JSON into n8n, then six steps.

  1. Make the sheet

    A Google Sheet called Lead Table with a Leads tab. The column list is in the guide.

  2. Connect your accounts

    Google Sheets, Firecrawl, OpenRouter, Hunter, Dropcontact and Gmail.

  3. Pick your sheet

    In Read Pending Rows and Write Row Back.

  4. Fill Table Settings

    Your ICP, your offer, and your address in place of REPORT_EMAIL.

  5. Set your credit prices

    To your own Hunter and Dropcontact plans.

  6. Start small

    max_credits_per_run at 10, then raise it.

Things to know before a real list

Catch-all domains
Some companies verify only as accept-all with a low score. The default threshold of 80 refuses them.
Dropcontact
It can take about 90 seconds a row. Fine on the 30 minute schedule.
Cold email
This finds and verifies addresses. Check the rules where you and your prospects are before you send.

Sources

  1. Demo run: n8n execution #57599 on n8n.mina-saad.com (2026-10-13)

Want this run for your team?

Hands-on workshops, half or full day, and training programs for a whole department. Built around the tools your team already uses.