Contacts
The Contacts page (route/contacts) is your address book — every client, co-client, realtor, vendor, and team member who’s been part of an order. Contact records are created automatically when you save an order with new client info; this page lets you find, view, edit, and merge them.
This article documents the list view, the detail/edit panel, and how contacts integrate with the rest of the platform.
When you use it
- Daily — lookup a client’s email or phone before calling
- Weekly — verify a new agent’s contact details before sending a quote
- Periodically — clean up duplicates created by typos at order time
- As part of the Top Agents workflow — sort agents by referral revenue and reach out to dormant ones
Screen layout
[SCREENSHOT: contacts-page.png — desktop, the Contacts page with the title “Contacts” at the top, a search field, a table with Name / Email / Phone / Brokerage columns, and a detail panel on the right when a contact is selected.]Contact table
The main table lists all contacts in your tenant. Default sort: most-recently-created first. Click any column header to sort by that column (where supported).Columns
Roles (Client / Realtor / Vendor / Team) are not currently a separate column but appear as a badge in the detail panel.
Filtering
The search field accepts a single substring that’s matched against name, email, and brokerage. Common patterns:Smith— matches anyone with Smith in their namegmail.com— finds every contact with a gmail addressColdwell— surfaces all agents at Coldwell-affiliated brokerages
Detail / edit panel
Click any row to open the detail panel on the right (or in a modal on narrower viewports).Fields
Additional fields visible on the detail panel:
- Total inspections referred — count of orders where this contact is the primary client, co-client, or referring agent
- Total revenue attributed — sum of
totalAmountacross those orders - First contact date — when this contact was created
- Last activity — most recent inspection or update touching this contact
Editing
Click the field to inline-edit, or use the Edit button to open the full editor with Cancel and Save actions. Changes save to Firestore; existing orders that reference this contact update to use the new values for future renders.Note: Updates to a contact do not retroactively change rendered PDFs that already shipped. If you fix a typo in a client’s name, only new emails and future report regenerations pick it up.
How contacts are created
Contacts are typically created automatically from these surfaces:
Autocomplete in the Order Wizard searches existing contacts by name and email — typing a known client auto-fills their details rather than creating a duplicate.
Deduplication
The platform tries to prevent duplicates by matching on email address: an order with the same email as an existing contact uses that contact’s record. However, duplicates can still arise:- Typo in email (
smith@gmail.comvssimth@gmail.com) - Same person with two email addresses (personal vs work)
- Both spouses sharing one email but appearing as separate contacts
Resolving duplicates
Currently the UI does not surface a Merge action — duplicates require:- Identify the canonical record (most complete data, oldest)
- Update any active orders to point at the canonical contact
- Delete the duplicate
How contacts integrate with the rest of the platform
Deleting a contact
The detail panel’s overflow menu (⋯) has a Delete action. Confirmation alert:Delete contact? This will remove the contact from your address book. Existing orders that reference this contact will keep their snapshot of the contact data but the contact won’t appear in autocomplete going forward.After deletion, the contact is removed from Firestore. Existing orders preserve the snapshot of client info captured at order-creation time — they don’t suddenly lose client details. New autocomplete suggestions won’t include the deleted contact.
Prefer disabling over deleting. A contact with archived: true is hidden from default views but remains searchable for historical lookups. (UI for this is planned; currently deletion is the only path.)
What this page does NOT do
- It does not show order history per contact in detail. For that, search Inspections List by client name.
- It does not handle merge of duplicate contacts. Currently a support task.
- It does not export contacts to CSV. Export from Reports → Agent Referral for agent-only export.
- It does not import contacts in bulk. Bulk import is a planned enhancement; for now, contacts arise from order creation.
Related articles
- Web Admin Overview
- Order Creation Wizard — primary source of new contacts
- Inspection Details — where contact info shows up per-order
- Reports → Agent Referral — agent-revenue pivot using contact data