QuickSync and QuickBill Guide
QuickSync Bundle
Save time with your business using QuickBooks and QuickSync Bundle. Instead of typing information from a paper document into QuickBooks and then storing it in a filing cabinet, you can capture that document into GlobalSearch and push data to and from QuickBooks with a click of a button. QuickSync Bundle comes with all of the products needed for an integrated solution to synchronize your business information between GlobalSearch and QuickBooks.
The Bundle includes:
QuickSync – Use QuickSync to get data out of QuickBooks and available to GlobalSearch via assembly bound lists.
GlobalSearch Tabular Data Control – Connect GlobalSearch and QuickBooks Transactions with line items, using the Tabular Data Control module.
This documentation is current to GlobalSearch Fall 2021 Release. Older versions of GlobalSearch may not have all features listed here or may appear different than the provided screenshots.
A note about QuickSync, QuickBill, and terminal server environments:
QuickSync and QuickBill both connect to QuickBooks using Intuit’s QB XMLRP2 connector. Because of a known limitation with QB XMLRP2 and having multiple Windows sessions on the same machine, QuickSync and QuickBill are not supported in any environment where multiple Windows sessions are open, such as terminal servers.
This applies regardless of whether:
the Windows sessions are “Active” vs “Disconnected”
any of the machine’s users use QuickBooks, any S9 products/solutions, or neither
The only known workaround at this time it to ensure only one Windows session exists when attempting to connect to QuickBooks with QuickBill or QuickSync. This means completely ending the Windows sessions for all users other than the one using QuickBill or QuickSync. Simply disconnecting them will not resolve the issue.
Because of this, the recommended course of action is to plan your setup/environment such that QuickBill and/or QuickSync are installed on devices where only one user is expected to log into Windows.
Table of Contents
- 1 GlobalSearch Setup
- 2 QuickSync Setup
- 3 QuickSync Overview
- 4 QuickSync without GlobalSearch
- 5 Setting up GlobalSearch for QuickBill and QuickSync
- 6 Fields
- 7 Create Archives
- 8 Data to QuickBooks
- 9 Data from QuickBooks
- 10 Granting QuickBill and QuickSync access to QuickBooks
GlobalSearch Setup
Please refer to the GlobalSearch Server and Client Installation Guide for details on installing the Square 9 products.
Note: The GlobalSearch configurations necessary to use the features in the QuickSync Bundle must be done by a member of the GlobalSearch SSAdmin group or someone assigned database administration rights to the database with which QuickBooks data will be shared.
QuickSync Setup
Begin the setup process by opening the QuickSync installer and running it as an administrator (Right click > “Run as administrator”). By default, this is found in C:\Program Files\Square 9 Softworks\QuickSync Installer (GlobalSearch 6.1+) or C:\Client install for QuickSync (GlobalSearch 5.0 and older).
Install the QuickBooks SDK prerequisite, if prompted.
Enter your Name, Company, and QuickSync license number when prompted.
When prompted for the Database Information, select “Use existing GlobalSearch Server”. (If you are using QuickSync without GlobalSearch, proceed to the section below.) Select the existing GlobalSearch Server to integrate with, and then click the Install button. Once finished, you will be greeted with a confirmation page and given the option to launch QuickSync. Once you launch QuickSync, you can proceed to the following sections.
QuickSync Overview
QuickSync is a local database synchronization utility that lets you extract data from a desktop version of QuickBooks and stores it in a database, ready to be used. Streamline your QuickBooks documentation process using QuickSync with GlobalSearch or other line-of-business applications.
With the local copy of QuickBooks opened to the desired Company, QuickSync can pull data from a variety of documents, which QuickBooks refers to as “Transactions.” Transactions include Checks, Invoices, Bills, Credit Memos, Deposits, Estimates, Accounts, Vendors, Terms, Taxes, Classes, Customers, Customer Message, and Items.
See the “Create Lists,” “Create Fields,” and “Create Archives” sections below on configuring QuickSync. See the “Data from QuickBooks” section for using QuickSync.
QuickSync without GlobalSearch
If you have purchased QuickSync to work with an application other than GlobalSearch, proceed to the “Data from QuickBooks” section of this article for information on QuickSync settings.
Setting up GlobalSearch for QuickBill and QuickSync
Full API Access
In order to push data to QuickBooks with QuickBill, you must have the Full API Access security setting enabled for the GlobalSearch Archive associated with the QuickBooks Transaction. For further details on setting Archive security, please see the GlobalSearch Configuration Guide.
Log in to the GlobalSearch Web client as an administrative user.
Open the GlobalSearch User Management panel.
Select the users/Archives you are going to be using with QuickBill
If using “Security by Users/Groups” with GlobalSearch 6.1+, first select all users and/or groups that will be performing the push under “Users & Groups”. Then, select the Archive(s) under “Security Components”.
If using “Security by Components” or any version of GlobalSearch older than 6.1, first select the Archive(s) under “Security Components” that will be used with QuickBill. Then, select all users and/or groups under “Users & Groups” that will be performing the push.
Under “Archive Permissions”, ensure that “Full API Access” is selected
Click “Apply Security”.
Field Lists
You will need to create Fields in GlobalSearch to connect with QuickBooks. Several of these Fields will need Lists, which may be assembly bound lists. Prior to creating the Fields, create the necessary Lists. Refer to the GlobalSearch Configuration Guide for further details on creating Lists.
Create Lists
From the GlobalSearch web client, use the Field Catalog to create the specific Lists shown in the “Lists for QuickBooks Transactions” table below.
Open the Field Catalog and click Lists.
Click the Add button in the lower-right corner.
Enter the name of the List in the List Name text box.
Enter the values of the List in List Values as shown in the table below.
Create the list for the QuickBooks Transaction Field and enter the list values shown in the table.
For the Transactions which recommend using an assembly bound list, see the “Assembly Bound Lists” section which follows.
Click OK and click Close.
Lists for QuickBooks Transactions
Suggested List Name | List Values | Required or Recommended | Notes |
---|---|---|---|
QB Accounts | Recommend List is assembly bound | Required by QuickBooks | Used by the Account Name Field |
QB Billable | Values: Yes, No | Not required | Used for bill or vendor credit items and expenses |
QB Class | Recommend List is assembly bound | Not required | Used for item classification |
QB Customer Messages | Recommend List is assembly bound | Required by QuickBooks | Used for message sent from QuickBooks with the invoice |
QB Customer:Jobs | Recommend List is assembly bound | Required by QuickBooks | Used for the customer name |
QB Invoice Items | Recommend List is assembly bound | Required by QuickBooks | Used for the item name |
QB PO Items | Recommend List is assembly bound | Required by QuickBooks | Used for the purchase order item name |
QB QuickBooks Transactions | Values: Bill, Credit Memo, Invoice, Purchase Order, Sales Order, Sales Receipt, Vendor Credit | Required by GlobalSearch | Used for the transaction type |
QB SO Items | Recommend List is assembly bound | Required by QuickBooks | Used for the sales order item name |
QB Terms | Recommend List is assembly bound | Not required for Bills, required for Invoices | Used to define how and when vendors should be paid |
QB Vendors | Recommend List is assembly bound | Required by QuickBooks | Used for the vendor name |
Assembly Bound Lists
In order for GlobalSearch to use data pulled from QuickBooks using QuickSync, an assembly bound list is used to access the QuickSync data. QuickSync pulls data from QuickBooks and uses it to populate a MongoDB database named QuickbooksSync. Each QuickBooks Company database that gets synchronized creates a separate collection and each document in the database is a single QuickBooks record. (If you are not using QuickSync in conjunction with GlobalSearch, you may skip to the “Data from QuickBooks” section at the end of this chapter.)
The Assembly Bound List for QuickBooks is distributed as a dynamic link library (DLL) named MongoListBinder.dll. In addition to the assembly DLL file itself, an assembly bound list is also dependent on an XML configuration file that is user defined. Each assembly bound Field List in GlobalSearch will specify a different configuration file that will be used to configure the connector for that List.
Create Assembly Bound Lists
Log in to the GlobalSearch Web Client Administration page as a database administrator.
Open the Field Catalog and select Lists.
Click Add button in the lower-right corner and enter the name of the List in the List Name text box.
Click the slider to designate the list will use an External Binding.
If prompted, use “Assembly Binding” as the Binding Type.
In the “Assembly Path” text box, specify the path to the MongoListBinder.dll file on the GlobalSearch server.
In the “Assembly Parameters” text box, enter the name of the XML configuration file, without the extension.
Click Test Load to test the connection.
Clicking the Test Load button will load any available data into the list. This is test data only and will not be used to fill the List data when the Field List is accessed in GlobalSearch or GlobalSearch. The data is loaded from the data source when a Field is accessed.
Click Save.
Create Configuration Files
Each assembly bound list has a corresponding configuration XML file with the same basic structure, although it needs to be individually configured to access the correct QuickBooks records. The syntax resembles this example:
<ListSetup>
<ConnectionString>mongodb://127.0.0.1</ConnectionString>
<Database>QuickbooksSync</Database>
<Collection>Square 9 Softworks Demo</Collection>
<Search><![CDATA[{$match:{'Value.S9QBItemType':'Account'}}||{$project:{_id:0,'ListValue':'$Value.Name'}}||{$sort:{'ListValue':1}}]]></Search>
</ListSetup>
The XML file contains four user-defined parameters:
ConnectionString – The ConnectionString is the URL string to the MongoDB server. If the QuickSync data is not on the GlobalSearch server, specify the correct IP address to point to the proper file instead of using 127.0.0.1.
Database – The Database value is the database, named QuickbooksSync by default. This name can be changed, if you wish.
Collection – A separate Collection is available for each QuickBooks database from which data is pulled. Specify the QuickBooks database name for this collection.
Search – The Search value is the part that actual pulls data back (the command executed to return data). Each stage is separated by two vertical bars ( || ).
Excluding the CDATA section, the Search string syntax resembles this example:
{$match:{'Value.S9QBItemType':'Account'}}||{$project:{_id:0,'ListValue':'$Value.Name'}}
This can be broken down into two separate statements at the two vertical bars:
{$match:{'Value.S9QBItemType':'Account'}}
{$project:{_id:0,'ListValue':'$Value.Name'}}
Edit the $match statement to identify the type of QuickBooks entry.
For example, for data from QuickBooks Accounts, specify Account in this section. For data from Vendors, specify Vendor.
Edit the $project statement to identify the field data in the database to be returned.
In the case above, Name is the field which will be pulled.
An error log named MongoListBinder_errors.log will appear in the same directory as the assembly bound list to aid in configuring the list correctly.
Once the assembly bound lists are created, configure GlobalSearch to bind the lists to the proper Index Fields, as defined in the next section.
Suggested Parameters for MongoListBinder Configuration Files
List | $match | $project | Notes |
---|---|---|---|
QB Accounts |
|
| Alternatively can use |
QB Class |
|
| Alternatively can use |
QB Customer Messages |
|
|
|
QB Customer:Jobs |
|
| Alternatively can use |
QB Invoice Items |
|
|
|
QB PO Items |
|
|
|
QB SO Items |
|
|
|
QB Terms |
|
|
|
QB Vendors |
|
|
|
Fields
In order to push data to QuickBooks, there must be Fields in GlobalSearch that correspond to QuickBooks Transaction fields. In the GlobalSearch Field Catalog, create the specific Index Fields and Table Fields shown in the “Fields for QuickBooks Transactions” table. Once Lists have been created, create Fields for indexing data for your documents and then attach the Lists to their corresponding Fields. Refer to the GlobalSearch Configuration Guide for further details on creating Fields and Table Fields.
Create Index Fields
The configuration of the Fields must be set exactly as described, including how Fields are named, the case, and any colon or spaces.
Log in to the GlobalSearch Web Client Administration page as a database administrator.
Open the Field Catalog and click the Add button in the lower-right corner.
Enter the appropriate name in the Field Name text box, exactly as shown in the table below.
Select the type of data for the Field from the Data Type drop-down list, as shown in the table.
Under Field Properties, make sure “Required” is checked for Transactions which are required, as shown in the table.
For the “Transaction ID” field, it is highly recommended that “System Field” and “Read Only” are selected, as this field is set automatically.
If a List is needed for your QuickBooks Transaction, assign a List to the Field:
Click “List Options”.
Select “Standard Pick List”.
From the dropdown, select the appropriate Field List for this Field.
Under “List Type” , select Drop Down to ensure that the value meets QuickBooks requirements.
Click OK.
Click Save.
Fields for QuickBooks Transactions
Field Name | Data Type | Required or Recommended | Assigned List | Notes |
---|---|---|---|---|
Account | character | Required by QuickBooks | QB Account | Used for the account name |
Amount | decimal | Required by QuickBooks |
| Used for the expense line item amount |
Billable | character | Optional | QB Billable | Used for bill or vendor credit items and expenses |
Class | character | Recommended | QB Class | Used for item classification |
Customer Message | character | Required by QuickBooks | QB Customer Message | Used for message sent from QuickBooks with the invoice |
Customer:Job | character | Required by QuickBooks | QB Customer:Job | Used for the customer name, must include the colon |
Description | character | Recommended | Used to describe the item | |
Due Date | date | Recommended | Used for date the invoice is due to be paid | |
Document Type | character | Recommended | Used for the type of document | |
Expense Memo | character | Recommended | Used for notes | |
Invoice Date | date | Recommended | Used for the date the invoice was created | |
Invoice Item | character | Required by QuickBooks | QB Invoice Item | Used for the item name |
Memo | character | Recommended | Used for notes | |
PO Item | character | QB PO Item | Used for the purchase order item name | |
PO Number | character | Recommended | Used for the purchase order number | |
Quantity | decimal | Required by QuickBooks | Used for the quantity of items | |
Quickbooks Transaction | character | Required by QuickBooks | QB Quickbooks Transaction | Used for the transaction type |
Rate | decimal | Required by QuickBooks | Used for the payment rate | |
Reference Number | character | Recommended | Used for the invoice number | |
SO Item | character | QB SO Item | Used for the sales order item name | |
Terms | character | Recommended | QB Terms | Used to define how & when vendors should be paid |
Total | decimal | Required by QuickBooks | Used for the total amount of items | |
Transaction ID | character | Recommended | Set to Read Only; field gets backfilled by GlobalSearch | |
Vendor | character | Required by QuickBooks | QB Vendor | Used for the vendor name |
Create Table Fields
From the GlobalSearch Web Client, edit the Field Catalog and create the specific Table Fields shown in the “Table Fields for QuickBooks” table.
In the Field Catalog, on the Table Fields tab, click the Add button in the bottom-right corner.
Enter the specified name in the Table Field Name text box.
You can name the Table Fields as you wish. The names provided in the Table Fields for QuickBooks table below are suggestions only.
Select Fields from the Available Fields list and click the Plus button to add them to the Included Fields list for that Table Field, exactly as shown in the table.
Click Save.
Table Fields for QuickBooks
Table Field Name | Chosen Fields | For Use With QuickBooks Transaction |
---|---|---|
Expenses | Account, Amount, Expense Memo, Customer:Job, Class, Billable | Bills or Vendor Credits with Expenses |
Items | Invoice Item, Description, Rate, Quantity, Total, Customer:Job, Class, Billable | Bills or Vendor Credits with Items |
Items and Expenses | Invoice Item, Description, Rate, Quantity, Total, Account, Amount, Expense Memo, Customer:Job, Class, Billable | Bills or Vendor Credits with both Items and Expenses |
LineItems | Invoice Item, Description, Rate, Quantity, Total | Invoices and Sales Receipts |
POLineItems | PO Item, Description, Rate, Quantity, Total | Purchase Orders |
SOLineItems | SO Item, Description, Rate, Quantity, Total | Sales Orders |
Create Archives
With the Index Fields and Lists created to meet QuickBooks' requirements, create or modify the relevant Archives and assign the Fields and Table Fields to them. Refer to the GlobalSearch Configuration Guide for further details on creating and securing Archives.
Create a new Archive and enter a name in the New Archive text box.
For each Transaction type, from the Available Fields list, chose the Fields indicated in each Transaction sections below.
Click Save.
Archives for Bills
In the QuickBooks Transaction type “Bill” (otherwise known as a vendor invoice), you can allocate line items as either “Expenses” or as “Items.” Bills, Expenses, and Items must have specific Fields created in order to push data from a GlobalSearch document to a QuickBooks Bill. Create one or more GlobalSearch Archives to hold your QuickBooks Bill data.
Archive for Bills without Line Items
Create an Archive and assign the following Fields to it:
Vendor
Reference Number
Due Date
Terms
Memo
Transaction ID
Document Type
Quickbooks Transaction
Archive for Bills with Expenses
Create an Archive for Bills with Expenses with the following Fields (if created as a Sub-Archive of “Bills without Line Items”, these Fields will be inherited by default):
Vendor
Reference Number
Due Date
Terms
Memo
Transaction ID
Document Type
Quickbooks Transaction
Assign the Table Field called “Expenses”.
Archive for Bills with Items
Create an Archive for Bills with Items with the following Fields (if created as a Sub-Archive of “Bills without Line Items”, these Fields will be inherited by default):
Vendor
Reference Number
Due Date
Terms
Memo
Transaction ID
Document Type
Quickbooks Transaction
Assign the Table Field called “Items”.
Archive for Bills with Items and Expenses
Create an Archive for Bills with Items and Expenses with the following Fields (if created as a Sub-Archive of “Bills without Line Items”, these Fields will be inherited by default):
Vendor
Reference Number
Due Date
Terms
Memo
Transaction ID
Document Type
Quickbooks Transaction
Assign the Table Field called “Items and Expenses”.
Archive for Vendor Credits
Because the format of Vendor Credits is identical to that of Bills, Archives for Vendor Credits can be set up identically to Archives for Bills. This includes Vendor Credits with Items, Expenses, or Both. Alternatively, you can use the Bill Archives for Vendor Credits. Simply select “Vendor Credit” as the QuickBooks Transaction prior to pushing with QuickBill.
Archive for Credit Memos
Create an Archive and assign the following Fields to it:
Customer:Job
Reference Number
Invoice Date
Memo
Customer Message
Transaction ID
PO Number
Quickbooks Transaction
Assign the Table Field called “CreditMemoLineItems”.
Archive for Invoices
Create an Archive and assign the following Fields to it:
Customer:Job
Reference Number
Invoice Date
Due Date
Terms
Memo
Transaction ID
Customer Message
PO Number
Quickbooks Transaction
Assign the Table Field called “LineItems”.
Archive for Purchase Orders
Create an Archive and assign the following Fields to it:
Vendor
Invoice Date
Memo
Transaction ID
Customer Message
PO Number
Quickbooks Transaction
Assign the Table Field called “POLineItems”.
Archive for Sales Orders
Create an Archive and assign the following Fields to it:
Customer:Job
Reference Number
Invoice Date
Due Date
Terms
Memo
Transaction ID
Customer Message
PO Number
Quickbooks Transaction
Assign the Table Field called “SOLineItems”.
Archive for Sales Receipts
Create an Archive and assign the following Fields to it:
Customer:Job
Reference Number
Invoice Date
Memo
Transaction ID
Quickbooks Transaction
Assign the Table Field called “LineItems”.
Data to QuickBooks
Data from GlobalSearch Desktop Client
Open a single Company in your local instance of QuickBooks.
In GlobalSearch open a document in the Document Viewer and enter information in the Fields.
In the Quickbooks Transaction Index Field, choose the Transaction appropriate for the document (For example, if you are viewing an invoice, select Invoice, etc.).
Save the document.
On the Content Management tab, in the QuickBooks group, click Send to QuickBooks.
Enter your GlobalSearch authentication information, if prompted.
A confirmation message will appear to indicate a successful data push.
Data from GlobalSearch Web Client
Open a single Company in your local instance of QuickBooks and open a Transaction.
In GlobalSearch open a document in the Document Viewer and enter information in the Fields.
In the Quickbooks Transaction Index Field, choose the Transaction appropriate for the document (For example, if you are viewing a bill, select Bill, etc.).
Click Save Changes.
Click Actions in the toolbar and select Send to QuickBooks.
Please note that you will need to install GlobalSearch Extensions and enable the QuickBill extension to perform this operation.
A successful data push updates the Transaction ID Index Field in the Document Viewer.
An unsuccessful data push causes a message to appear regarding the error.
For information on using the Batch Manager with errored documents, refer to the GlobalSearch Configuration Guide.
Data from QuickBooks
Start QuickSync
Launch your local instance of QuickBooks and open a single Company.
Double-click the QuickSync shortcut on the Windows desktop to launch QuickSync.
The QuickSync (Square 9 logo) icon will appear in your Windows system tray.
Configure QuickSync
Prior to using QuickSync for the first time, configure it to your desired settings. After the initial configuration, this section is only necessary if you need to make changes to the settings.
Start QuickSync and right-click on the QuickSync icon in the system tray.
Select Settings to open the Settings dialog box.
In the Items to sync group, select the QuickBooks items to be synchronized with GlobalSearch.
These settings go into the qbsyncConfig.xml file.
To configure QuickSync to run at a set time automatically in the background, select Timer On and enter the number of minutes in the Frequency in minutes text box.
Data which has changed in QuickBooks since the last synchronization will be updated in GlobalSearch and a confirmation message will appear.
The timer starts from the moment QuickSync is turned on. QuickSync continues to run until you right-click QuickSync and choose Exit. Although, if you close QuickBooks it will not have a data connection until you reopen the program.
Click OK.
Synchronize Data Manually
To synchronize the data between GlobalSearch and the open Company in QuickBooks, start QuickSync and then right-click on the QuickSync icon in the system tray.
Click Sync.
A message will appear to indicate a successful data push.
Granting QuickBill and QuickSync access to QuickBooks
The first time you run a sync with QuickSync or send data to QuickBooks using QuickBill, you will have to allow QuickBooks to accept incoming connections whenever the database is open. Note that you must be logged in as the QuickBooks admin user to grant this permission.
In QuickBooks, a popup dialogue will appear.
Under “Do you want to allow this application to read and modify this company file?” select “Yes, always; allow access even if QuickBooks is not running”.
This will open a secondary prompt asking you to confirm. In the secondary prompt, select “Yes”.
To ensure QuickSync/QuickBill have full permissions, make sure “Allow this application to access personal data…” is checked.
Click “Continue…”
Click “Yes”.
Click “Done”.