One submission, three rules,
one tied back to a row in the inbox.
This page is the live lead intake for the Perth roofing pilot. Every homeowner enquiry is persisted to Postgres, then classified by the rules engine as Qualified, Out-of-area, or Wrong-trade — and surfaces in the inbox on the same page so you can confirm the round-trip end to end without leaving the browser.
Lead capture
Submit a test lead.
The form POSTs to /api/leads, which runs the suburb and job-type rules before writing the row. New leads appear in the inbox on the right with their tag.
New lead
Captures name, number, suburb and a job description. Photo URLs are optional — paste one per line if the homeowner texted them through. The rules engine tags it before it lands in the operator inbox.
Tagging rules
Three outcomes, in this order.
- 01
Suburb check
If the suburb is not in the Perth service set, lead is out-of-area — no further checks run.
- 02
Trade check
If the job mentions a non-roofing trade and no roofing keyword, the lead is wrong-trade. A deck that is also leaking the roof still routes to roofing.
- 03
Qualified
Everything else — in-area + a roofing job signal — is qualified and persisted with a green tag.
How this submission is handled
The lead inbox on this page is for the lead-routing demo and is publicly visible during the pilot so the round-trip can be verified end to end. Production deployments of this same surface would gate the inbox behind auth. Submissions are owned by the customer who runs the deploy, retained for the lifetime of the pilot, and never shared with third parties.