[Overview: |#_Toc381191457]
[Data Flow: |#_Toc381191458]
[Process Map: |#_Toc381191459]
[Pre-requisites for Integration: |#_Toc381191460]
[DBSync package (QuickBooks Integration) Installation in Salesforce: |#_Toc381191461]
[DBSync Profile Setup: |#_Toc381191462]
[Running the Integration: |#_Toc381191463]



{anchor:_Toc381191457}

h1. {color:#000000}{*}Overview:*{color}

DBSync for Salesforce & QuickBooks Online Integration is an easy to use application to integrate Salesforce Accounts / Contacts, Products, Opportunity with QuickBooks Online Customers, Items, Invoice, Sales Receipt & Credit Memo. This is also useful to migrate historical QuickBooks Online data into Salesforce or vice versa.
\\
DBSync provides Bi-directional sync with pre-built field to field map along with flexibility for more complex and dynamic mapping capability.  DBSync also has an automatic online update, enabling DBSync customers to enjoy all the product updates and features with every new release.

h1. {anchor:_Toc381191458}{color:#000000}{*}Data Flow:*{color}

Data flow of Bi-directional integration between Salesforce & QuickBooks Online is shown in the below table.
\\

!Data Flow1.png|align=center!

{anchor:_Toc381191459}

h1. *Process Map:*

Process Map of Bi-directional integration between Salesforce & QuickBooks Online is shown in the below image.

\\  !worddavf093c88d378684348058851b88a0d9c6.png|height=587,width=666,align=center!

{anchor:_Toc381191460}

h1. *Pre-requisites for Integration:*

* Integration of Salesforce to QBOE transaction is invoked provided the Generate field in Salesforce Opportunity is selected with the required transaction.

* It is mandatory that SF Opportunity (to be integrated with QBOE Invoice) is associated with the respective SF Account & also should have Products with Standard Price Book attached to it for DBSync to invoke integration.

h1. {anchor:_Toc381191461}{color:#000000}{*}DBSync package (QuickBooks Integration) Installation in Salesforce:*{color}

* Click on the below link to install the DBSync App from AppExchange

[https://login.salesforce.com/?startURL=%2Fpackaging%2FinstallPackage.apexp%3Fp0%3D04t600000001gWU&crc=1|https://login.salesforce.com/?startURL=%2Fpackaging%2FinstallPackage.apexp%3Fp0%3D04t600000001gWU&crc=1]{color:#ff0000}.{color}\\
* Enter your Salesforce Username and Password to install DBSync Package in that Salesforce instance. The Salesforce instance must have the administrative privileges to install App.

* DBSync Package Installation Details will be displayed in your Salesforce instance. Click on '_Continue_'.

\\  !worddav897bc16ebea8dffd4d24f7e0a3c2a2a8.png|height=288,width=666,align=center,border=1!\\
* Approve Package API Access and then click on '_Next_'.

\\  !worddav9928033bad9893c088720a6a463bc637.png|height=420,width=666,align=center,border=1!\\
* Choose Security Level to Grant Access and then click on '_Next_'.

\\  !worddavbc0cd8569759b2ef4ce340c53cc70c07.png|height=198,width=666,align=center,border=1!\\
* Package is ready to be installed. Click Install to '_install'_.

!worddavde3c6fd9452ad1d82d2ef064fc435599.png|height=166,width=666,align=center,border=1!\\
* _Install complete_ message will be displayed which confirms that DBSync Package is installed.

!worddav55e2be20322e5f66da596022de897b0d.png|height=216,width=666,align=center,border=1!\\
* Go to setup  !worddav634a90bd68d431e5c420d56ac9ead21d.png|height=10,width=37!  Customize  !worddav634a90bd68d431e5c420d56ac9ead21d.png|height=10,width=37!  Account  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  'Page Layout'  !worddavb61f71a5c4a6a32bc9f3df8f32145341.png|height=11,width=37!  Edit the Page Layout. Under the Page Layout drag the fields specified below to add it in Page Layout and Save.
** Fields: "Quickbooks Id", "QB Error"
** Button: " Update Account To QBOE"



!worddavf409aa735edd8f047682119f32e06eec.png|height=405,width=666,align=center,border=1!\\
* Go to setup  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  Customize  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  Contact  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  'Page Layout  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  Edit the Page Layout.

* Under the Page Layout drag the fields and buttons specified below to add it in Page Layout and Save.
** Fields: "Quickbooks Id", "QB Error", "QBName"
** Button: " Update Contact To QBOE"

!worddav0e3a767f36054f059cfb2bf35bf83ccb.png|height=364,width=666,align=center,border=1!\\
* New Buttons "Update Opportunity To QBOE_New" and "Update Invoice from QBOE_New" should be created in Salesforce Opportunity by referring the below steps.

Go to setup  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Customize  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  Opportunity  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  'Buttons, Links and Actions'  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! New Button or Link.
Enter the below mentioned details and save to create two buttons.
\\


*Label:* Update Opportunity To QBOE_New

*Behavior:* Execute JavaScript

*Display Type:* Detail Page Button

*OnClick JavaScript:* var URL="{\!$User.AVSFQB__QBOE_DBSync_Server__c}/qboe.m?sfUrl={\!$Api.Partner_Server_URL_140}&qboeCT={\!$User.AVSFQB__QBOE_Connection_Ticket__c}&pdl=processdefinition_SFQB_OpportunityTo{\!Opportunity.AVSFQB__Generate_Object__c}.xml&recordId={\!Opportunity.Id}&dbsyncId={\!$User.AVSFQB__DBSync_Id__c}&profileName={\!$User.AVSFQB__DBSync_Profile__c}&sessionId={\!$Api.Session_ID}&dbsyncPasswd={\!$User.AVSFQB__DBSync_Passwd__c}";
window.open(URL,"DBSync","menubar=0,resizable=0,width=650,height=300");

\\  !worddav7d63493d58da95bf16ba18cf074bf105.png|height=247,width=666,align=center,border=1!\\
\\
*Label:* Update Invoice from QBOE_New

*Behavior:* Execute JavaScript

*Display Type:* Detail Page Button

*OnClick JavaScript:* var URL="\{\!$User.AVSFQB\__QBOE_DBSync_Server{_}{_}c\}/qboe.m?sfUrl=\{\!$Api.Partner_Server_URL_140\}&qboeCT=\{\!$User.AVSFQB{_}{_}QBOE_Connection_Ticket{_}{_}c\}&pdl=processdefinition_QBSF_InvoiceToInvoice.xml&recordId=\{\!Opportunity.Id\}&dbsyncId=\{\!$User.AVSFQB{_}{_}DBSync_Id{_}{_}c\}&profileName=\{\!$User.AVSFQB{_}{_}DBSync_Profile{_}{_}c\}&sessionId=\{\!$Api.Session_ID\}&dbsyncPasswd=\{\!$User.AVSFQB{_}{_}DBSync_Passwd_\_c\}"; window.open(URL,"DBSync","menubar=0,resizable=0,width=650,height=300");

\\  !worddav15652ef26a9488728fe2b7efd81c1e1d.png|height=247,width=666,align=center,border=1!\\
* These new buttons along with the other required fields should be included in the page layout by following the below steps.

Go to setup  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Customize  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37!  Opportunity  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  'Page Layout'  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Edit the Page Layout.
\\
* Under the Page Layout drag the fields specified below to add it in Page Layout.
** Fields: "Quickbooks Id", "Primary Contact", "Generate", "QB Error"
** Buttons: "Update Opportunity To QBOE_New", "Update Invoice from QBOE_New"

!worddav9f9344d8ffc939c70eb3b0a841ce2358.png|height=347,width=666,align=center,border=1!\\
* Move Invoices from the Opportunity Related List to the page layout.

* Click on Invoices in the Related List Section and hit "edit properties" button. Select columns as Invoices, Invoice number, Total Invoice Amount, Payments, Balance, Days Outstanding, and Transaction Date. Save the opportunity 'page layout'.

!worddav720ef7255c915b8383b949a877381c52.png|height=399,width=666,align=center,border=1!\\
* Go to Setup  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Customize  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Opportunity  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Opportunity Products  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Edit Page Layout to move 'QuickBooksID' field to the page layout.

!worddav61a9d9b3bafd45bb6598d99d75e3353f.png|height=309,width=666,align=center,border=1!\\
\\
* New Button "Update Product To QBOE_New" should be created in Salesforce Product by referring the below steps.

* Go to setup  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Customize  !worddav0b8fec8d6f166595e9d433ac50d97557.png|height=12,width=37! Product  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  'Buttons and Links'  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! New Button or Link.

* Enter the below mentioned details and save to create two buttons.

*Label:* Product To QBOE_New

*Behavior:* Execute JavaScript

*Display Type:* Detail Page Button

*OnClick JavaScript:* var URL ="\{\!$User.AVSFQB\__QBOE_DBSync_Server{_}{_}c\}/qboe.m?sessionId=\{\!$Api.Session_ID\}&sfUrl=\{\!$Api.Partner_Server_URL_140\}&qboeCT=\{\!$User.AVSFQB{_}{_}QBOE_Connection_Ticket{_}{_}c\}&pdl=processdefinition_SFQB_Item.xml&recordId=\{\!Product2.Id\}&dbsyncId=\{\!$User.AVSFQB{_}{_}DBSync_Id{_}{_}c\}&profileName=\{\!$User.AVSFQB{_}{_}DBSync_Profile{_}{_}c\}&dbsyncPasswd=\{\!$User.AVSFQB{_}{_}DBSync_Passwd_\_c\}";  window.open(URL,"DBSync","menubar=0,resizable=0,width=650,height=300");

!worddav3d96fb1ad31f5044a3e07cc39d6924c2.png|height=233,width=666,align=center,border=1!\\
* Go to Setup  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Customize  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Product  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! 'Page Layout' fields to add is "QuickBooks Item type" , "QuickBooks Id" , "QB Error", "COGS" and "OnHand'" and Buttons "Update Product To QBOE_New" to the page layout.

!worddav4388c084af3e5ac4c193b3578911855f.png|height=236,width=666,align=center,border=1!\\
* Go to setup !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! Customize !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37!  Users  !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! 'Page Layout' !worddavfded01d627e64f8ce213dd9b1f396b83.png|height=13,width=37! Edit the Page Layout. Under the Page Layout drag the fields and buttons specified below to add it in Page Layout and Save.
** Field "DBSync Id"
** Field "DBSync Passwd"
** Field "DBSync Server URL"
** Field "DBSync Profile"

h1. {anchor:_Toc381191462}{color:#000000}{*}DBSync Profile Setup:*{color}

* Go to mydbsync.com & register for Free Trial. Ensure that Source & Target Adapters are Salesforce & QuickBooks Online respectively.

!worddav4dd2e7ce4a0802d0f19016df7da82e10.png|height=366,width=666,align=center,border=1!\\
* Login using to dbsync account, go to _Company_ tab, click on _edit_ to view DBSync Org Properties. Click on _edit_ and replace the existing URL with [https://dbsync01.appmashups.com/qboev3/login.m|https://dbsync01.appmashups.com/qboev3/login.m]

!worddavcf9a5464f5b71be0cc95e5a16c7335c0.png|height=125,width=666,align=center,border=1!
!worddavc407d4509657bfc780a9649258b6a205.png|height=244,width=666,align=center,border=1!\\  !worddav285e96ff86e7028215c786b1d9f1defe.png|height=197,width=666,align=center,border=1!\\
* Go to _Process Template_ tab in DBSync home page and click on _SalesforceQuickBooksOnline:BiDirectional_ to include process template for Bi-directional Integration of Salesforce & QuickBooks Online.

* Click on _Launch_ in My Home tab, you will see _SalesforceQuickBooksOnline:BiDirectional_ profile in the next tab of your browser.

* Click on _Quick Start_ to configure Salesforce & QuickBooks Adapters

h6. *Configure Salesforce Adapter:*

* Enter Salesforce Username, Password & Security Token. Click on _Save Properties_ to save the settings. Click on _Validate_ to confirm the Salesforce connections settings are valid.

!worddav3cd6ee7d4046df2c3f2957ac139b89fb.png|height=439,width=666,align=center,border=1!\\
\\

h6. *Configure QuickBooks Online Adapter:*

* Go to QuickBooks Online Connection properties, click on _Configuration link_, which will take you to new tab to authorize Intuit to securely share your data to DBSync QBRv3. 

!worddav14c44b3e173a8b4560ac5c8401e54892.png|height=443,width=666,align=center,border=1!\\
\\
* Click on _Authorize_ to continue. Confirmation email will be displayed as "_Your QuickBooks Online is now connected with the Profile. Please close this window now"._

!worddavde4c2bf2394810112b76021b16470c68.png|height=280,width=666,align=center,border=1!\\
\\
* Go to DBSync Quick Start, all the QuickBooks Online Adapter Connection properties fields will be auto populated. Click on _Save Properties_ of to save the settings. Click on _Validate_ to confirm the QuickBooks Online connections settings are valid.

!worddaved7390f0559d3b23078cf51ee26b5d73.png|height=451,width=666,align=center,border=1!\\

{anchor:_Toc381191463}

h1. {color:#000000}{*}Running the Integration:*{color}

DBSync Integration of Salesforce & QuickBooks Online can be initiated by the following three methods.
* *Using Salesforce custom buttons:*
* *Using DBSync Scheduler:*

h6. *Using Salesforce custom buttons:*


* Salesforce custom buttons in Salesforce Accounts, Contacts and Opportunity can be used to update these specific records into QuickBooks as and when required. To set Auto run of integration, one of the next methods should be used. 
* Salesforce Custom Button *Update Account to QBOE* in Accounts Object is shown below.


!worddaved0fa108bac14afadf2f200e0be41051.png|height=156,width=666,align=center,border=1!\\

* Salesforce Custom Button *Update Contact to QBOE* in Contacts Object is shown below. 

!worddavd5877d37c82c25ea96d5aac02a660755.png|height=155,width=666,align=center,border=1!\\
\\
* Salesforce Custom Button *Update Opportunity to QBOE* and *Update Invoice from QBOE* in Opportunities Object is shown below. 

!worddav39e33556660ae1f1bd990392d0836a56.png|height=140,width=666,align=center,border=1!\\


h6. *Using DBSync Scheduler:*

* Scheduler available in DBSync Account can be used to schedule the integration.
* Login to DBSync account, click on _Launch_ to go to DBSync profile page and click on _Scheduler_ on the top right corner.

!worddav4d07fdc0816c9fbc746c23dd394fa673.png|height=138,width=666,align=center,border=1!

* Select the integration _profile_ and required _process_ to auto run. Edit the _Cron Settings_ to set the frequency of Auto run and _Save Cron Job_.

!worddavd51a7a998b8ba9f15ece5c7ef18c930e.png|height=242,width=666,align=center,border=1!\\
\\