Work sample 12 / 14CRM to job-system pipeline
HubSpot to Jobber quote-to-job pipeline
How I'd approach the pipeline for a landscaping and grounds company that sells in HubSpot and quotes in Jobber, so each inquiry has one deal, linked to its quote and reused when the quote becomes a job.
Worked example on representative data.
- Area
- CRM to job-system pipeline
- Tools
- HubSpot · Jobber · Zapier
- Typical scope
- US$2,500–4,000
- Timeline
- About 4 weeks · 4 fixed milestones
01Context
An established landscaping and grounds company with several crews. Sales are led by a sales manager in HubSpot, and quotes and jobs are run in Jobber. Zapier flows connect the two.
The systems in play
In the example the company wants to know which lead sources turn into quotes and jobs, and to stop the same customer appearing as several deals.
| System | What it does for the business |
|---|---|
| HubSpot | Contacts, deals and lead source. The sales manager works the pipeline here. |
| Jobber | Requests, quotes, jobs and invoices. Crews and the office work here. |
| Zapier flows | Create the Jobber quote from the deal and link it back. Reuse the same deal when a quote becomes a job. |
| Sync log | A table that records each create and update with the deal ID and the quote number. |
02Problem
What the owner sees
- No answer to which lead sources are worth paying for
- The same customer showing as two or three deals
- Quotes in Jobber with no deal behind them
- Revised quotes that never reach the pipeline
When quotes and jobs are created by separate flows, each flow tends to create its own deal. The pipeline then counts one customer several times.
| Everyday situation | What goes wrong |
|---|---|
| Repeat customer | A second inquiry creates a new contact and a new deal |
| Revised quote | The change creates a new deal instead of updating the first |
| Declined quote | The deal stays open, so the pipeline is overstated |
| Quote becomes a job | A second flow creates a second deal for the same work |
| Customer with two properties | One contact, two sites, and a deal for each with no link |
| Edited or deleted quote | The deal keeps the old amount or points at a quote that no longer exists |
03Approach
Four steps, in this order. Each one ends with a result that is checked.
- LookA read-only review of the HubSpot pipeline, the Jobber quotes and the existing flows. Nothing is changed.
- Agree the rulesWhat counts as one deal, what each stage means, and how a customer is matched, are written down.
- Set up and connectFlows are rebuilt around one deal per inquiry, with the Jobber quote and job linked to it.
- CheckA weekly list shows inquiries with no quote, quotes with no deal and duplicate deals, with win rate by lead source.
| HubSpot deal stage | Meaning | Moves when |
|---|---|---|
| New inquiry | A request exists in Jobber or a form was submitted | The deal is created |
| Quote sent | A Jobber quote has been sent | The quote is sent |
| Won | The quote was approved | The quote is approved in Jobber |
| Lost | The quote was declined or expired | The quote is declined, with a reason |
| Scheduled | A job exists for the approved quote | The job is created |
04What the setup includes
What the setup includes, and why each piece is there. The detail of how it is configured is agreed in the scoping call.
Show the setup, layer by layer
| Layer | What is set up and why |
|---|---|
| One deal per inquiry | The deal is created once. Later events find it by its ID and update it. |
| Contact matching | A customer is matched on email first, then phone. A match reuses the contact and its property. |
| Quote link | The Jobber quote number is stored on the deal, and the deal ID is stored on the quote, so each side can find the other. |
| Quote changes | A revised quote updates the amount on the same deal and records the version. |
| Quote to job | When a quote becomes a job, the job is linked to the same deal. No second deal is made. |
| Lead source | Carried from the first inquiry and never overwritten, so the win rate is by original source. |
| Sync log and exceptions | Each action is recorded. A failed step goes to an exceptions list, and nothing is retried in a way that could create a second deal. |
How the data moves
- Inquiry
- Contact matched or created
- One deal
- Jobber request and quote
- Deal updated on revision
- Quote approved or declined
- Job linked to the same deal
05Edge cases
These are agreed with the sales manager and tested with scripted scenarios before go-live.
| Situation | How it is handled |
|---|---|
| Repeat customer | The contact is reused. A new inquiry opens a new deal only if the earlier one is closed. |
| Revised quote | The same deal is updated. The amount history stays on the deal. |
| Declined quote | The deal moves to Lost with a reason. A later reopen moves it back and is logged. |
| Several quote options for one inquiry | One deal, with each option recorded by quote number |
| Customer with two properties | One contact. Each property is a separate deal, linked by the contact. |
| Quote deleted in Jobber | The deal is flagged for review and is not closed automatically |
| Deposit on a quote | Taken and tracked in Jobber. The deal records that a deposit was requested. |
| Two people create the same deal | The second attempt finds the first by contact and inquiry ID, and updates it |
| Company with its own Jobber account | Linked to its own HubSpot pipeline, with a company property on the deal |
| Who changed what | Each create and update is in the sync log with the deal ID, the quote number and the time |
06Worked example
The tables below use one quarter on representative data. They show the shape of the report, not a client result.
| Event | Before | After |
|---|---|---|
| Inquiry from a repeat customer | A second contact and deal | The first contact reused, a new deal for the new site |
| Quote Q-2210 sent at US$18,500 | A deal created | The deal updated with the quote number |
| Quote revised to US$16,900 | A new deal created | The same deal updated, version 2 recorded |
| Quote approved, job J-612 created | A second deal created | The deal moved to Won, with the job linked |
| Lead source | Inquiries | Quotes | Won | Won per quote |
|---|---|---|---|---|
| Website form | 40 | 22 | 11 | 50.0% |
| Referral | 18 | 15 | 10 | 66.7% |
| Paid search | 25 | 12 | 3 | 25.0% |
| Builder partner | 9 | 8 | 5 | 62.5% |
| Total | 92 | 57 | 29 | 50.9% |
| Item | Reason | Owner |
|---|---|---|
| Inquiry from 6 days ago | No quote yet | Sales manager |
| Quote Q-2226 | No deal linked | Sales manager |
| Two deals for one contact | Found by the duplicate check | Sales manager |
| Deal D-3318 | Quote deleted in Jobber | Office manager |
07How the result is checked
The flows are tested on scripted scenarios before go-live, and the same checks run weekly afterwards.
| Check | How | Pass condition |
|---|---|---|
| New inquiry | A scripted inquiry from a new customer | One contact, one deal, one request |
| Repeat customer | The same customer inquires again | Contact reused, no duplicate contact |
| Revised quote | A quote is changed after sending | The same deal is updated |
| Declined quote | A quote is declined with a reason | Deal Lost, with the reason |
| Quote to job | A quote is approved and a job is made | Deal Won, job linked, no second deal |
| Weekly list | Inquiries with no quote, quotes with no deal, duplicate deals | Each item has an owner |
08Scope and milestones
A fixed scope agreed in writing before anything starts. Each milestone is paid when you sign off its deliverable.
| Area | Included |
|---|---|
| Health Check | Review of the pipeline, the Jobber quotes and the current flows, a 45-minute call, written findings and a fixed quote |
| Rules | One deal per inquiry, stage meanings and matching rules, in writing |
| HubSpot set-up | Stages, properties for the quote number and lead source, and a duplicate check |
| Jobber and Zapier | Flows rebuilt around the one deal, with a sync log and an exceptions list |
| Cleaning up deals | Existing duplicate deals listed and merged after sign-off |
| Report | A weekly list and win rate by lead source |
| Handover | Written SOPs, a recorded walkthrough and files you own, plus 14 days of fixes after go-live |
| Not included | Tax filing or payroll. |
| Also outside the scope | Changing how quotes are priced. Moving to a different CRM or job system. Software subscriptions (billed to you by the vendors). |
| Milestone | Deliverable | Timing | Share |
|---|---|---|---|
| M1 Health Check and rules | Findings, a fixed quote and the rules in writing | Week 1 | 20% |
| M2 HubSpot and flows | One deal per inquiry working on a test set | Weeks 2 to 3 | 35% |
| M3 Scenarios and clean-up | Scripted scenarios pass, duplicate deals cleared | Week 3 | 30% |
| M4 Report and handover | Weekly list, win rate by source, SOPs, walkthrough, 14 days of fixes | Week 4 | 15% |
Typical scope for this kind of project: US$2,500–4,000
About 4 weeks across 4 fixed milestones. The Systems Health Check (US$300, fixed) comes first and confirms the scope.
Describe what is going wrong between your job system and your books, and I'll say where I'd look first.
Send a short note through the form on the home page. I will reply with where I would start, and whether the US$300 Systems Health Check is the right first step.