From form
to forecast.
A B2B client had three forms on their site feeding three different inboxes, with manual copy-paste into Odoo CRM. Leads got lost; the rest arrived stale. We connected the pipes properly.
The brief
Forms were submitting to emails. A junior would copy each entry into Odoo CRM, sometimes the same day, sometimes Monday. Duplicates were common, follow-up was inconsistent, and the team had no real view of pipeline because the data lived in three places.
What we built
A single capture layer that catches every web form, enriches the data, and lands a clean lead in Odoo CRM — routed to the right owner.
- Unified endpoint behind every form — same logic regardless of which page the form sits on.
- Auto-enrichment pulls company size, industry, and tech-stack from public sources before the lead lands.
- De-duplication against existing contacts and opportunities prevents pipeline pollution.
- Rules-based owner assignment by region, segment, and existing customer status.
- SLA tracking — dashboard surfaces leads that haven’t been touched within the first business day.
What it changed
Every form fill becomes a clean Odoo lead within minutes, with the right owner. Pipeline visibility went from spreadsheet-by-spreadsheet to one dashboard.
- < 2 min form to assigned lead
- −37% duplicate contacts
- +22% first-touch rate
Under the hood
Cloudflare Worker as the universal capture endpoint, enrichment via Clearbit + custom scrape fallback, Odoo XML-RPC API for the lead creation, rules engine in a small Odoo module. Logs go to a shared dashboard so the client can audit any lead end-to-end.
Forms leaking leads?
A 30-minute scan maps where leads enter, where they get stuck, and what it would take to close the loop into Odoo.