I rebuilt the website to separate routine drop-offs from business pickups.
Both requests used to trigger the same phone alert. Now a drop-off can review fees and schedule without me, while a business pickup keeps the details needed for follow-up.
different jobs separated before the owner alert
Business pickup and community drop-off
explicit lead-value tiers
1, 10, and 50 in the current rules
notification-path tests
Including honeypot and nested payload cases
runtime AI decisions
The production routing path is deterministic
Two requests that need different follow-up used the same path.
The old site treated two very different requests as roughly the same event. A business might need a pickup, access planning, data-destruction documentation, and a response from me. A community drop-off usually needs to know what we accept, which items have fees, and when to arrive.
A community customer can review accepted and fee-based items, enter an item list, answer the Apple-device question, and continue to Calendly. The form saves first, then passes the name, email, and item list into the appointment.
A business visitor gets a pickup form covering equipment, access, location, data needs, and documentation. Both forms retain the page, lead type, and source for follow-up.
Nobody should discover a disposal fee after loading the car.
The fee acknowledgement is an operating rule. Some electronics are free to drop off and some have fees. The customer sees those categories before choosing a time.
The customer can decide before driving over. I have not measured the effect on fee disputes; the verified change is that fee review now happens before scheduling.
The public-domain form path has its own failure checks.
All pages use one Netlify form name. Hidden fields carry the request type, page, score, and source into one Zapier trigger.
Cloudflare forwards the public site to Netlify, including the POST body. Every form change needs an end-to-end submission through the public domain because a Netlify preview does not test that handoff.
The form waits up to 900 milliseconds for analytics, saves before opening Calendly, rejects honeypot submissions, escapes submitted HTML, and uses the lead id to prevent duplicate notifications. Six tests cover the main notification paths and failure cases.
What remains unmeasured or unresolved.
- The current drop-off completion rate and form-abandonment rate are unknown.
- The intended reduction in fee surprises is not a measured customer result.
- Preview tests do not replace a public-domain POST test through Cloudflare.