Small service businesses lose leads in boring ways: a form email lands in a shared inbox, two people answer it, or nobody does. Here is the n8n flow we use for client projects to make every request land in the CRM exactly once and reach the right person within a minute.
The flow
-
Webhook trigger. The site form posts JSON to an n8n Webhook node. Respond immediately with
200so the visitor never waits on downstream steps. -
Normalize. A Set node trims whitespace, lowercases the email and maps the form's
servicefield to a fixed list of values. - Dedupe. Search the CRM for a contact with that email. If found, add a note to the existing deal instead of creating a new one.
- Create or update. An IF node branches into "create contact + deal" or "append note".
-
Route. A Switch node on
servicepicks the owner and posts to that person's Slack or Telegram channel with a link to the CRM record. - Error workflow. A separate Error Trigger workflow catches any failed execution and sends the raw payload to an ops channel, so a broken API key never silently drops a lead.
Details that matter
- Store the raw payload in a data table before any API call. If the CRM is down, you can replay it.
- Use an idempotency key (a hash of email + timestamp rounded to a minute) to stop double submissions.
- Keep credentials in n8n's credential store, never in Set nodes.
- Log timings per node for the first week; the slow step is rarely the one you expect.
n8n vs Make vs Zapier
Self-hosted n8n wins when data must stay on your own server, for example GDPR-sensitive intake in the EU. Make is faster to hand over to a non-technical owner. Zapier is the simplest for two-step flows but gets expensive with volume.
Disclosure: I work at WeRumo, where we build flows like this for small businesses in Germany — process automation services.
Top comments (0)