One of the things we recently rolled out is a sync between TimeTracker data in Salesforce and QuickBooks Desktop (QBD). Our sync mechansim brings data into QBD’s TimeCards, Customers, Invoices and Receipts. It is available as a paid add-on to TimeTracker. This article is about setting up the TimeTracker QuickBooks Desktop Connector.
Intuit has an interesting approach to integrating other software with QBD – “Don’t call us, we’ll call you”. No, really, we’ve rarely seen that kind of model before. Given that QBD is a desktop system, this is the way their integration works:
On the same system as (or on the same network as) your QBD installation, you install a a component called the QuickBooks Web Connector (QWC). That’s a piece of software that connects to QuickBooks on one side and to an external web service on the other.
Periodically, QWC wakes and connects to the web service, asking for data in its qbXML format. The data can be records of invoices, receipts, timecards and so on. When it gets the data, it processes it (adds/updates in QuickBooks) and then responds to the external service with the results for each record that it got.
The external service can respond with a “Done” kind of message or return with more data to process. Once the full set of data that the service wants to deliver has been processed, QWC ends the conversation.
In most other systems – specifically, web-based systems like, for example, QuickBooks Online (QBO) – there are two parallel connections: one where the external system submits data to, say, QBO and another where QBO lets the external system know when data has changed. Having built lots of integrations of this parallel-connection kind, putting together the QBD Connector was both interesting and educative (and challenging, of course🙂). Here’s what it looks like, from a technology perspective:
After a lot of work, a number of restarts and lots and lots of XML head-scratching, we now have a system that brings the following data from Salesforce to QBD (not QBO – yet):
Accounts as Customers
TT Users as Employees
TT Invoices+InvoiceLines as Invoices+InvoiceLines
TT Projects as Jobs
TT Materials as Item Inventory
TT Collections as Received Payments
TT Details as Time Cards.
Related info like Payroll Wage Items are also set up in QBD, so QBD’s own reporting and internal consistency is maintained.
To set up TimeTracker Connector for QuickBooks Desktop, there are three majos things you need to do:
Set up some prerequisite software
Set up parameters in Salesforce
Set up stuff in QuickBooks Web Connector.
Here’s a detailed look at each step.
Getting it all to work OK needs some prep. Here’s what you need to do first:
Install the QuickBooks Web Connector (QBWC), a free add-on from QuickBooks that is meant to help such integrations, alongside the your QBD installation. You can get QBWC from the Intuit website.
Set up an email ID for the “integration user” in QuickBooks. This is usually the QBD Admin and they need to have a working email ID that must be set up as the user’s email ID in QuickBooks (see image alongside).
Setting it up in Salesforce
Once you’ve finished the prerequisites, head over to Salesforce to set up things. Setting it up and using it is fairly straightforward:
Log into Salesforce
Go to the App Key that you want to set up QBD Sync for
Click the Config button to bring up the TimeTracker configuration tabes
Click the Integration tab and then click the QuickBooks Desktop icon.
You’ll see a page somewhat like this:
Here, fill out the 3 fields in this manner:
Key in the location of your QBD Company File as seen by the QuickBooks Web Connector. You can figure out that location within QuickBooks Desktop as follows: Qo to File > New Company from Existing Company File. Carefully copy (^C) the value in the 1. Select a Company to copy from field, click Cancel. You will now have the location in your clipboard – you can paste that into the QBW File Path field in Salesforce.
Key in the QBD Admin user’s email ID, as described in the Prerequiresites section above.
Key in a password that you will later need to key into QBWC. So make sure it’s something you won’t forget immediately.
Click the Save button to save your integration parameters in Salesforce. In a few seconds, you will see the download of a QWC file – make sure you know where it is saved to, since you’ll need it in setting up the QuickBooks Web Connector next.
Setting up QBWC
Now, you get to use the QWC file that you got from Salesforce in QuickBooks Web Connector (QBWC).
Go to the desktop where you’ve installed QBWC. Start up QBWC. The screen will look something like the image alongside (there may be no entry in the table).
Click the Add an Application button (bottom right). This brings up a file-selector. Navigate to the folder where you saved the QWC file from the previous step, select that file. QBWC loads that file and will show a line for the configuration that you just set up.
You can change some of the parameters, if you’d like – for example, set it up auto-run every so often. Note that, if you set the frequence to anything less than 6 hours, the TimeTracker Connector quietly ignores intermediate calls and responds only once in 6 hours. So data can only be synced once in 6 hours.
At this point, your QBD Sync should be happening periodically, automatically. You should see your TimeCards and their related Customers, Invoices and Receipts in QuickBooks Desktop. If you have trouble, look up some of the articles related to QuickBooks on our Support portal here. Or send us an email at firstname.lastname@example.org and we’ll help. Thanks!