Sync Shopify Orders to QuickBooks Online Sales Receipts (Make.com)

Automate real-time revenue recognition and inventory reconciliation using Make.com's visual workflow builder.

Tools: ShopifyQuickBooks

Platform: Make.com

Short Answer

Every Shopify order is automatically mirrored in QuickBooks Online as a Sales Receipt. This ensures 100% accurate tax reporting, automated customer creation, and real-time reconciliation of 'Undeposited Funds' with your Shopify Payouts.

The Problem

Manual entry of Shopify orders into QuickBooks is time-consuming and prone to human error, leading to mismatched financial statements and inaccurate inventory valuations. Without automation, businesses struggle to maintain a real-time view of their Profit & Loss statement.

The Outcome

Every Shopify order is automatically mirrored in QuickBooks Online as a Sales Receipt. This ensures 100% accurate tax reporting, automated customer creation, and real-time reconciliation of 'Undeposited Funds' with your Shopify Payouts.

Step-by-Step Guide

1. **Create Scenario**: Log into Make.com, click 'Create a new scenario', and name it 'Shopify to QuickBooks Sync'. 2. **Configure Shopify Trigger**: Add the **Shopify > Watch Orders** module. Create a Webhook, select 'Paid' as the Status, and 'Created' as the Trigger Event. Authenticate your Shopify store via OAuth. 3. **Handle Customer Searching**: Add the **QuickBooks Online > Search for Customers** module. Map the Shopify `Email` field to the QuickBooks `Email Address` filter. Set the limit to 1. 4. **Add Router for Logic**: Insert a **Router** module. Create two paths based on the Customer search result. 5. **Create/Identify Customer**: On Path A, set a filter: `QuickBooks Customer ID` 'Does not exist'. Add the **QuickBooks Online > Create a Customer** module, mapping Shopify's `First Name`, `Last Name`, and `Billing Address`. 6. **Map Line Items (Iterator/Aggregator)**: If your orders have multiple items, use the **Iterator** module on the Shopify `Line Items` array. Follow it with an **Array Aggregator** to format the data into the specific JSON structure QuickBooks requires for 'Line Items'. 7. **Generate Sales Receipt**: Add the **QuickBooks Online > Create a Sales Receipt** module. Map the `Customer ID` from the previous steps. Map the aggregated line items, `Total Tax`, and `Shipping` to their respective fields. 8. **Account Mapping**: Ensure the 'Deposit To' field in the QuickBooks module points to 'Undeposited Funds' or your 'Shopify Clearing Account' to facilitate easy bank reconciliation. 9. **Add Error Handler**: Right-click the QuickBooks module and select 'Add error handler'. Choose the **Break** directive to store the execution and allow for manual retries if the QuickBooks API is down.

Data Mapping

| Shopify Field | Make.com Mapping Logic | QuickBooks Field | Requirement | | :--- | :--- | :--- | :--- | | `Email` | `{{1.email}}` | `BillEmail` | **Required** | | `Order Number` | `Shopify-{{1.order_number}}` | `DocNumber` | **Required** | | `Line Items[]` | `map(line_items; product_id)` | `Line: SalesItemLineDetail` | **Required** | | `Total Price` | `{{1.total_price}}` | `TotalAmt` | **Required** | | `Created At` | `formatDate(1.created_at; YYYY-MM-DD)` | `TxnDate` | **Required** | | `Province Code` | `{{1.billing_address.province_code}}` | `TaxCodeRef` | Optional | | `Customer Name` | `{{1.first_name}} {{1.last_name}}` | `DisplayName` | **Required** |

Gotchas & Failure Modes

• **Rate Limiting**: QuickBooks Online API has strict throttling. If processing bulk historical orders, use the 'Sleep' module or set the scenario 'Max number of cycles' to 1 and run it on a schedule. • **SKU Mismatches**: The 'Item Name' in QuickBooks must match the 'SKU' from Shopify exactly. If they don't, use a Make.com **Data Store** or a 'Switch' function to map Shopify SKUs to QuickBooks Item IDs. • **Tax Rounding**: QuickBooks and Shopify calculate tax differently at the decimal level. Use the `round()` function in Make.com to ensure the `TotalAmt` matches to the cent, or QuickBooks will reject the bundle. • **Multiple Currencies**: Ensure the 'Global Suite' in QuickBooks is active if Shopify orders come in different currencies; otherwise, the module will return a 400 error.

Verification Checklist

- [ ] **Run Once Test**: Use the 'Run once' button and trigger a single 'Paid' order in Shopify. - [ ] **Check Execution Log**: Verify in the Make.com execution log that the bundle passed through the Router correctly. - [ ] **QuickBooks Audit**: Open QuickBooks Online and search for the Sales Receipt by the Shopify Order Number. - [ ] **Customer Deduplication**: Run the scenario twice for the same customer to ensure a duplicate customer record is NOT created. - [ ] **Line Item Verification**: Confirm that the subtotal, tax, and shipping flow into the correct QuickBooks Chart of Accounts.

Ready to Automate?

Build this automation with Make.com in minutes.