Work sample 11 / 17Sales pipeline and quoting
HubSpot and Jobber quote pipeline for a landscaping and hardscaping business
How I'd approach a Melbourne landscaping and hardscaping business that gets enquiries from six sources, tracks them in HubSpot and quotes in Jobber, so that every enquiry has a deal, every quote is linked to its deal, and the owner can see what each lead source actually brings in.
- Area
- Sales pipeline and quoting
- Tools
- HubSpot · Jobber · Zapier
- Typical scope
- US$2,000–3,500
- Timeline
- About 6 weeks, 4 milestones
Work sample: realistic data, not a past client job. Amounts are in AUD and GST is 10%.
01The problem
A landscaping and hardscaping business gets enquiries from Google ads, Facebook and Instagram, its website form, referrals, a lead marketplace and repeat customers. The leads go into HubSpot. The quotes are written in Jobber, because that is where the site visits, jobs and invoices live. The two systems do not talk, so the status of a quote is whatever somebody last typed into HubSpot.
Owners usually notice it like this:
- A lead has a site visit and then nothing happens, because the quote never gets written
- HubSpot says a deal is won but there is no job in Jobber, or the other way round
- Nobody can say which lead source produces jobs rather than just enquiries
- The same customer is in HubSpot twice, once by phone number and once by email
In this sample, over 12 months (October 2025 to September 2026) there were 1,500 deals and 1,100 Jobber quotes. 120 deals reached the site visit stage and never got a quote. 41 deals had no owner. 23 deals were marked won in HubSpot with no job in Jobber, and 212 quotes had a status in HubSpot that did not match Jobber.
02The outcome
This is what the setup does and delivers:
- A single stage map that says what each HubSpot stage means in Jobber, agreed with the owner and the estimators
- Zapier flows that create the Jobber client and request when a site visit is booked, then write the quote number, amount, status and job number back to the HubSpot deal as the quote moves through Jobber
- Contact matching rules that look for an existing contact by email, then by phone, before anything is created
- Every deal has an owner, assigned by rule
- A weekly list of deals at the quote stage with no quote, and of quotes waiting too long for a reply
- A win-rate view by lead source, by job type and by month
- A one-page routine for the estimators and one for the office
03Scope
| Deliverable | What's included | Notes |
|---|---|---|
| Health check of leads and quotes | Review of a recent export from HubSpot and from Jobber, the current stages, lead sources and contact records; findings, risk list and a fixed quote | US$300, and the findings are yours to keep. If the findings change the plan, I re-quote before M2 |
| Pipeline and stage map | HubSpot deal stages, required properties, lost reasons, and a one-page map of what each stage means in Jobber | Agreed with the owner and estimators in M1 |
| Zapier flows | Flows between HubSpot and Jobber for client and request creation, quote created, quote sent, quote approved and job created | Jobber triggers used: New Quote Created, Quote Sent, Quote Approved, New Job Created. Jobber does not offer a trigger for a quote that is declined or sent back for changes |
| Contact and duplicate rules | Matching by email, then phone, then name and suburb (for review only); clean-up of existing duplicates | Merges are reviewed by a person before they are done |
| Owner assignment and follow-up | Owner by rule, a task when a deal has sat at the quote stage with no quote, and a follow-up task when a quote has had no reply | Built as HubSpot workflows, so they do not depend on Jobber. Rotating owners needs a HubSpot plan that supports it; otherwise the Zap assigns the owner |
| Lead source reporting | HubSpot report or a Google Sheet showing deals, quotes, win rate and won value by source | Based on quotes marked won or lost, with open quotes shown separately |
| SOPs and handover | One-page routines for estimators and the office; recorded walkthrough | Written to match how the team already works |
| Not included | A website rebuild, ad management, invoicing or accounting set-up, and Jobber features outside quotes and jobs | Zapier and HubSpot plan costs are the business's own. Jobber's Zapier link is available on certain Jobber plans, which I check in M1 |
Not included: payroll, STP or BAS lodgement.
| Item | Volume |
|---|---|
| Period | 12 months to 30 September 2026 |
| Deals in HubSpot | 1,500 |
| Lead sources | 6 |
| Jobber quotes | 1,100 ($19,501,750 ex GST) |
| Deals with a site visit but no quote | 120 |
| Deals with no owner (old process) | 41 |
| Duplicate contact pairs (old process) | 63 |
| Test month | September 2026, 157 deals, 180 quote events |
04Walkthrough
4.1 The stage map
Each HubSpot deal stage means something specific in Jobber, and the rules are written on one page so the office and the estimators work to the same picture.
Lost deals are handled by people, not by a trigger. The Jobber link has no trigger for a declined quote or a quote sent back for changes, so a lost reason is required in HubSpot, and a weekly list shows any quote that has been waiting for a reply for more than 45 days so it can be closed in both systems.
4.2 Zapier flows
How a quote finds its deal: the quote title in Jobber begins with the HubSpot deal ID, for example "[HS 412320461] Retaining wall, Essendon". The deal ID is also written as a note on the Jobber request, so a person can find it. The Zap reads the ID from the title. I do not rely on a feature that carries the deal ID from the request into the quote on its own, so the first month is checked closely.
4.3 Contact and duplicate rules
Existing duplicates are cleaned up in M2. In the sample, 63 pairs were found:
4.4 Field mapping
4.5 One deal from enquiry to job
Take Retaining wall, Essendon, a referral lead for $14,600.00 ex GST ($1,460.00 GST, $16,060.00 inc GST).
4.6 The funnel and the sources
Of the 280 deals closed before a quote, 82 were out of the service area, 74 did not respond, 66 had a budget that was too low and 58 were DIY or not proceeding. Of the 592 quotes that were lost, 134 chose another quote on price, 141 postponed, 166 did not respond to follow-up and 151 changed scope.
Win rate is the quotes won divided by quotes won or lost, so open quotes do not distort it.
By month:
The 387 won deals total $7,011,600.00 ex GST, $701,160.00 GST and $7,712,760.00 inc GST.
4.7 Test month (September 2026)
One month runs through the new flows before handover. For each quote event in Jobber (quote sent, approved, job created), the time in Jobber is compared with the time the HubSpot deal was updated:
The longest delay was 13 minutes and the average was 7.0 minutes. The target is 15 minutes or less, which depends on the Zapier plan's polling interval, so I confirm it in M1. The full log is in sync_log_sep_2026.csv.
05Checks
| Check | Before (deals created Oct to Aug) | After (test month, Sep) | Status |
|---|---|---|---|
| Every deal at the quote stage has a Jobber quote | 973 of 1,093 deals | 127 of 127 deals past the site visit stage | PASS |
| Every won deal has a Jobber job | 349 of 372 won deals | 29 of 29 jobs written back to their deal | PASS |
| Quote status in HubSpot = Jobber, within 15 minutes | 761 of 973 quotes in step | 180 of 180 events, longest 13 minutes | PASS |
| Every deal has an owner | 1,302 of 1,343 deals | 157 of 157 deals | PASS |
| No new duplicate contacts | 63 pairs found | 0 new pairs | PASS |
The 41 deals with no owner before the fix are the ones marked "no owner" in the old_process_issue column; the deal_owner column shows the owner assigned after the clean-up.
06Milestones
| Milestone | What happens | Rough duration | What is signed off | Share |
|---|---|---|---|---|
| M1 · Health check and stage map | Health check (US$300), a review of HubSpot and Jobber exports, stage map, lost reasons and matching rules agreed | About 1.5 weeks | Findings, stage map and fixed quote | 25% |
| M2 · Flows built | HubSpot properties and stages, the six Zapier flows, owner assignment, duplicate clean-up, the weekly lists | About 2.5 weeks | A test enquiry taken through to a job and a won deal | 40% |
| M3 · Test month | A month of live enquiries run through the new flows, checks reviewed, win rate by source report built | About 1.5 weeks, plus the month running | The five checks pass and the first source report is reviewed | 25% |
| M4 · Handover | SOPs, walkthrough recording and a short review | About 0.5 week | Owner and estimators confirm they can run it | 10% |
The fixed quote follows the US$300 health check, so the price is based on what is actually in your files. If the health check changes the plan, I re-quote before M2.
Typical scope for this kind of project: US$2,000–3,500.
About 6 weeks, 4 milestones. Your software subscriptions are billed to you by the vendors.
07Handover
- A one-page stage map
- The six Zapier flows, documented, with the matching rules
- HubSpot workflows for owner, no-quote and follow-up tasks
- A weekly list of quotes to close out in both systems
- A lead source report
- One-page routines for estimators and the office
- A recorded walkthrough
- Prepared by Manaz Afzal
08Files
A screen from the sample workbook, then every file in the work sample. Select the image to open it full size.

hubspot-jobber-quote-pipeline.xlsx › Summary
| File | What it is | Size |
|---|---|---|
| hubspot-jobber-quote-pipeline.xlsx | Workbook with 9 tabs (Read me, Summary, HubSpot deals, Jobber quotes, Sync log Sep 2026, Duplicates before, Sources, Months, Funnel). The Summary tab lines up every figure on this page with a live formula | 247.3 KB |
| hubspot-jobber-quote-pipeline.pdf | This work sample as an A4 PDF (8 pages) | 318.7 KB |
| hubspot_deals.csv | 1,500 deals with source, owner, stage, amount, Jobber quote and job, and the issues in the old process | 225.3 KB |
| jobber_quotes.csv | 1,100 quotes with deal ID in the title, status, GST and totals | 121.3 KB |
| sync_log_sep_2026.csv | 180 quote events in the test month with the delay in minutes | 14.8 KB |
| contact_duplicates_before.csv | 63 duplicate contact pairs and the action for each | 8.1 KB |
Tell me what’s bugging you and I’ll tell you where I’d look first.
Send a short note on Upwork about what is slowing the business down. I’ll reply with where I’d start, and whether the US$300 Systems Health Check is the right first step.