The contact record

One panel holding a customer's reachability, building, source, address, lead-form answers, media and links to their estimate and pipeline card.

What it is

The detail rail beside the conversation. It carries the identity header (name, stage, value), the core facts a builder needs — phone, email, address, building type, source, start and due dates — the answers they gave when they became a lead, their voicemails, recordings and photos, and the chips that jump to their pipeline card and estimate.

Also called: customer details · client file · contact card · customer record

See it, piece by piece
01

The facts about the customer sit next to the conversation, not behind a tab

Phone, email, job address, building type, source, what the deal is worth and where it stands, all on one rail beside the thread. Where an internal 3D design exists, the record carries a summary of the actual building rather than a button that says open the estimate. Three screens to see one customer is three screens a rep will not open while somebody is on the phone.

Contact Details
Contact Details
MZ
Marlin Zook
Contacted
$74,300.00
Add to call queue
Pipeline Estimate #990214
Build estimate in 3D Builder
Phone(717) 555-0118
Emailmarlin.zook@demo.invalid
Address1840 Weavertown Rd · Gap, PA · 17527
BuildingBarndominium
SourceFacebook
Lead formSpring Barndo — Lancaster
What are you looking to build?
40×64 barndominium, 14 ft sidewalls
When do you want to start?
Spring 2027
The rail: value and stage, the bond chips, then the core facts and the lead-form answers. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
02

A phone or an email you can add while the customer is still on the line

Both rows are always shown and always editable, even when empty — click, type, Enter. They used to be hidden when blank, which meant a contact with no number had no Phone row and no way to add one, and you found out when a text failed.

03

What they said they wanted, on the screen where you ring them back

The questions and answers from the form that created the lead render on the contact, with the campaign and source beside them. Calling a lead back without knowing what they asked about wastes the first thirty seconds of the only conversation you get.

04

The job address is stored as street, city, state and zip, because the permit check reads it

One free-text line has to be guessed back apart, and a guess here quietly puts a building in the wrong jurisdiction. Four fields mean the permit lookup, the crew drive and the delivery all read something clean, and anyone can add or correct it in seconds instead of waiting for the lead form to have collected it.

05

Two clicks from a text message to that customer's estimate

Chips on the record move between the contact, their pipeline card and their estimate — one person, three views, resolved from a single store so the surfaces cannot disagree. Where no pipeline card exists yet, the chip becomes Send to Pipeline and creates the link from the place you went looking for it.

06

‘fb ad’ and ‘Facebook lead’ stop looking like two different sources

Source strings arrive in a dozen shapes from forms, imports and manual entry, and each is matched to one brand mark so a list of leads can be scanned for where the work is coming from. A source nobody recognises keeps its original text beside a neutral dot rather than being hidden.

How it works
  1. 1Reads the contact from the canonical pipeline_synthetic_contacts store
  2. 2Core fields are inline-editable in place; edits save through /api/contacts/details
  3. 3A build summary card renders when an internal 3D design exists for the contact
  4. 4Sections collapse independently and the panel is width-draggable
Why we built it

The contact details said nothing about the build itself — just a link to open the estimate — so a rep on the phone with a customer had to leave the conversation to remember what the person was actually buying. By the time they got back the customer had asked something else. One panel now holds reachability, the building, the source, the address, the lead-form answers, the media and links to the estimate and pipeline card, so the facts sit beside the conversation instead of behind a tab.

The problem
  • Customer facts split across CRM, estimate and pipeline
  • Needing to open the estimate just to remember what the building is
Sound familiar?
What you get
Everything about a person on one rail beside their messages
Jump to the estimate or pipeline card without hunting
What's inside
Phone and email you can add or fix on the spot
Phone and email rows are always shown and always editable, even when empty — click, type, Enter to save, Escape to abandon.
The job address, stored in parts
Street, city, state and zip are core editable fields on the contact because everything downstream — permits, drive time, delivery — hangs off them.
What they answered when they became a lead
The questions and answers from the form that created the lead, plus the campaign and source attribution, shown on the contact record.
Lead source shown as the real brand mark
A free-text source string is matched to an official logo and clean label, so 'fb ad' renders as Facebook.
Jump between the contact, the pipeline card and the estimate
Chips on the record resolve one identity across contact, pipeline and estimate, and offer to create the missing link when there isn't one.
The same timeline on the contact and the pipeline card
One timeline component renders the deal's history identically on the contact record and inside the pipeline modal.
One phone number, however it was typed
Every phone number collapses to one canonical 10-digit key so matching, deduplication and inbound routing all agree.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →