---
title: "Jobber Price List Sync: CSV vs Two-Way Sync"
description: "Jobber price list sync can mean CSV re-imports or mapped updates. Compare both workflows, duplicate risk, and a safe supplier-cost update process for your shop."
author: "Pricebookr Team"
date: "2026-09-21"
tags: "jobber, price book, pricing, catalog sync"
source: "https://www.pricebookr.com/blog/jobber-price-list-sync"
---

# Jobber Price List Sync: CSV vs Two-Way Sync

**A Jobber price list sync is safest when one system owns pricing and Jobber receives deliberate, mapped updates.** Jobber's native bulk workflow is CSV export and re-import; a connected master price book can instead link records and push only real changes. Neither should be mistaken for an automatic supplier feed.

## What does Jobber price list sync actually mean?

"Sync" can describe three different jobs: copying a spreadsheet into Jobber, moving current prices from a master price book into Jobber, or pulling vendor costs from a supplier catalog. Those are not interchangeable.

Jobber calls its saved catalog the Products & Services list. Its [official documentation](https://help.getjobber.com/en/articles/products-services-list/) describes a default price list containing names, descriptions, unit prices, tax status, category, active status, and—on select plans—unit costs. The documented bulk-update method is to export that list, edit the CSV, and re-import it with existing-item updates enabled.

That workflow is useful. It is still a batch import, not a persistent record-level connection. A mapped sync remembers that one price-book row corresponds to one Jobber product. The next push can update that record instead of trying to identify it again from spreadsheet text.

The third meaning is supplier connectivity. ServiceTitan's official [Pricebook Connect documentation](https://help.servicetitan.com/v1/docs/update-your-pricebook-with-pricebook-connect) describes provider-catalog updates that can be reviewed, dismissed, or applied automatically. Housecall Pro's current [bulk service-cost documentation](https://help.housecallpro.com/en/articles/16543323-bulk-update-service-costs-in-price-book) describes a feature that is rolling out gradually. Those products solve adjacent parts of the problem; neither changes what Jobber's own CSV workflow does.

## When is a Jobber CSV update enough?

CSV is enough when the list is small, price changes are infrequent, and one person controls the file from export through import. It is also the most direct native option when you do not want another system holding the catalog.

Jobber says exports with fewer than 50 products or services download immediately. Larger exports arrive by email, and lists over 1,500 items are split into files of 1,500 or fewer. That is a practical dividing line: the workflow changes from "edit one file" to "coordinate several files" as the catalog grows.

Use the existing [step-by-step Jobber CSV guide](https://www.pricebookr.com/blog/how-to-bulk-update-jobber-price-list) for column formatting and import mechanics. The larger decision is whether the spreadsheet remains the source of truth after the upload. If it does, every future change must begin with a fresh export or a carefully maintained master file.

CSV has one important advantage: it is visible. You can archive the input, inspect every row, and keep it offline. Its weakness is identity. Names, rows, and files must stay aligned across runs. A rename mixed into a repricing pass can make it harder to tell whether a row is an update or a new catalog entry.

## How does a mapped two-way sync differ from CSV?

A mapped sync stores the remote Jobber product ID beside the local item and pricebook. That durable link is the difference between "update this exact product" and "find something that looks like this row."

Pricebookr's shipped Jobber flow is deliberate rather than continuous. You click import to read Jobber and click push to write back; there is no timer changing prices in the background. The [Jobber import documentation](https://www.pricebookr.com/docs/import-from-jobber) explains how imported names, descriptions, costs, and unit prices are handled. The [push documentation](https://www.pricebookr.com/docs/push-prices-to-jobber) explains changed-only pushes, full pushes, and individual-item sync.

Each synced pricebook is opt-in. The default book keeps the clean product name. A second synced book creates a separate Jobber product named with the pricebook suffix, such as `Contactor Replacement (Wholesale)`. That avoids pretending Jobber has multiple prices on one product while still giving a tech distinct line items to choose from.

The push is incremental. Pricebookr hashes the last payload sent for each mapped item-price, so an unchanged repeat push can be skipped. Import follows the opposite direction for edits made in Jobber: linked products update in place, and a Jobber rename is adopted on import. Direction matters—import reads Jobber; push writes the master catalog back.

## What happens after a supplier raises costs?

The safe sequence is cost first, rule second, preview third, push last. Do not apply a blanket selling-price percentage until you know whether each line is cost-based, hand-set, or missing cost data.

The table below is a **worked example**, not a market benchmark. Assume one supplier raises the cost of four HVAC parts by 8%. Retail prices follow the stated markup; wholesale prices use a lower markup.

| Item | Old cost | New cost (+8%) | Retail rule | Old → new retail | Wholesale rule | Old → new wholesale |
| --- | --- | --- | --- | --- | --- | --- |
| Dual-run capacitor | $50.00 | $54.00 | 50% markup | $75.00 → $81.00 | 30% markup | $65.00 → $70.20 |
| Contactor | $80.00 | $86.40 | 50% markup | $120.00 → $129.60 | 30% markup | $104.00 → $112.32 |
| Blower motor | $280.00 | $302.40 | 40% markup | $392.00 → $423.36 | 25% markup | $350.00 → $378.00 |
| Compressor | $1,150.00 | $1,242.00 | 30% markup | $1,495.00 → $1,614.60 | 20% markup | $1,380.00 → $1,490.40 |

The formula is cost × (1 + markup ÷ 100). If you mean margin instead, the math is different; use the [markup-versus-margin guide](https://www.pricebookr.com/blog/markup-vs-margin-for-contractors) rather than substituting one percentage for the other.

A cost-band schedule can apply different rules to low- and high-cost parts. That prevents a $50 capacitor and a $1,150 compressor from carrying the same markup just because they came from the same supplier. The [material markup by cost band guide](https://www.pricebookr.com/blog/material-markup-by-cost-band) covers that pricing decision in detail.

## How should a sync preview handle manual prices and missing costs?

A useful preview explains what will not change. Imported Jobber prices begin as manual prices because a person set those numbers in Jobber. Cost-derived rules should not silently replace them until you deliberately move eligible lines onto a schedule. Items with zero cost must also keep their current selling price; zero is not enough information to calculate a cost-based price.

Here is a second **worked example** for a 1,000-item catalog after a supplier update. The counts illustrate the review buckets; they are not claimed benchmarks.

| Preview bucket | Item count | Result |
| --- | --- | --- |
| Schedule-governed items with usable costs | 620 | Recalculate and include in the proposed push |
| Deliberate hand-set prices | 180 | Protect; change only after explicit review |
| Items with no usable cost | 120 | Skip cost-based repricing; retain current price |
| Items outside the affected supplier/category | 80 | Unchanged |
| **Total catalog** | **1,000** | **620 proposed changes; 380 explained non-changes** |

The goal is not to make all 1,000 rows change. The goal is to account for all 1,000 rows. A preview that names changed, protected, skipped, and unaffected records is more trustworthy than a success message with one large number.

## How do you avoid duplicate Jobber products?

Keep identity separate from display names. With CSV, begin from a fresh Jobber export, update one concern at a time, and do not combine renaming with repricing. With mapped sync, preserve the stored Jobber product ID and use name matching only as a first-import fallback.

For multiple pricebooks, choose a naming convention before the first push. A default `Contactor Replacement` and a second `Contactor Replacement (Wholesale)` are intentionally two Jobber products linked to one catalog item and two price records. A stray duplicate with the same purpose is different; it has no reliable ownership and should be reconciled before more pushes.

After a change, inspect a small set in Jobber: one low-cost part, one high-cost part, one hand-set price, one item with no cost, and one non-default pricebook copy. Five purposeful checks reveal more than five random rows.

## Which workflow should a Jobber shop choose?

Choose CSV when the catalog is small enough to review comfortably, updates happen a few times a year, and one archived spreadsheet is an acceptable operating system. Choose mapped sync when the catalog has hundreds or thousands of lines, multiple pricebooks must stay distinct, supplier changes happen regularly, or you need an audit trail for why a price moved.

The honest cutoff is operational, not technical. A shop with 80 stable items may be better served by Jobber alone. A shop with 1,000 items, retail and wholesale pricing, manual exceptions, and quarterly supplier changes has an identity-and-governance problem that a spreadsheet upload does not solve.

[Pricebookr](https://www.pricebookr.com/) is built for that second case: one master catalog, explicit import and push, mapped Jobber records, pricing schedules, protected manual prices, and a preview before changes leave the system. Keep Jobber as the place the crew quotes from; keep one accountable source for what every line should cost.

## FAQ

### Does Jobber have a price list?

Yes. Jobber's Products & Services list is its saved default price list for quotes, jobs, and invoices. It stores item names, descriptions, unit prices, categories, tax status, active status, and—on eligible plans—costs. Updating a saved item does not retroactively change the same line already placed on an existing quote, job, or invoice.

### Does Jobber automatically sync supplier price changes?

Not through the standard Products & Services CSV workflow. Jobber documents exporting the list, editing values, and re-importing the file. Treat supplier changes as a controlled update: verify new costs, recalculate governed prices, review exceptions, then import or push. Do not assume a CSV-backed list is continuously connected to a distributor catalog.

### Can I sync more than one pricebook to Jobber?

Yes, if the connected price-book system represents each item-price as a distinct Jobber product. In Pricebookr, the default pricebook uses the clean item name, while another synced book adds its name as a suffix, such as `Contactor Replacement (Wholesale)`. Each pricebook must be explicitly enabled for Jobber sync.

### Will a Jobber price list sync overwrite manual prices?

It should not do so silently. A safe master-price-book workflow marks imported or directly entered prices as manual overrides, shows them in the preview, and requires an explicit choice before a cost-based schedule takes control. Items without usable costs should also retain their existing price instead of being recalculated from zero.

### How often should I sync my Jobber price list?

Sync when the source data changes, not merely because a timer fires. Run the workflow after a verified supplier increase, a pricing-rule change, or an approved catalog edit. Before pushing, review the changed count and the protected or skipped groups; after pushing, spot-check representative products in Jobber.
