Import Your Inventory from QuickBooks
Pull your QuickBooks Online (QBO) Products & Services list into MonuDesk, keep prices and stock counts in step both ways, and create a product for an order line without leaving the wizard.
Written By Dennis Rodin
Last updated 10 days ago
If you already keep your stones, vases and services in QuickBooks Online (QBO), you do not have to type them into MonuDesk a second time. Open Inventory and click Sync with QuickBooks to pull your QuickBooks Products & Services list across, matched against what you already have. The same run starts from Settings → Integrations → Inventory sync with Sync now.
After the first import the two stay in step: edits you make in MonuDesk push back to QuickBooks automatically.
Keep your stock list in a spreadsheet rather than QuickBooks? Use the Inventory card in Settings → Import instead: upload a .csv or .xlsx file and check what MonuDesk found before anything is imported. See How to Import Your Data from a Spreadsheet.
Pro feature. Inventory and the QuickBooks integration are included with the MonuDesk Pro plan.
What the import does
The import reads every item on your QuickBooks Products & Services list and, for each one, does one of three things: links it to a stone you already have in MonuDesk, creates it as a new inventory item, or holds it back and asks you. Nothing uncertain is written behind your back.
Money does not travel this way. Invoices, receipts and payments still flow one way only, MonuDesk to QuickBooks. Inventory is the part that moves in both directions.
Before you start
QuickBooks has to be connected for the office you are importing into. Go to Settings → Integrations and check that the QuickBooks Online card reads Connected to your QuickBooks company name. Until then the sync control does not appear on the Inventory page at all, and the QuickBooks Online card in Settings carries a grey Not connected badge.
If your company runs more than one office, the import is per office. Pick the office in the header's office switcher first. That decides which QuickBooks company is read, which office's stock counts are set, and which review queue the held items land in. An office with no QuickBooks connection is simply not importable; switch to it and connect it first.
Check how your QuickBooks writes sizes
MonuDesk stores every size as Width x Height x Thickness. If your QuickBooks item names put those three numbers in a different order, every item comes in with its dimensions in the wrong boxes, which then matches the wrong stones on quotes and takes the wrong stone off your shelf. Set Dimension order in QuickBooks in Settings > Integrations > Inventory sync before your first import. All six orderings are offered, the default is Width x Height x Thickness, and it is one setting for your whole company. It only affects future imports, so items already in MonuDesk are left exactly as they are, and a size with only two numbers, such as 4x8, is never rearranged, because there is no way to tell which dimension is missing.
Run the import
Open Inventory from the main navigation.
If you have more than one office, choose the office in the switcher at the top of the app.
Click Sync with QuickBooks, on the right of the search and filter bar.
MonuDesk asks you one question before it starts: Check dimension order before importing. A QuickBooks item name like Bevel 24x10x4 Emerald Pearl does not say which number is the width, which is the height and which is the thickness, so you tell it. Pick the order your QuickBooks uses and the popup shows you a worked example of how a sample size will be read, as Width, Height and Thickness. Click That's correct - import to start, or Cancel to back out. The same popup appears whether you start the import from the Inventory page or from Settings > Integrations, and your answer is saved, so you only change it if it is wrong.
The button turns into a live counter (Syncing… 42/318) and the work runs on the server, not in your browser. You can close the tab, go and answer the phone, and come back: when you reopen the Inventory page the counter picks up where it is. Only one import can run per office at a time, so a second click while one is running is refused with "An inventory import is already in progress for this office."
After that, matches MonuDesk is sure about are written straight away, and everything it is not sure about waits for you.
Read the summary
When it finishes, a Sync complete toast sums the run up, for example Went through 318 QuickBooks records - created 214, linked 91, 27 need matching. The pill beside the button turns green and reads how long ago it synced. Here is what each word means:
Created - a QuickBooks item with no counterpart in MonuDesk. A new inventory row was made for it.
Linked - a QuickBooks item matched to a stone you already had, and the two were tied together for the first time.
Skipped - nothing was done. Usually a QuickBooks item with no name, an item you deleted in MonuDesk (a delete is never undone by an import), or one you chose to skip in the review queue previously.
Need matching - held for you to decide. No inventory row was created for these.
If any items need matching, an amber banner appears above the inventory tabs with a Review now button. See Review Uncertain QuickBooks Matches for that screen.
Download the report - you get one shot
Next to the button is Download report. It saves inventory-import-report.csv: a row for every item in your inventory plus every item still waiting for review, with its SKU, name, category, size, color, price, cost and quantity, whether it came from QuickBooks or MonuDesk, which rule matched it, what the import did with it, and the reason.
Save that file. The report for an import can be downloaded once. After you download it the button disappears for that import and does not come back. Open it in Excel and keep it. It is the record of how every item was matched.
How MonuDesk decides what matches
Every shop names items its own way. 0-2x0-2x0-2 Academy Black Bevel, Bevel - Academy Black and 2*2*2 all mean something to you and nothing to a computer. MonuDesk tries the safest signals first and only falls back to guessing at the end:
Already linked - the item was matched by a previous import. Straight update.
SKU - the QuickBooks SKU equals a MonuDesk SKU.
Exact QuickBooks name - the item name matches the name a linked item was imported under, ignoring case and punctuation.
Attributes - same category and same dimensions, confirmed by piece type, material, shape, photo type and stone color. One clean winner is linked automatically; a tie, or a field that disagrees, sends the item to review.
Every way of writing a size is boiled down to one form first, so 0-2x0-2x0-2 (feet and inches), 2" 2" 2", 2-2-2, 2 x 2 x 2 and 2*2*2 all compare as the same size. Slant ratios like 10/2 are handled too.
Size is a hard gate. Two items whose stated dimensions differ are never treated as the same product, however alike the names look. A 24×12×4 Academy Black bevel and a 24×12×6 Academy Black bevel stay two separate items.
An item that nothing plausible matches is created as a new inventory row, carrying its QuickBooks SKU so it matches cleanly next time. SKU numbers are unique per company rather than across the whole of MonuDesk, so your own numbering comes across as it stands, even where another company already uses the same SKU.
What the AI does, and what it never does
For items that miss on SKU and name, MonuDesk sends an AI model two things and nothing else: the item's name and its description. It asks which fields those words map to - category, piece type, shape, granite color, photo type, and the dimensions as written. No prices, no customers, no order data.
It carries a monument-trade glossary, so it knows a die is the upright tablet, a plinth is a base, and a grasser or pillow is a bevel. It also knows that words like companion, single, double or classic describe a variant, not a different product.
It does not decide what matches what. The rules above do that. Every value it returns is checked before use: anything outside MonuDesk's own lists is thrown away, dimensions are re-parsed, and a color only counts if it resolves to a stone color that exists in your account. Where MonuDesk worked something out for itself, its own answer wins.
Telling which items are linked
Back on the Inventory list, a small green qb badge sits in a narrow first column on every row that is tied to QuickBooks for the location you are viewing. Hover it for when the item last synced and its QuickBooks item ID. Rows with no link show nothing, and if nothing on the page is linked the column disappears altogether.
A grey badge with a line through it means the item is linked but that location's Push MonuDesk changes to QuickBooks switch is off. Anything you change while it is off is not sent, and it is not applied retroactively when you switch sync back on. You would have to go back and touch those items again.
Viewing All locations turns the tooltip into a count instead, for example "Synced to QuickBooks in 2 of 3 locations."
The import is not the only way a link is made. An item's edit popup on the Inventory page carries a QuickBooks link field with a picker of your QuickBooks items, so you can point any product at the exact QuickBooks item it should sync to.
Pushing your changes back to QuickBooks
Once an item is linked, changes you make in MonuDesk push back on their own. The switch is Push MonuDesk changes to QuickBooks, under Settings → Integrations → Inventory sync. It is on by default and set per office.
An item that has never been linked is handled too: edit one and MonuDesk creates it in QuickBooks and links it.
What pushes:
Name, retail price, cost, description and reorder point when you edit the item. On a multi-office account the office's effective price is what goes to that office's QuickBooks company.
Stock changes - a quantity you type, an adjustment, or a stone pulled for an order.
Stones received on a purchase order - when a purchase order is marked completed on PO Tracking and you add its stones to inventory, each linked product's quantity goes up and is marked confirmed, and the change is queued to QuickBooks for every office whose QuickBooks link for that item has inventory sync on. An item with no QuickBooks link yet is queued to be created.
New products - a product you add in MonuDesk is created in QuickBooks. Items in the Services category become QuickBooks Service items; everything else becomes a QuickBooks Inventory item. A new product created while building an order goes to that order's office, provided that office is connected to QuickBooks with sync switched on. If it is not, MonuDesk falls back to your default office, and failing that to your one connected office. With several connected offices and none of them the default, it will not guess. The product is not created in QuickBooks, and you would add it there yourself.
If QuickBooks cannot be reached the change is queued and retried automatically with a growing wait between tries. After six failed tries it stops and waits for a human rather than hammering away. Turning the switch off stops changes going out; it has no effect on importing.
Your stock is only taken off once. When you confirm an order, MonuDesk takes the stone off your count and sends that across. Where the QuickBooks invoice also carries a linked Inventory product, QuickBooks moves stock of its own when the invoice posts. MonuDesk hands that second unit straight back, so the net is exactly the one unit you sold. Cancelling reverses the QuickBooks side: voiding the invoice makes QuickBooks return the stock, and MonuDesk takes its give-back away to match.
The stone posts as your own product. On a confirmed order that reuses a stone from stock, that stone's line on the QuickBooks invoice is your own linked QuickBooks product, not a generic service item named after the category, so the sale lands against the real product in your books and your reporting by product works. Lettering, foundation, cemetery fees and custom items post as generic named items. If the stone is not linked to a QuickBooks product, or the order's office has inventory sync switched off, the line falls back to plain text and the stock still comes off your count as normal.
The generic item is named after the piece. A footstone die line with no matched QuickBooks item is created in QuickBooks as an item named Footstone, not Die.
Create a product while you write the order
A stone that is not in your catalogue yet does not have to be added before the order. The Review & Create step of New Quote carries a QuickBooks products card, headed "These are the products each line of this order will be billed against in QuickBooks." It lists one row per billable line: each stone ("<stone label> · Stone"), a base row when that stone's base is billed on its own line ("<stone label> · Base"), and a "Foundation · <material>" row. The stone label is the stone's name if you renamed it, otherwise its type and colour. A row with no linked product carries a Not linked to QuickBooks pill.
A stone, base or foundation row with no product attached and no suggested match shows Create new product under the product search ("Search your products by name, SKU or size…").
Click Create new product. The dialog Add this to your products opens, filled in from this order.
Check Product name (the piece, colour and size in feet and inches, for example "Upright American Black 0-2x1-0x0-8"), QuickBooks name, SKU, Price, Quantity in stock and Description. Change anything you want before you create it.
Click Create product.
Price comes from the order: the foundation amount on a foundation row; the base amount, or the stone amount minus the base, when the die and base bill as two lines; otherwise the whole stone amount. Quantity in stock defaults to 1. Enter 0 if the piece is being ordered in, and QuickBooks shows it below zero once the invoice posts.
A foundation row also offers Include the dimensions in the name, on by default. Turn it off to keep one reusable foundation product such as "Concrete Foundation". Foundations are created as Services products with no stock quantity, and stones and bases as Granite inventory products.
Create product makes the item in your MonuDesk inventory, approves it for QuickBooks, and attaches it to that order line, so MonuDesk will not change it automatically afterwards. Where the location is connected to QuickBooks with inventory sync on, the product is queued into QBO and the row's badge reads Being added to QuickBooks, with "It will appear in QuickBooks shortly. If it does not, check Inventory → QuickBooks for the reason." That is the matching queue, which you also reach from Settings → Integrations → Open matching queue. A SKU that is already in use shows the error in place.
The QuickBooks name you type is the name QuickBooks keeps. QuickBooks name is filled in as the product name, the finish and the SKU in brackets, and it is exactly what gets created in QuickBooks. It is editable, and once the item exists it is never renamed later, so a price or description push cannot rewrite your wording. If the QuickBooks name you type already exists in QuickBooks, MonuDesk adopts that existing item rather than creating a second one.
Creating a product here needs the Settings create permission, which Owner and Office have by default. It is available while you are creating an order; reopen the wizard on an order that already exists and the products card is read-only.
A custom stone set to No inventory item on the Settings → Stone Itemisation page gets no row on this card.
Stock counts are reconciled, never overwritten
This is the question every dealer asks, so it is worth being exact: an import does not stamp QuickBooks' count over yours. It applies the difference since the last time the two agreed.
Worked example. Last import, QuickBooks said 10. Since then you pulled 4 stones for orders, so MonuDesk says 6, and your bookkeeper received a delivery of 4 in QuickBooks, so QuickBooks now says 14. QuickBooks changed by +4, so MonuDesk goes from 6 to 10. The delivery lands, the four stones you pulled this morning are not resurrected.
The first time an item is linked there is nothing to compare against, so MonuDesk adopts the QuickBooks count as the starting point. Quantity only moves for QuickBooks Inventory-type items; a Service or Non-inventory item in QuickBooks carries no quantity, so yours is left alone.
Re-running the import is safe
Run it as often as you like. Linked items are updated, not duplicated. Two things to know before you do:
QuickBooks owns price, cost and description. On a re-import those three overwrite what is in MonuDesk whenever QuickBooks has a value. Everything else (piece type, material, shape, photo type, size, color, name) is only filled in where MonuDesk's field is blank, so your own curation is never flattened.
Deletes and skips stick. An item you deleted in MonuDesk is not brought back, and an item you skipped in the review queue is skipped on every future import.
If something goes wrong
The Sync with QuickBooks button is missing from the Inventory page. That office's QuickBooks is not connected. Settings → Integrations, with the right office selected.
Nothing came in. Check the office switcher. You may have imported into a different location than the one you are looking at.
The import shows Error. Click Retry. Re-running is safe. If a run stalls with no progress for 15 minutes MonuDesk marks it failed on its own so you can start again.
A price changed unexpectedly. That is the re-import rule above: QuickBooks price wins. Correct it in QuickBooks, or turn a genuinely MonuDesk-owned price into the master by editing it in MonuDesk after the import.
Duplicates appeared. Usually two QuickBooks items that really are the same stone written two ways. Delete one in MonuDesk; the delete sticks through future imports.
Related articles:
Was this helpful?
More in Inventory
How Inventory WorksManaging Inventory Across LocationsStill need help? Ask the team