Why We Built Customer Intake and CRM as One Record: A PolarPath Design Note
A quote request comes in by phone on a Tuesday afternoon. The dispatcher writes down the address, the contact name, and a rough scope. They hand it to the estimator, or they mean to. Three weeks later, the customer calls back asking why nobody followed up. The dispatcher doesn't remember the conversation. The estimator never got the note. The job goes to someone else.
That is not a people problem. That is what happens when the first record of a customer interaction lives in a notebook, a sticky note, or the memory of whoever happened to answer the phone. There is no system failure because there is no system.
This post is about the specific design decision we made in PolarPath's customer intake and CRM, and the tradeoff we considered carefully before ruling out the obvious alternative.
The Obvious Alternative We Chose Not to Build
When we started sketching out the CRM layer, the standard approach was right in front of us: build a contact database. Name, phone, email, maybe a company field. Attach notes. Let the team log calls. Maybe connect it loosely to the quoting module so an estimator can pull a customer record when they're building a proposal.
That model works fine for a sales team that sells software licenses or consulting retainers. It does not work for a field-service contractor running both reactive service calls and multi-month projects out of the same office.
Here is why. A contact database treats the person as the unit of record. But in trade contracting, the operational unit is the site. A property manager might oversee forty buildings. A facilities team might have a dozen locations under one account. The technician who did the last PM at 340 Progress Ave in Scarborough needs to know what was found, what was deferred, and what's still quoted but not sold, before he drives across the 401 to get there.
If the customer record and the site history are separate, someone has to go look up both. And in a busy shop, that lookup either doesn't happen or falls to whoever has time, which is rarely the right person at the right moment.
What We Built Instead
In PolarPath, the customer record is not a contact card. It is a continuous operational file that connects the customer, every site they have, and every event that has ever touched those sites: service history, open quotes, active work orders, past invoices, notes, and outstanding opportunities.
When a new call comes in, intake creates or updates that record immediately. The open quote doesn't live in an estimator's email drafts. It sits in the pipeline, attached to the site, visible to dispatch and finance at the same time.
The mechanic looks like this in practice:
- Intake logs the opportunity against the customer and the specific site address.
- The pipeline stage is set (new inquiry, quote sent, follow-up pending) and it stays visible until someone actively moves it forward or closes it out.
- Dispatch can see the site history alongside the open quote. If a tech is being sent for a related service call, they already know there's an unsold quote for equipment replacement at that address.
- Finance can see what's open without calling the estimator. The opportunity, the site, and any prior invoices are in the same record.
Nothing in that sequence depends on anyone remembering to tell anyone else. The handoff is structural, not social.
The Tradeoff We Made Consciously
Combining intake, CRM, and site history into a single record does add some complexity to setup. You have to think about your site hierarchy upfront: is this customer billed at one address, or are there multiple locations under a single account? That's a question a pure contact database never asks you.
We decided that complexity at setup is worth it, because the alternative is complexity at every handoff, forever. A contractor who takes ten minutes to set up a customer's location structure correctly will never have a dispatcher say "I didn't know there was an open quote there." A contractor running separate systems for contacts, quoting, and dispatch will have that conversation on repeat.
This is the core of the design principle: put the friction where it belongs. Upfront, with the person setting up the record, once. Not downstream, with the technician on the road, the estimator chasing context, or the controller trying to reconcile what got invoiced.
What This Means for Mixed-Model Shops
This matters most for contractors who run both service and projects out of the same operation, which is most of the shops we built this for: HVAC companies doing both preventive maintenance contracts and equipment replacement projects, electrical contractors handling both emergency service calls and multi-phase commercial builds, mechanical contractors juggling reactive work orders and capital project scopes.
In a mixed model, the same customer will have service history, active project work, and open sales opportunities all existing at the same time. A CRM that only tracks contacts and a dispatch board that only tracks work orders will never show you that picture in one place. Someone always has to assemble it manually.
PolarPath's customer intake and CRM is designed so that picture is assembled once, at intake, and then maintained automatically as work flows through the system. The opportunity pipeline is not a separate sales tool bolted on the side. It is the same record dispatch reads when scheduling and finance reads when invoicing.
The Practical Takeaway
If follow-up at your shop currently depends on who remembers, the fix is not a reminder app or a better notebook. The fix is making the opportunity visible to everyone who needs to act on it, attached to the site and the history that gives it context.
Whether you use PolarPath or not, the question to ask about your current setup is: can your dispatcher see an open quote while scheduling a service call to the same address? Can your controller see outstanding opportunities without calling the estimator?
If the answer is no, you don't have a CRM problem. You have a handoff problem dressed up as a CRM problem. Solving it means the record, not the person, carries the context.
That is the decision we built into PolarPath from the start. It shapes every other part of how the platform works.
See how it fits your shop at polarpath.ca.

