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

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.

Prompt to install QuickBooks SDK

Enter your Name, Company, and QuickSync license number when prompted.

Prompt for Name, Company, and QuickSync license number

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.

  1. Log in to the GlobalSearch Web client as an administrative user.

  2. Open the GlobalSearch User Management panel.

  3. 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.

  4. Under “Archive Permissions”, ensure that “Full API Access” is selected

  5. 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.

  1. Open the Field Catalog and click Lists.

  2. Click the Add button in the lower-right corner.

  3. Enter the name of the List in the List Name text box.

  4. 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.

  5. Click OK and click Close.

Lists for QuickBooks Transactions

Suggested List Name

List Values

Required or Recommended

Notes

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

  1. Log in to the GlobalSearch Web Client Administration page as a database administrator.

  2. Open the Field Catalog and select Lists.

  3. Click Add button in the lower-right corner and enter the name of the List in the List Name text box.

  4. Click the slider to designate the list will use an External Binding.

  5. If prompted, use “Assembly Binding” as the Binding Type.

  6. In the “Assembly Path” text box, specify the path to the MongoListBinder.dll file on the GlobalSearch server.

  7. In the “Assembly Parameters” text box, enter the name of the XML configuration file, without the extension.

  8. Click Test Load to test the connection.

    1. 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.

  9. 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'}}

 

  1. Edit the $match statement to identify the type of QuickBooks entry.

    1. For example, for data from QuickBooks Accounts, specify Account in this section. For data from Vendors, specify Vendor.

  2. Edit the $project statement to identify the field data in the database to be returned.

    1. In the case above, Name is the field which will be pulled.

    2. 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.

  3. 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

List

$match

$project

Notes

QB Accounts

'Value.S9QBItemType':'Account'

_id:0,'ListValue':'$Value.Name'

Alternatively can use '$Value.FullName'

QB Class

'Value.S9QBItemType':'Class'

_id:0,'ListValue':'$Value.Name'

Alternatively can use '$Value.FullName'

QB Customer Messages

'Value.S9QBItemType':'CustomerMsg'

_id:0,'ListValue':'$Value.Name'

 

QB Customer:Jobs

'Value.S9QBItemType':'Customer'

_id:0,'ListValue':'$Value.Name'

Alternatively can use '$Value.FullName'

QB Invoice Items

'Value.S9QBItemType':'Item'

_id:0,'ListValue':'$Value.Name'

 

QB PO Items

'Value.S9QBItemType':'Item'

_id:0,'ListValue':'$Value.Name'

 

QB SO Items

'Value.S9QBItemType':'Item'

_id:0,'ListValue':'$Value.Name'

 

QB Terms

'Value.S9QBItemType':'Terms'

_id:0,'ListValue':'$Value.Name'

 

QB Vendors

'Value.S9QBItemType':'Vendor'

_id:0,'ListValue':'$Value.Name'

 

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.

  1. Log in to the GlobalSearch Web Client Administration page as a database administrator.

  2. Open the Field Catalog and click the Add button in the lower-right corner.

  3. Enter the appropriate name in the Field Name text box, exactly as shown in the table below.

  4. Select the type of data for the Field from the Data Type drop-down list, as shown in the table.

  5. 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.

  6. If a List is needed for your QuickBooks Transaction, assign a List to the Field:

    1. Click “List Options”.

    2. Select “Standard Pick List”.

    3. From the dropdown, select the appropriate Field List for this Field.

    4. Under “List Type” , select Drop Down to ensure that the value meets QuickBooks requirements.

    5. Click OK.

  7. Click Save.

Fields for QuickBooks Transactions

Field Name

Data Type

Required or Recommended

Assigned List

Notes

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.

  1. In the Field Catalog, on the Table Fields tab, click the Add button in the bottom-right corner.

  2. 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.

  3. 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.

  4. Click Save.

Table Fields for QuickBooks

Table Field Name

Chosen Fields

For Use With QuickBooks Transaction

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.

  1. Create a new Archive and enter a name in the New Archive text box.

  2. For each Transaction type, from the Available Fields list, chose the Fields indicated in each Transaction sections below.

  3. 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

  1. 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

  1. 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

  2. Assign the Table Field called “Expenses”.

Archive for Bills with Items

  1. 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

  2. Assign the Table Field called “Items”.

Archive for Bills with Items and Expenses

  1. 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

  2. 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

  1. 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

  2. Assign the Table Field called “CreditMemoLineItems”.

Archive for Invoices

  1. 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

  2. Assign the Table Field called “LineItems”.

Archive for Purchase Orders

  1. Create an Archive and assign the following Fields to it:

    • Vendor

    • Invoice Date

    • Memo

    • Transaction ID

    • Customer Message

    • PO Number

    • Quickbooks Transaction

  2. Assign the Table Field called “POLineItems”.

Archive for Sales Orders

  1. 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

  2. Assign the Table Field called “SOLineItems”.

Archive for Sales Receipts

  1. Create an Archive and assign the following Fields to it:

    • Customer:Job

    • Reference Number

    • Invoice Date

    • Memo

    • Transaction ID

    • Quickbooks Transaction

  2. Assign the Table Field called “LineItems”.

Data to QuickBooks

Data from GlobalSearch Desktop Client

  1. Open a single Company in your local instance of QuickBooks.

  2. 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.).

  3. Save the document.

  4. On the Content Management tab, in the QuickBooks group, click Send to QuickBooks.

  5. Enter your GlobalSearch authentication information, if prompted.

  6. A confirmation message will appear to indicate a successful data push.

Data from GlobalSearch Web Client

  1. Open a single Company in your local instance of QuickBooks and open a Transaction.

  2. 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.).

  3. Click Save Changes.

  4. Click Actions in the toolbar and select Send to QuickBooks.

  5. A successful data push updates the Transaction ID Index Field in the Document Viewer.

  6. An unsuccessful data push causes a message to appear regarding the error.

  7. For information on using the Batch Manager with errored documents, refer to the GlobalSearch Configuration Guide.

Data from QuickBooks

Start QuickSync

  1. Launch your local instance of QuickBooks and open a single Company.

  2. 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.

  1. Start QuickSync and right-click on the QuickSync icon in the system tray.

  2. Select Settings to open the Settings dialog box.

  3. In the Items to sync group, select the QuickBooks items to be synchronized with GlobalSearch.

    • These settings go into the qbsyncConfig.xml file.

  4. 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.

  5. Click OK.

 

Synchronize Data Manually

  1. 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.

  2. Click Sync.

  3. 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.

  1. In QuickBooks, a popup dialogue will appear.

  2. 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”.

  3. To ensure QuickSync/QuickBill have full permissions, make sure “Allow this application to access personal data…” is checked.

  4. Click “Continue…”

  5. Click “Yes”.

  6. Click “Done”.