This article will illustrate how to connect your QuickBooks account with ArcSite and how objects are synced to your QuickBooks account.
The integration between ArcSite and QuickBooks is a one-way connection that allows you to push ArcSite project data to QuickBooks.
The integration requires you to use a QuickBooks Online account, QuickBooks Desktop versions are not supported.
The two actions available via the integration are:
Pushing project-level drawing data from ArcSite into QuickBooks to create an Invoice or Estimate.
Syncing & Pushing product-level usage data from ArcSite into QuickBooks.
How to Connect QuickBooks to ArcSite
The integration between ArcSite and QuickBooks is managed within the Advanced Settings of the ArcSite web application. You must be an admin to access and complete this action. Go to Integrations Page
After clicking the "Connect to QuickBooks" button, a login window for QuickBooks will appear or an authorization window will directly be displayed.
In the pop-up window, log in to authorize ArcSite to access data permissions, after completing the authorization, the page will automatically jump back to the Admin Page within ArcSite.
Within the QuickBooks Integration module, it will display "You are connected to QuickBooks (QB Company Name)".
Once the authorization is complete, ArcSite can obtain the company ID of the authorized QuickBooks Company. ArcSite obtains the basic information of the authorized company by calling the read company info API of QuickBooks, with the most important information being the company's name, and binds the ID, name, and other information to the corresponding ArcSite organization.
Pushing Invoices/Estimates from ArcSite to QuickBooks
Once the QuickBooks App Connection is complete, you can push to QuickBooks in the Takeoff & Estimate of the Drawing via the ArcSite web application.
* This action is not currently available via the mobile app.
This means you need to access the web application here, next click on the project where the drawing lives, and then click on the drawing you want to sync with QuickBooks. You'll then see the tab for Takeoff & Estimate.
Note: If you don't see your drawing within your project, this means you have yet to upload your drawing from the mobile app to the cloud. How to save to the cloud via the mobile app
After clicking "Send to QuickBooks", you can choose between sending an Invoice or an Estimate in the pop-up window.
To push an Invoice or Estimate, the Project's Client Profile information must be properly filled out. This is because QuickBooks creates an Invoice or Estimate by associating it with an existing Customer.
Therefore, before creating an Invoice or Estimate, ArcSite must use the Project Client's Profile information to check if a Customer with the same email exists in QuickBooks. If there is no Customer with that email, a new Customer will be created in QuickBooks.
To Complete the Push to QuickBooks, the required information is the Client's Email, and other information including the Client's name and Client Address information will also be used when creating a new Customer. If the Client information in the Project is not complete, a check error will be triggered.
If the push fails, an error message will also be displayed in a similar manner.
Possible error messages on the ArcSite side include:
[Client Profile Information Missing Error]
Failed to create "Customer" in Quickbooks. Please fill in Client Detail of the ArcSite Project,``such as client email(required), name, address and phone.
[Drawing has no Products Error]
You need to add at least one product to drawing for pushing!
[App Connected Issue, need to reconnect]
Quickbooks connection not found, please reconnect the app.
[App Authentication Error, need to reconnect ]
Application authentication failed
If the error message comes from QuickBooks API Response, the error message will start with [QuickBooks], and the specific error message will be displayed in the pop-up box in text format. The user can take a screenshot of the error message and contact us for support to troubleshoot.
In this process, the interaction logic between ArcSite and QuickBooks data is as follows:
After clicking "Send to QuickBooks" → "Send to Invoice/Estimate," ArcSite will check if the customer using that email exists in QB. If they do not exist, the create interface will be used to create the customer, using the client's email, name, and address information.
Customer → Query a customer API
Customer → Create a customer API
After ensuring that the customer exists, the customer ID and company type will be obtained as the basis for the push. The company type is distinguished in QuickBooks as US-Company and Non-US-Company.
For this example, we added the following products and added price adjustment and tax information. ArcSite will observe the correspondence between the data pushed to QuickBooks and the takeoff data from the drawing to ensure that they match.
Based on the Company Type and Takeoff Tax Group information, QuickBooks Custom Tax Code is obtained.
When pushing the Product line items to the Invoice or Estimate, determining the Tax Code information for each line is necessary. ArcSite will use a filter condition of the Tax Group Name to query the request.
Taxcode → Query a TaxCode API
If the Tax Code can be obtained, the Tax Code ID will be written directly into the Sales Detail Line in QB, and if it is not found, the related information of the Tax Group will be used to create the corresponding Tax Service to create the Tax Code.
To create the Tax Service, the default Tax Agency information must be first queried, and then the corresponding Tax Rate list is created to fill the Tax Service.
TaxService → Create a taxservice API TaxRate -> Create a taxservice API TaxAgency -> Query a default TaxAgency API
Once the Tax Code exists, the Tax Code will be used to fill the Detail Lines.
The Sales Item Line Detail data as well as the Project Total, Markup, Discount, and Other Items information are queried and sync as follows:
Product Line Items： After the Customer and Tax Code are determined, the data of the sales line item can be filled in correspondingly through the product data inserted in the Drawing. Each product in the Drawing takeoff represents a line in the Invoice/Estimate. The push logic will write the product's price, quantity, taxable, and other information into the Line Detail. If the product is associated with a QB item, the associated information will also be pushed. Lines carrying QB item association information will display the name of the corresponding item in the Invoice, and if the item is an inventory-type item, the inventory stock will also be updated.
Adjustment： At the same time, QB's Invoice supports the push of discount information, and the adjustment price in the Drawing will also be pushed to QB. If there is a markup, it will be pushed as a separate line with the name "Service" and the description of the markup will be written in the description field.
Tax Total: The calculation of taxes will be pushed in an "after discount" manner and the tax total calculated by ArcSite will be included as overwrite information in the request to ensure that the tax data is consistent with ArcSite and maintain complete consistency of the project total
Once the data is filled, the save interface for the Invoice or Estimate can be requested to generate the Invoice or Estimate.
Invoice → Create an invoice API Estimate → Create an Estimate API
Mapping ArcSite Products to QuickBooks Items
ArcSite supports a product-level integration with QuickBooks. The product-level integration can be done on the ArcSite Admin Page → Integrations → Product Manager page by linking your QuickBooks Items with your ArcSite Products.
* This action is not currently available via the mobile app.
Additionally, ArcSite also supports the direct creation of three types of QuickBooks Item:
Creating a new item in QuickBooks
When you click the "Connect" button, the default option in the pop-up window is "Create new product", which refers to creating the item in QuickBooks. To create an item, you need to associate it with the corresponding account information in QuickBooks, and this requires a query request to QuickBooks Accounts.
Accounts → Query Accounts API
It is important to select the item type when creating, as different types of items require different types of accounts, and, for inventory, the quantity is also a crucial piece of data that needs to be provided.
After filling in all the information, clicking "OK" will complete the creation of the item and bind it directly to the selected product.
As an example:
When creating a new product, if you entered Qty On Hand = 100, after pushing an invoice using that product to QuickBooks where the quantity used was 30, the Qty On Hand quantity becomes 70 in QB instantly.
Connecting an ArcSite Product to an existing QuickBooks Item
To connect an existing item, toggle to "Connecting to existing product" and then click "Select".
A window of the QuickBooks items list will pop up. The items are divided into 3 categories according to their types in the window.
You can select items of each category separately or search by name using the search bar. The data source is from the request of the QuickBooks Items Query interface.