# Salesforce QuickBooks Integration with Multiple QuickBooks

To integrate multiple QuickBooks with Salesforce using DBSync, create multiple Projects in DBSync. And, define the identifier field in each Salesforce Object that is part of the integration.

In this section, we discuss how different Salesforce Accounts are integrating with different QuickBooks Instances. Similarly, the integration discussed will also demonstrate each new Account created using QuickBooks Customer. Furthermore, it will be marked for specific QuickBooks Instances. So the integration flow will be Bi-Directional between Accounts and Customer.

Two Projects need to be created in DBSync, namely,

* **SalesforceQuickBooks1**
* **SalesforceQuickBooks2**

#### **Part 1**

1. In Salesforce, click and **Setup** **> Customize** **> Account** **> Fields.** Then, click **New** in Account Custom Field and Relationships.
2. Select the Picklist Option button and click **Next.**
3. Enter the field label and list of values for picklist. For this demo, use 2 values - *QuickBooks1* and *QuickBooks2*.  Select all the checkboxes and click **Next.**
4. In the Next Screen, select the Profiles and fields that you want to make visible. Then, click **Next.**
5. On Add to Page Layout, select the Page Layout you want to add the fields too. Then, click **Save** to save and create the custom fields.
6. The Field is created and can be viewed in the Accounts Custom Fields and Relationships section of Account Fields.
7. Go to Account in your Salesforce. Then, open an account. In this tutorial, I am opening Delphi Chemicals.
8. Select *QuickBooks1* from the **QuickBooks** picklist and click on **Save**.
9. Similarly, open one more Account in your Salesforce and select QuickBooks2 from the **QuickBooks** field. In this tutorial, I will mark *Abbott Insurance* as the second Account.
10. Select *QuickBooks2* from the **QuickBooks** Field and click **Save**.
11. &#x20;Log in to your DBSync account.
12. Navigate to Project and select *SalesforceQuickBooks1*.
13. On the left panel of Project console, click Connectors. You will see Salesforce and QuickBooks Connectors. Make sure that both the Connectors are validated.
14. Go to the Project SalesforceQuickBooks1 and make sure that the flow **AccountToCustomer** is active - i.e., its status should be **Enabled**.
15. Open flow AccountToCustomer. In the Advanced Query Builder, you see a query. Edit the query - as shown below - and click **Save Workflow.**

{% code overflow="wrap" %}

```
select {!.} from Account where AVSFQB__QuickBooks_Id__c=' ' and QuickBooks__c='QuickBooks1' 
```

{% endcode %}

16. Make sure the flow CustomerToAccount is active.

#### Part 2

1. Open flow CustomerToAccount. Here, you will see a list of available Rules at the bottom.
2. Open "**Sequence No 1**" and click the map. You will see mapping
   1. ***AVSFQB\_QuickBooks\_id\_\_c = VALUE("ListID") and edit this mapping as follows***
   2. ***AVSFQB\_QuickBooks\_id\_\_c = "QuickBooks1"+VALUE("ListID")***
3. The next mapping is **Id** **=** **TLOOKUP(**\***).** Edit this mapping as shown below and click **Save and Close.**

**Id=select id, name from account where&#x20;*****AVSFQB\_QuickBooks\_id\_\_c*****='QuickBooks1'**

4. Go to rule "**Sequence No 2**" of CustomerToAccount Workflow.
5. Click on Map, and you will see mapping **AVSFQB\_***QuickBooks\_id***\_\_c = VALUE("ListID").**
6. Edit this mapping as shown below:

**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks1"+(VALUE("ListID"),"-").**

7. Add a mapping in this window as **QuickBooks\_\_c = Value("QuickBooks1").**
8. Now go to "**Sequence No 3**" of QuickBooksToSalesforce Workflow.
9. Click on Map and you will see the mapping **AVSFQB\_QuickBooks\_id\_\_c = VALUE("ListID") and edit this mapping as follows AVSFQB\_QuickBooks\_id\_\_c = "QuickBooks1"+VALUE("ListID")**
10. Edit the following mapping as below and click on the **Save & Close** button.

**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks1"+(VALUE("ListID"),"-").**

11. Go to "**Sequence No 4**" of workflow CustomerToAccount and click on Map.
12. You will see mapping **AVSFQB\_***QuickBooks\_id***\_\_c = (VALUE("ListID")).**&#x20;
13. Edit this mapping as below and click on the **Save & Close** button.

&#x20;**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks1"+(VALUE("ListID"),"-").**

14. Go to Project **SalesforceQuickBooks2** and open it for editing.
15. On the left panel of Project console, click on Connectors. Here, you will see Salesforce and QuickBooks Connectors. Make sure that both the Connectors are validated.
16. Go to the Task SalesforceQuickBooks2 and make sure that the workflow **AccountToCustomer** is active - i.e., its status should be **Enabled**.
17. Open flow AccountToCustomer. In the Advanced Query Builder, you see a query. Edit the query as shown below and click **Save Workflow.**&#x20;

{% code overflow="wrap" %}

```
select {!.} from Account where AVSFQB__QuickBooks_Id__c=' ' and QuickBooks__c='QuickBooks2'
```

{% endcode %}

#### Part 3

1. Make sure the flow CustomerToAccount is active by keeping the status **Enabled**.
2. Open the flow CustomerToAccount.&#x20;
3. Open the rule "**Sequence No 1**" and click map. Here, you will see mapping **AVSFQB\_***QuickBooks\_id***c = VALUE("ListID")** and edit this mapping as follows **AVSFQB\_***QuickBooks\_id***\_\_c** **="QuickBooks2"+(VALUE("ListID"),"-").**
4. The next mapping is **Id** **=** **TLOOKUP(**\***).** Edit this mapping as below and click on **Save and Close.**

**Id=select id, name from account where QuickBooks\_\_c='QuickBooks2'**

5. Go to rule "**Sequence No 2**" of CustomerToAccount Workflow.
6. Click on Map. Here, you will see mapping **AVSFQB\_***QuickBooks\_id***\_\_c = (VALUE("ListID")).**
7. Edit this mapping as below:

**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks2"+(VALUE("ListID"),"-").**

8. Add a mapping in this window as **QuickBooks\_\_c = Value("QuickBooks2").**
9. Go to "**Sequence No 3**" of QuickBooksToSalesforce Workflow.
10. Click on Map here and you will see the mapping **AVSFQB\_QuickBooks\_id\_\_c "QuickBooks1"+VALUE("ListID")**
11. Edit the following mapping, as shown below, and click  **Save & Close**.

**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks2"+(VALUE("ListID"),"-").**

12. Go to "**Sequence No 4**" of workflow CustomerToAccount and click on Map.
13. You will see mapping **AVSFQB\_***QuickBooks\_id***\_\_c = (VALUE("ListID")).**&#x20;
14. Edit this mapping as shown below, and click **Save & Close**.

**AVSFQB\_***QuickBooks\_id***\_\_c** **=** **"QuickBooks2"+(VALUE("ListID"),"-").**

15. Close the mapping window. Go to **QuickBooks Web Connector.** Enter your DBSync password for both the profiles. Select the profiles and click on **Update Selected** to start the sync.

The Sync will start, and it will update Salesforce Accounts as Customers in QuickBooks. Similarly, all the Customers of QuickBooks that don't exist in Salesforce will be created in Salesforce with an identity field marked for specific QuickBooks File.

That's how DBSync handles Multiple QuickBooks files or instances. One thing to keep in mind before following the aforementioned steps is that you need DBSync platform Licenses if you are using more than one QuickBooks file. You can also configure each Profile in separate QuickBooks Web Connector instances if you are running QuickBooks on more than one machine.
