Lead Parsing Engine: Every Channel, One Inbox

Delivered with my team at Codevibe Technology.
The problem
Sales teams lose leads in the gaps between tools: a Meta form that has to be exported by hand, a WhatsApp enquiry buried in a support chat, a landing page that posts to an inbox nobody checks. Every provider sends leads in its own shape and proves itself in its own way.
What we built
One webhook per source: website forms, Meta lead ads, WhatsApp and campaign landing pages
One shared pipeline: verify, parse, normalise, store. Each source is a connector that only knows how to verify and parse its provider; everything after that is shared
Retries that cannot create twins: backoff from 30 seconds up to an hour, 10 tries, with duplicates caught
Encrypted credentials and a log of every request with its outcome, so "the provider says it sent the lead" can be checked
Attribution kept: last-touch marketing attribution and the raw request stored with every lead
One engine, two businesses
Built first inside the Utazzo Holidays CRM, then ported into the Fix Departures B2B platform with different business rules on the same plumbing.
In numbers
4 lead sources through one engine
100 form field names understood out of the box
21 days from first commit to running on the second platform
246 unit tests across both copies
Stack: NestJS, PostgreSQL, React.
Full write-up: https://codevibe.in/case-studies/lead-parsing-system
0 likes · 0 views · Nov 9, 2026
A lead ingestion module for travel CRMs: one signed webhook per source, a shared verify, parse, normalise and store pipeline, and safe retries. Built for Utazzo's CRM, then ported to Fix Departures in 21 days.




