Import either workflow
- Download: the minimal dedupe workflow or the clean-list pipeline.
- In n8n: Workflows → Import from File.
- Open the HTTP Request node(s) and replace
YOUR_API_KEYin the Authorization header with a key from your dashboard (free tier works). Better: move it into a Header Auth credential, as the FAQ below explains. - Press Execute workflow. The sample data runs end to end; then replace the sample-data Code node with your real source.
What the clean-list pipeline does
Four nodes after the trigger. A Code node holds the list (in production: your spreadsheet
read, database query, or webhook body). Dedupe posts it to /api/dedupe in lines
mode with case-insensitive matching, so Ann@Example.com and
ann@example.com collapse. Validate sends the survivors to
/api/validate, which checks syntax, MX records, disposable domains and role accounts
(2 units per address; hygiene-grade, and the reference says exactly
where it stops). A final Code node keeps only the addresses that passed, plus the summary
counts for logging. Feed its output to whatever comes next: the CRM import node, the email tool, a
sheet.
Fitting it into real flows
The pattern composes with anything n8n can reach: dedupe form submissions before they hit the CRM,
clean a list before a campaign send, validate signups nightly. For CSV data use rows
mode with options.keyColumns instead of lines mode, and for name-variant matching add
options.fuzzy with a threshold; the no-code
guide covers the Zapier and Make equivalents, and the API reference documents
every option these nodes can send.
FAQ
Frequently asked questions
Do these workflows run on n8n Cloud and self-hosted?
Both. The nodes used (Manual Trigger, Code, HTTP Request) are core n8n nodes present in every edition. Self-hosted keeps everything on your infrastructure except the calls to the API itself, and nothing sent to the API is stored.
Where should the API key live in n8n?
The downloads ship with a placeholder in the HTTP Request header so the import works instantly, but the better home is an n8n Header Auth credential: create one with the name Authorization and the value Bearer YOUR_KEY, attach it to the HTTP nodes, and the key stops living in the workflow JSON, which you might export or share later.
How do I run a workflow on a schedule?
Swap the Manual Trigger for a Schedule Trigger node (or add one alongside it). A nightly run that pulls your export, dedupes it and validates it is exactly the shape these workflows are built for.
What happens if a run sends more than my plan allows?
The API answers with a clear JSON error instead of truncating: 413 when a single request is over a cap, 429 when the monthly allowance or a rate limit is hit, with limits in the body. Failed calls are never billed, and n8n's error output shows the message verbatim.
Last updated