This article describes the steps to take to set up your integration between QBench and Quickbooks, as well as how the integration works.
Subscription Necessary
If you haven't already, contact your Customer Success Manager or account representative to inquire about pricing and to purchase the Quickbooks Online Integration subscription.
How It Works
The QBO integration is built primarily around synchronization of invoices from QBench to QBO (including related customers and assays, see details below), and of payments from QBO to QBench.
Important: Customer records in QBO will be overwritten for specific fields if they are updated in QBench (billing email address and address). Invoice records are fully replaced -- when an invoice is updated in QBench, the entire QBO invoice is rewritten (line items, dates, amounts, memo, everything). To avoid data loss, always make edits in QBench rather than directly in QBO. It's strongly recommended that you try syncing from a QBench sandbox first to try out syncing of a limited number of Customer and Invoice records before using your live QBench site (your sandbox will have significantly less volume of invoices, etc. giving you more control to see how records are created in QBO).
What Happens When You First Connect
Connecting QuickBooks only links the two systems -- it does not import or back-fill any data. Nothing syncs until a record is created or changed in QBench after the connection is made. Your existing QuickBooks history (customers, invoices, payments) will not be pulled into QBench.
Which Direction Does Data Flow?
The integration sends data from QBench into QuickBooks (customers, invoices, and the services on those invoices). It does not pull your existing QuickBooks history into QBench. The only data that flows from QuickBooks back into QBench is payments, and only for a specific invoice when you click "Sync Payments from Quickbooks" -- it will never do a bulk import of past payments.
Will It Create Duplicates?
No. Records that are already linked to QuickBooks are updated in place, not recreated. The QuickBooks ID field on each record is how QBench knows a record is linked -- once that field is populated, future syncs update the existing record rather than creating a new one.
Here is how each record type is protected:
- Customers: matched by exact Display Name. If a match is found, the existing record is updated and linked. A new customer is only created if there is no link and no name match.
- Products/Services (assays and panels): matched by exact name. If the product/service does not exist in QuickBooks, it will NOT be auto-created -- the line item will sync without a Product/Service selection on the QBO invoice.
- Invoices: matched by their QuickBooks ID link only. If the link exists, the invoice is updated. If it does not exist, a new invoice is created.
- Payments: any payment already recorded in QBench is skipped, so the same payment is never entered twice.
Important: If some of your QuickBooks data was created outside this integration (manually, through an older QuickBooks Desktop connection, or via another tool), those records may not have a QuickBooks ID link yet. Review those with your implementation contact before turning on the integration -- especially invoices, which rely entirely on the link rather than name-matching.
The integration supports the following use cases:
-
Invoice: When invoices are created in QBench, and moved to the "INVOICED" status they will be copied over to Quickbooks Online. Syncing an invoice will also sync its associated customer and assays/panels first, so a single invoice sync may create or update several records in QBO. See notes below for how Invoice synchronization works:
- Invoice No.: The invoice number will be the QBench custom invoice ID or if you do not have a custom ID configured it will be the invoice ID with a "QB-" prefix (e.g. "QB-15").
- Customers: when an invoice syncs from QBench to QBO the system will look for a customer in QBO with the exact same name and link the two. If the customer is not found it will create a customer (along with Billing Email (see "Billing Email ..." bullet point below), and the customer's address). Accordingly, to avoid duplication of customers in QBO be sure that their names are an exact match.
- Products and Services: Assays and panels in QBench can be linked to products and services in QBO, and when they are linked the "Product/Service" column on the QBO invoice can be automatically selected. In order to have assays and panels linked to products and services in QBO you must ensure the assay or panel name in QBench is exactly the same as the product/service name in QBO. Then when an invoice is syncing to QBO it'll automatically link to the appropriate product/service. If the product/service does not exist in QBO it will NOT be created automatically.
- Billing Email on Invoices: to invoice a billing email address you must have email settings configured in QBench so that you can populate the "Email to" field on the QBench invoice.
- Invoice Memo: If you would like to populate an invoice "Memo" in QBench and have it sync over to Quickbooks you must create an additional field where the field system name must be "qbo_memo" (the field label can be anything of your choosing, see custom field configuration to learn about creating custom fields).
- Billing Email on Customers: similar to the above, if you would like a primary billing email address entered in QBench to sync to QBO you must create a custom field with the system name "qbo_billing_email". The contacts tab in QBench is not used to determine the billing email because there can be multiple billing contacts (keep in mind any emails on the "Email to" will be copied over to the invoice so the contacts tab functionality still works and syncing a primary billing email may not be desired).
-
Tax Rate: In order to sync invoice items that have a tax rate from QBench to QBO properly, you need to make sure that the Tax Rate Name in QBench matches with a Tax Rate Name in QBO. QBO integration only looks for the Tax Rate Name that matches with QBench and applies the tax rate percentage to the invoice item in QBO. If the Tax Rate Name does not exist in QBO, an error response will be posted to the QuickBooks Response Log field on the Invoice Detail Page in QBench.
Important: QBO does not support multiple tax rates. Please make sure to use only one type of Tax Rate for an invoice.
-
Online Payment: To allow Online ACH Payment, Online Credit Card Payment, and IPN Payment (Quickbooks legacy payment), you will need to create an additional field for Invoice in QBench for each one of the payments as below:
- Allow Online ACH Payment: Create an Invoice additional field where the field system name must be "qbo_allow_online_ach_payment". The field label can be anything of your choosing. Field Type must be a Dropdown with options of [“YES”, “NO”]. See custom field configuration to learn about creating custom fields.
- Allow Online Credit Card Payment: Create an Invoice additional field where the field system name must be "qbo_allow_online_credit_card_payment". The field label can be anything of your choosing. Field Type must be a Dropdown with options of [“YES”, “NO”]. See custom field configuration to learn about creating custom fields.
- Allow IPN Payment: Create an Invoice additional field where the field system name must be "qbo_allow_ipn_payment". The field label can be anything of your choosing. Field Type must be a Dropdown with options of ["YES", "NO"]. See custom field configuration to learn about creating custom fields.
-
Payments: There is a button in QBench that can copy payments from QBO to QBench. This will only work for invoices that are linked between QBench and QBO. NOTE: invoices must be linked to QBO invoices and must be in the INVOICED status for payments to successfully sync to QBench. See below on how to configure the button necessary to sync payments.
- To configure the button go to "Configuration" > "Application" > "Developer" > "Settings". In the "Custom Actions" section click "+ New Custom Action". Fill the form as follows and click "Create":
- Name: "Sync Payments from Quickbooks" must match exactly
- Type: "Invoice"
- To configure the button go to "Configuration" > "Application" > "Developer" > "Settings". In the "Custom Actions" section click "+ New Custom Action". Fill the form as follows and click "Create":
-
Customers: When customers are created or updated in QBench they will be created or updated in QBO. If you want to link an existing customer in QBO to a QBench customer, you need to ensure the names are exactly the same (the customer name in QBench must match the "Display Name"). Keep in mind that the following fields will override fields in QBO if they are populated in QBench:
- "qbo_billing_email" custom field
- Address, City, State, Zip, Country (note City, State, Zip, and Country may be hidden, you can show them by editing the Customer object in Fields and Data Type Settings).
Configuration
- Go to "Configuration" > "Application" > "Quickbooks Online" (note this will require the subscription to the Quickbooks Online integration).
- Go to the "Authenticate with Quickbooks" tab and click "Connect to Quickbooks" button. You will be redirected to Quickbooks Online to grant access to QBench.
- After authenticating you can refresh the page to ensure you are successfully authenticated. You will see a message similar to what's shown below:
- This will enable syncing between QBO and QBench. If you have issues with syncing you can try to reconnect by clicking this button again to re-authenticate.
Field Definitions and Relevant Fields
Core Fields
| Field Name | Type | Options | Object | Purpose |
| Address | Text | N/A | Customer | Ensure address details match between systems. |
| Tax Rate Name | Text | N/A | General | Matches tax rates between QBench and QuickBooks Online. |
| QuickBooks ID | Text | N/A | Assay, Panel, Customer, Invoice | Unique identifier for the QuickBooks Online entry. |
| QuickBooks Edit Sequence | Text | N/A | Assay, Panel, Customer, Invoice | Tracks edits in QuickBooks Online to ensure sync integrity. |
| QuickBooks Last Synced | Text | N/A | Assay, Panel, Customer, Invoice | Timestamp of the last successful sync. |
| QuickBooks Response Log | Text | N/A | Assay, Panel, Customer, Invoice | Stores logs of sync responses for troubleshooting. |
Additional Fields
| Field Name | Type | Options | Object | Purpose |
| qbo_allow_online_ach_payment | Dropdown | ["YES", "NO"] | Invoice | Enables ACH payment options in QuickBooks Online. |
| qbo_allow_online_credit_card_payment | Dropdown | ["YES", "NO"] | Invoice | Enables credit card payment options. |
| qbo_allow_ipn_payment | Dropdown | ["YES", "NO"] | Invoice | Enables IPN (legacy QuickBooks) payment options. |
| qbo_memo | Textbox | N/A | Invoice | Syncs invoice memos to QuickBooks Online. |
| qbo_billing_email | Text | N/A | Customer | Syncs the primary billing email address. |
Definitions of Field Types
- Core Fields: Predefined system fields that cannot be deleted.
- Additional Fields: User-created fields for specific configurations.
- Default Value: Automatically populated values for faster data entry.
For details on configuring fields, refer to the: Fields and Data Types Configuration Guide
Troubleshooting and FAQs
Common Issues
-
Customer Duplication:
- Ensure customer names are identical in both systems. Additionally, there is a setting in General Settings to enforce unique customer names, which can help prevent duplication.
- Name matching is exact -- case and spacing matter. See "Will It Create Duplicates?" above for how the integration prevents duplication across all record types. For invoices specifically, duplication prevention depends on the QuickBooks ID link rather than name matching, so unlinked invoices are the main area to review before go-live.
- Use sandbox testing to identify potential conflicts.
-
Invoice Sync Errors:
- Check the "QuickBooks Response Log" for details.
- Verify Tax Rates and product names match in both systems.
-
Authentication Problems:
- Reconnect via Configuration > Application > QuickBooks Online.
Related Articles
Comments
0 comments
Article is closed for comments.