DESIGN-Full-Workflow-Integration-end-to-end-

The booking form — every question, and where the answer goes

The form is the handshake between marketing and the customer list. Every question maps to exactly one field on the customer record (../08-client-list-and-crm/schema.md) — that’s the right-hand column. Only add a question here if you also add the field there.

A sample filled-in submission is in data/sample-intake.json.


The questions

Question on the form Required Lands on the record as Why we ask
Full name ✓ name  
Email ✓ email  
Phone ✓ phone so we can call them back (04)
Street address ✓ address.street  
City / State / ZIP ✓ address.city/state/zip the ZIP picks their route (02)
“Roughly how many things are on your Wi-Fi?” – home_profile.devices_est sets expectations for the visit
“What’s your main worry?” (pick any) – home_profile.concerns[] e.g. kids’ safety, privacy, an elderly parent, the smart-home gear
“Who’s your internet provider?” – home_profile.isp  
“How’d you hear about us?” ✓ source Google / a neighbor / an ad / a post
“A neighbor send you?” (name or address) – referred_by this is the referral flywheel (02)
Email opt-in box (starts un-checked) – consent (+ source + timestamp) never pre-check it
Best time for a visit – booking.requested Setmore handles the actual slot

What happens the instant they hit submit (automatic — stage 11)

  1. Create a lead on the customer list — status = lead, a new id, timestamped.
  2. Turn their ZIP into a route (an existing one, or a new candidate route).
  3. If they opted in, record the consent and add them to the Leads email list.
  4. If a neighbor referred them, link the two records so the neighbor gets credit.
  5. Hand the time slot to Setmore; write the confirmed appointment back onto the record.
  6. Ping the operator who covers that route (or the founders) to make the call (04).

The rules