Pricing & pricebooks
Prepare a Plumbing Pricebook Import Spreadsheet Safely
Prepare an import file by preserving the original export, mapping fields explicitly, and testing a small sample. Never guess that an unknown price means zero or that every similarly named field has the same meaning in the destination software.
In this guide
Treat the original file as evidence
Save an untouched copy of the source export. Make changes in a working copy and retain a mapping note explaining how each source field is handled. That gives you a way to investigate problems without reconstructing the original data from memory.
This is a vendor-neutral preparation guide. It does not assert that GoPlumber or another platform accepts every column shown below. Check the destination's actual supported import fields and validation messages before uploading business data.
Build an explicit mapping table
| Source concept | Destination decision |
|---|---|
| Service code | Preserve as a stable identifier where supported |
| Display name | Map to a name, not automatically to the full description |
| Customer description | Keep customer-facing wording separate from internal notes |
| Unit | Preserve each/hour/visit/service meaning |
| Cost | Do not confuse with selling price |
| Tax classification | Review with the appropriate accounting setup |
| Active status | Do not activate retired or unfinished items accidentally |
Keep unmapped fields in an accompanying archive or documented metadata process. Do not silently discard specifications, supplier references, or scope notes simply because the first import screen does not show a matching field.
Use a staging spreadsheet
source_system,source_item_id,service_code,name,description,unit,cost,selling_price,active,review_status
SOURCE,ID-EXAMPLE,CODE-EXAMPLE,Example service,Replace with reviewed scope,each,,,false,needs_price_review
The example intentionally leaves unknown numeric values blank. A blank cost is not the same as zero cost, and a blank selling price is not an offer to perform the work free of charge.
Keep identifiers as text so leading zeros survive. Check decimal separators, currency symbols, and whether amounts are stored in major units such as dollars or smaller units such as cents.
Check duplicates by identity and meaning
Two rows with the same service name may be different items with different scope or units. Conversely, two differently named rows may describe the same service. Review both the identifier and the meaning before merging.
For an illustrative example, “Service visit” priced per visit and “Service labor” priced per hour should not be merged merely because their names look similar. The unit changes how an estimate calculates the charge.
Do not reuse a retired item's code for a new unrelated service. Historical estimates may still depend on that reference.
Test a representative sample
Include a normal item, a long description, an inactive item, a leading-zero code, and a row with missing information. Check how the destination handles each case before importing the full list.
Create a test estimate from the imported item and inspect the customer-facing output. A successful upload message does not prove that descriptions, units, or prices were mapped correctly.
Confirm whether an import creates new items, updates matching items, or can do both. Do not rerun a full file until you understand the matching rule; otherwise, a retry may create duplicates.
Reconcile the result
Compare record counts, active-item counts, identifiers, and a sample of prices and descriptions. Keep an exception list for rejected, ambiguous, or unsupported rows.
Only make the imported catalog available to the team after those checks are resolved. The goal is a reviewed working pricebook, not merely an upload that finished without an error message.
Sources and editorial notes
Product and documentation references checked September 29, 2026. GoPlumber publishes this guide about its own product category. Examples and templates are original illustrative material, not customer case studies or market benchmarks. Confirm current vendor terms before acting.