Sandbox
n8n lead capture to CRM sandbox ("Leadflow")
Sandbox: Leadflow cleans leads, scores them by fixed rules and routes them hot, warm or cold in six visible steps.
For owners whose leads live in spreadsheets and inboxes: rules that clean, sort and check every record before it reaches the CRM. The live demo sorts one Colorado city's newest registrations onto a board, each run capped at 45 seconds.
Source: Colorado Secretary of State, business entities (data.colorado.gov)
Board columns
Push to outside CRMs
Checked Open the full demo
Every Monday: export, clean it in a spreadsheet, import. Leads from forms and calls wait their turn. Some vanish, follow-ups slip, and that is money bleeding out of your pipeline. We build the version where no one retypes it.
The live board below does that with public data. A local-service word in a business name sends it to Call this week; nonprofits and holding companies go to Parked.
Stop being the go-between. Your website and chat feed the CRM, with leads going on to your phone app and your inbox.
Someone on your team copies business names off a website and retypes them into the CRM. The first demo does that job for real, sorting records on the way in.
Snapshot frame
Recorded run, 30 Oct 2026: the server's screenshot of its light CRM board, 1040×1012 px, taken in 1974 ms. Business names are covered on this copy; a live run shows them.
Progress
Recorded run: finished in 2.3 s of the 45 s limit. The source answered in 275 ms.
Light CRM board
Server log, streamed
[0.00s] GET data.colorado.gov/resource/4ykn-tg5h.json city=Denver, last 30 days, limit 60[0.28s] 200 OK 60 rows in 275 ms -> 60 unique registrations[0.28s] filter: upper(principalcity)='DENVER' AND principalstate='CO' AND entitystatus='Good Standing' AND entityformdate > '2026-09-30T00:00:00'[0.29s] triage of 60: call this week 8, new 48, parked 4[0.29s] kept the top 10: INSERT 10 rows into leads (SQLite) 7 ms[0.29s] playwright: open our own /api/scrape/board/7b0d59375e04ce82, screenshot[0.29s] HubSpot: not connected yet, no request made[0.29s] Airtable: not connected yet, no request made[0.29s] Notion: not connected yet, no request made[0.29s] Pipedrive: not connected yet, no request made[2.26s] kanban screenshot 1040x1012, 113 KB in 1974 ms[2.26s] done in 2.3 s (budget 45 s)
Live on this server: the newest registrations for one of 8 Colorado cities land on a CRM board inside a 45-second limit.
Open the public business records demo and watch the board fill.
Sandbox
Sandbox: Leadflow cleans leads, scores them by fixed rules and routes them hot, warm or cold in six visible steps.
Click-through
Real screens plus a click-through: a lead is blocked after five call attempts in 30 days.
Live
Live on this server: 200+ recorded pulls from public feeds into a small CRM, median 0.40 s per pull.
Its message panel accepts a correctly signed event, refuses a forged one and ignores a repeat. See the public-feed importer.
EspoCRM runs our deepest CRM build. Its lead record carries 66 custom fields, and a rule run before every save enforces call logging and do-not-call. It is open source, a publicly shared project, customized here. [EspoCRM, Postgres 16, Podman]
We connect the push adapters for HubSpot, Pipedrive, Airtable and Notion to your account during the job. [adapters]
We set up the CRM you already use to work with a phone app and sign-ups. We wire your apps and chatbot to it the same way. The connection matrix shows each platform's evidence, and the contractor CRM build shows the call and sign-up rules.
We delivered this kind of work for clients. Our own sales reps work their leads in the EspoCRM build above, with call logging and do-not-call enforced before every save.
This part is for the technical reader.
Jobs wait in one queue that is also the record of what ran. Each worker claims a job in a single database statement, so two workers never take the same job. A run over its cap is refused, and a tag added by one automation can never start another. [Postgres, FOR UPDATE SKIP LOCKED]
New sign-ups start with a practice run that changes nothing. One match converts the lead to a customer and keeps its history, several matches go to a person, and no match creates a fresh record. [dry run by default, exit codes 0, 1 and 2]
Messages from another app are saved before processing and accepted only with a valid signature, and each event applies once. With no signing secret set, every message is refused. [webhooks, HMAC-SHA256]
A missed do-not-call flag can put the wrong number on a call list. These checks cover the CRM tools and the services around them.
10 queue tests, 2 of them with real competing workers, check that two workers never take the same job.
Your leads are leaking. Step one is a paid pipeline audit: where leads arrive, where someone copies them and where follow-ups slip. We find the leaks and plug the worst one first; commitment comes second.
One sentence about the project is enough. Name the tools you already use, or point at an example on this site.