Clients, Properties & Leads
Client accounts, commercial hierarchies, service properties, and the activity timeline that ties it all together.
On this page
Creating a client
- Go to CRM > Clients and click + New Client.
- The quick-create step captures just four things: Display Name, Account Type (Residential or Commercial — Residential is the default), plus phone and email. Whether phone and email are required depends on your org's field settings.
- Click Create & Continue → and the full client record opens immediately — billing info, custom fields, contacts, and office notes all live there.
A client also gets a Source field (referral, Google, BNI, etc. — your org configures the option list) and an optional Referred By link back to another client record, plus free-form tags for segmentation. None of these are required at creation — they're filled in on the full record afterward.
Sales Rep. Edit the client and pick a Sales Rep (the list shows employees flagged as sales reps; whoever is already assigned stays selectable). It feeds the Sales Rep filter on the Clients list and the rep reports. Client is taxable on the same screen marks a tax-exempt client: unchecked means no sales tax on their invoices.
Finding clients: search, filters & export
CRM > Clients has two views of the same list: List (with the client's record open beside it) and Table (more columns, bulk actions). Your search and filters carry over when you switch between them. CRM > Leads works the same way — loading, search, filters, Select all N matching leads and Export — limited to leads.
- Loading as you scroll. The count at the top is the full number of matching clients, but the list shows them 100 at a time. More load automatically as you scroll down, or click Load more at the bottom. Searching and filtering always cover every client, not just the ones on screen.
- Search matches name, account number, email, phone, billing and service address, city, ZIP, and tags. Phone numbers match on digits alone once you type three or more, so 9785550100 finds (978) 555-0100.
- Filters are the same in both views: Status, Account Type, Balance, Billing City, Service City, ZIP, Client Source, Sales Rep, Priority, Client Since, Tags, your custom fields, Referred By, Do Not Market, Taxable, OK to Email, and Has Scheduled Job For / Has Completed Job For a service. Pick several values in one filter to match any of them.
- Billing City vs. Service City. The table's Service Address column shows where the work happens. To filter on that town, use Service City; Billing City filters on the billing address.
- Selecting clients in the Table. The header checkbox selects the rows loaded so far. When there are more matches, a Select all N matching clients link appears above the table to select every client the current search and filters match, ready for a bulk action.
- Bulk actions run on the server. Tags, Bulk Edit, Activate, Cancel and Close as Lost apply to the whole selection in one step (up to 10,000 clients), and each changed client gets a timeline entry. You can close the tab once the success message shows. Automations they set off (for example "when tag X is added") run right away for up to 50 clients; for a bigger selection they are queued and go out within about 15 minutes.
- Export. Import / Export > Export downloads a CSV of exactly the clients your current search and filters match, all of them, not just the ones loaded on screen. Clear the search and filters first to export everyone.
Client status & the Lead-to-Client transition
Every client has exactly one status. There is no separate "lead" object or conversion record anywhere in the schema — a Lead is a client whose status field happens to say "Lead." Converting a lead to a client is nothing more than changing that one field to Active (which also stamps the record's Client Since date — see below). Click Convert to Client on the lead's record, confirm in the dialog that appears, and the status flips; a "Converted from lead to client" entry is logged on the Activity timeline so you can see later exactly when it happened. Everything else — the display name, contacts, properties, custom fields, activity history already on the record — carries straight through untouched. This is also why the Zapier "Lead Converted to Client" trigger (see the Zapier guide) is really just watching for a status change to "active," not a distinct event type.
| Status | How it's set | What's allowed / blocked |
|---|---|---|
| Lead | Default status for a client added as a prospect, or set manually. | Estimates can be built and sent. Jobs, invoices, and contracts are blocked until the status moves to Active — a Lead isn't a customer yet. Leads don't appear in the Add Job client picker, and a job created for one any other way (API, Zapier, import) is rejected with a “convert the lead first” error. |
| Active | Set manually, or automatically the moment a Lead is converted (see below). | Full access: jobs, invoicing, contracts, the estimating engine, all of it. |
| Inactive | Set manually — a client who's paused service without formally cancelling (seasonal pause, temporary hold). | Existing jobs and invoices stay visible and editable, but the client won't appear as a pick target for new recurring job generation. |
| Cancelled | Set manually, and only after a cancellation reason is picked. | Read-only for scheduling and invoicing going forward. History stays intact for churn reporting. |
| Lost | A Lead closed without converting — via Close as Lost on the Leads list, or when the client declines an estimate in the portal. | Still a lead, not a client: it never appears in client counts or Client Since reporting, and shows up in the Closed Leads Summary instead. Like an open Lead, it can't have jobs. |
Cancelling a client requires picking a reason — Price, Moved, Unhappy with Service, No Longer Needs Service, or Other (which reveals a free-text field) — and that reason is kept on the record permanently for churn reporting. There's no undo dialog for it: to bring a cancelled client back, change the status again like any other field.
If the client (or any of the clients in a bulk cancel) has upcoming visits nobody has started, you're asked "Cancel their N upcoming visits?" first. Yes cancels the scheduled and dispatched visits that have no clock-in and aren't invoiced — recurring and package visits are removed from the schedule, one-time visits stay on the record as Cancelled. Completed and in-progress visits are never touched. No leaves every visit as it is. Reactivating the client lets recurring visits generate again on their own, but one-time visits cancelled this way are not restored. Deleting a client asks the same question.
Client Since, and how leads are counted
Client Since is the date a lead became a client — not the date the record was created. It is set automatically the moment a lead converts: clicking Convert to Client and confirming, or changing a Lead's status to Active in Edit. A record created directly as an Active client gets its creation date. Leads — open or Lost — have no Client Since at all, which is what lets reports tell "when did we first hear from them" (created date) apart from "when did they start paying us" (Client Since).
The lead and client reports lean on exactly that split:
- New Leads figures (Company Scorecard, Clients/Leads Monthly Matrix, the dashboard gauges) count every account created in the window, whatever its status is today — a lead that converted the same week still counts as a new lead that week.
- New Clients / Converted figures use Client Since, so a lead created in March and converted in May is a May client.
- Closed Leads means leads with status Lost. A lost lead is never counted as a client anywhere — client totals are Active + Inactive + Cancelled only.
Commercial parent/child hierarchy
Commercial clients can be nested under a property-manager parent using Link Parent Account on the child's detail page. The hierarchy is strictly one level deep: only a client that doesn't already have a parent of its own can be picked as a parent. A client that's already a child is filtered out of the parent picker entirely — you'd need to unlink it from its current parent first before it could become a parent itself.
The Link Parent Account picker shows the first 50 eligible clients. Type a name, account number or address to search all of them. If the client you're linking already has sub-accounts of its own, the picker explains that it can't be given a parent instead of listing choices, since that would make the hierarchy two levels deep.
The parent's detail page shows a Sub-Accounts banner listing every child and a combined balance figure. That balance is the parent's own outstanding balance plus the sum of every child's outstanding balance — not just the children's total — so the number on the banner always reflects everything owed across the whole account family, including the parent record itself if it carries its own charges.
"Outstanding balance" here means the client's Account Balance: the unpaid portion of issued invoices only. Draft invoices — auto-generated from completed visits but not yet printed or sent — are deliberately left out and shown as a separate Uninvoiced line on the client header, which links to those drafts. The same rule applies to every balance, receivables, and revenue figure in the Report Center; drafts appear only on the Income Not Invoiced report.
Worked example. A property management company, "Ridgeline Property Management," oversees three separate HOA communities you service on different contracts: Ridgeline manages Oakview HOA, Brookstone HOA, and Cedar Hills HOA as three individual commercial client records. You create Ridgeline Property Management as a commercial client, then create Oakview, Brookstone, and Cedar Hills as commercial clients in their own right (each keeps its own properties, contacts, jobs, and invoices — an HOA board still needs its own invoice history and site details). On each of the three HOA records, click Link Parent Account and pick Ridgeline. Now Ridgeline's record shows a Sub-Accounts banner with all three HOAs listed and a single combined balance — say Oakview owes $1,200, Brookstone owes $800, and Cedar Hills owes $0, with Ridgeline itself carrying no direct charges: the banner reads $2,000. If Ridgeline's management contract also bills a management fee directly to Ridgeline itself, that amount is added on top, not folded into or replacing the children's totals.
Paying a sub-account's invoice from the parent. When Ridgeline mails one check covering all three HOAs, record the payment on Ridgeline and allocate it across the HOAs' invoices in that single entry. Each HOA's own record then shows the payment on its Accounting card, tagged "via Ridgeline Property Management", so someone looking at Oakview alone can see how its invoice got paid without knowing to check the parent. Those rows are read-only on the sub-account — edit or reverse the payment from the parent where it was recorded.
Properties
A client can have more than one service address. Open the client's Details tab and find the Properties list; click + Add (or More → Add Property). The dialog captures a property name/label (e.g. "Main Office," "Rental Unit"), street address, city, state, ZIP, a gate code, and notes to crew. The same list is where you view and edit them — click the pencil on a row.
Picking a property on a job. When a client has two or more properties, the New Job dialog shows a Property field. Choose the location the job is for and the crew is routed to that address, and the property's gate code and notes to crew show on the job. Leave it on Client's main address to use the client's own service address. A client with only one property doesn't see the field.
Measurements per property. The Add/Edit Property dialog has an optional Measurements block (turf, mulch beds, gross, parking lot / hardscape, perimeter, edging, yards of mulch), or trace them with More → Aerial Measurement. When an estimate is for one of the client's properties, production-rate lines default their quantity from that property's measurements — a blank value stays blank rather than borrowing another address's numbers. For the client's own address (the primary property), the client's Custom Fields takeoffs and the property's measurements are kept in step. See the next two sections.
Custom Fields & zone measurements
Measurements that feed the estimating engine's production-rate calculations are kept as takeoffs on the client: Turf Sq. Ft., Mulch Bed Sq. Ft., Parking Lot / Hardscape Sq. Ft., Gross Sq. Ft., Linear Ft. Perimeter, Linear Ft. Edging, and Yards of Mulch. You can type them in by hand on the Edit Client dialog's Custom Fields tab (Takeoffs section), or let the Aerial Measurement tool calculate them from a satellite map. The Details tab shows the current values. The gate code also has a home here, under an Access section, in addition to the one captured per property.
Any custom field you've defined that has a value on the client also appears as a row on the Details tab, with its unit after the value. Fields with no value are hidden.
Custom fields on a property. A number or text custom field's value on the client is the default for all of that client's properties. If a client has more than one property, open Edit Property and use its Custom Fields section to give that property its own value (for example two different mulch colors); leave a field blank and the property uses the client's value. The same applies to the measurements above: a property's own figure wins, otherwise the client's is used, so you never have to create a property just to repeat what is already on the client.
Typed takeoffs are one combined number per client. Aerial Measurement is the only place that breaks measurements down zone by zone and property by property.
Aerial Measurement
Open a client and choose More → Aerial Measurement to trace the property on a satellite map and have the square footage and distances calculated for you. It needs the Google Maps key in Settings → Integrations; without one the dialog tells you it isn't configured. If the client has no property yet, one is created automatically from the client's service address (or billing address); a client with no address on file needs one added under Details first. When the client has more than one property, pick which one to measure from the dropdown at the top. A pin marks the property's address.
- Trace Area — click each corner of a lawn, bed or paved area, then Finish Shape. Undo Point removes the last corner and Cancel abandons the shape. Corners show as dots, and a running readout follows the cursor while you trace.
- Subtract Area — trace a region to cut out of the totals, such as the house inside a whole-lot turf trace. Subtracted shapes draw in red and count as negative square footage. A total never goes below zero.
- Measure Distance — click along a fence line, edge or run, then Finish Line. The length shows in feet, yards and meters.
Every shape lands in a table below the map. For each area, set its name, Type (Turf, Mulch Bed, Parking Lot / Hardscape, or Other) and Effect (Adds or Subtracts); you can also drag the corners on the map to adjust. For each distance, set its name and Type (Perimeter, Edging or Other). Areas of the same type add together, and the table shows a total per type plus an overall total. A shape that crosses itself is flagged and has to be retraced before you can save.
Sync to Custom Fields. If your organization has number-type custom fields (set up under CRM Settings → Custom Fields), the dialog lists each one with a dropdown of what to keep it in sync with: Turf total, Mulch bed total, Parking lot total, Gross total, or a Perimeter / Edging / Other / All-distances total (the dropdown guesses a sensible match from the field name). A distance can instead be pointed at a specific field with its Counts toward column; several distances pointed at the same field add together, and that field shows “From distance lines” instead of a dropdown. A field is only written when something of that type was actually measured, so saving never overwrites an existing value with 0.
Saving. Click Save to store the shapes on the property. When the property is the client's own (master) address, its Turf, Mulch Bed, Parking Lot / Hardscape and Gross totals, plus the Perimeter and Edging distance totals, are also copied onto the client's takeoff fields so the Details tab and estimates see them straight away. Each takeoff is only changed when that type is in the saved shapes (or was there before and has been deleted, which clears it); distances typed Other only feed custom fields. Extra properties you added yourself keep their measurements at the property level only. A Trace or Measure still in progress has to be finished or cancelled before saving.
Contacts
Add contacts from the client detail page, each with a type: Owner, Primary, Spouse, Property Manager, District Manager, Trustee/Board Member, Employee, Child, Other.
A contact can have multiple phone numbers on file. Toggle the star (★) next to a number to mark it primary — the same star toggle exists on the client's own phone numbers, independent of any contact.
Activity timeline
Every note, call, email, invoice, payment, job visit, estimate, contract, automation, and ticket tied to a client lands in one chronological Activity Timeline on that client's record. Scheduling actions land here too: creating a job (including one converted from an estimate) logs "Job created," moving a visit to another day logs "Visit moved 9/7 → 9/8," dispatching one logs "Visit dispatched," and skipping or cancelling one logs the reason the dispatcher picked ("Visit skipped 9/9 — Client requested delay"). In practice this is the fastest way to answer "what's actually happened with this client" without hopping between the invoices tab, the estimates tab, and a separate notes log — everything is one feed, newest first, and each row deep-links straight to the invoice, estimate, or job it references.
| Filter | Shows |
|---|---|
| All History | Everything below, in one chronological feed. |
| Notes | Notes, calls, emails, and tickets. |
| Visits | Job created, scheduled job visits, visit moves, dispatches, skips and cancellations (with the reason), and completed job records. |
| Transactions | Invoices and payments. |
| Estimates | Estimates and contracts. |
Account Statement
Client > More > Account Statement generates a mail-in-style, running-balance statement PDF for the client — modeled on the org's old Service Autopilot statement report. The dialog sets a Statement Date, a Period From/To range, a toggle for whether to show invoice/payment line-item detail or just the running totals, a "don't generate if balance is less than" minimum-balance filter, and an optional statement message — with a live preview of the PDF alongside the fields as they're changed.
Open / Print opens the generated PDF in a new tab; Email Statement sends it to an address (defaulting to the client's own, but editable) instead. If the minimum-balance filter is set and the client's balance falls short of it, an email send is silently skipped rather than sent — the dialog reports this so it isn't mistaken for a delivery failure. Statements go to the client's Billing Email when one is saved, otherwise the primary email, and Email Statements for many clients at once from Accounting > Statements sends them a few at a time so the mail provider's rate limit isn't hit.
Sub-accounts and parent payments. Only issued invoices count (not drafts or voids). When a payment was recorded on another account, typically the parent's, and applied to this client's invoices, the child's statement shows it as a payment line labelled Paid by parent account with the method and invoice number, for just the share applied to the child's invoices (net of any refund). The child's balance on the statement therefore matches what the child actually owes.
Good to know
- Inactive and lost clients. Marking a client Inactive, Lost or Cancelled stops new recurring and package visits and stops their contract invoices. Reactivating resumes both.
- Bringing back a lost lead. Reactivating a lead that was closed as lost counts as a conversion: Client Since is set, “Converted from lead to client” is logged and the Lead converted to client automation fires.
- Changing the phone number clears text consent. Consent was given for the old number, so saving a different primary phone turns off “Opted in to text messages” and logs it, unless you tick the box yourself in the same save.
- The timeline records more. Cancelling, closing as lost and reactivating (with the reason), adding or changing contacts and properties, removing tags, and uploading or deleting files all leave an entry on the client's activity timeline.
- Bounced email addresses. When an address hard-bounces, a red notice on the client lists it. That address is skipped on every send (statements, invoices, estimates, campaigns, automations), but only that address: a bad billing email or CC no longer blocks email to the client's good primary. A corrected address is never blocked. Click Clear bounce (needs permission to edit the client) if the mailbox works again.
- New Client. If Settings → Required Fields requires a source, New Client asks for it. A service address checked with the address suggestion is saved with its verified location.
- Tags you type. A new tag typed on a client is also added to Settings → Tags (when your role can edit CRM settings), so you can filter and bulk-tag by it.
- Custom fields that didn't load. If a client's custom fields fail to load, the Custom Fields tab says so and saving the client leaves them unchanged.
- Link Parent. The Link Parent picker shows up to 50 clients until you search, and explains when a client can't be a sub-account because it already has sub-accounts of its own.
- Chemical area without a property. For a client with no property records, chemical amounts use the measurement on the client's Details tab (for example Turf Sq. Ft.).