Multicurrency in Salesforce - QuickBooks Desktop Integration

Integration from Salesforce to QuickBooks

If multicurrency is enabled in Salesforce and QuickBooks then, we need to make some changes in DBSync settings and mappings to achieve seamless integration with MultiCurrency.

  1. Go to www.mydbsync.com and select Customer Login. Enter your Username and Password and click on Sign in to access the Project page.

  2. Ensure that Salesforce and QuickBooks connectors are validated and that you have downloaded the SalesforceQuickBooksBiDirectional template.

  3. Open the relevant project to view the available processes. Select and open the relevant Process. You will see a list of available Workflows.

  4. Open workflow OpportunityToInvoice. Replace the reader query in the Advanced Query Builder with the following query and then, click on the Save & Close button.

SELECT Opportunity.Id,Opportunity.AVSFQB__Primary_Contact__r.FirstName,Opportunity.AVSFQB__Primary_Contact__r.LastName,Opportunity.Owner.QB_SalesRep_ID__c,
Opportunity.AVSFQB__Primary_Contact__r.Email,Opportunity.AVSFQB__QuickBooks_Id__c,Opportunity.AccountId,LastModifiedDate,Opportunity.Account.Id,
Opportunity.Account.CurrencyIsoCode,Opportunity.Account.Name,Opportunity.Account.BillingStreet,Opportunity.Account.BillingCity,
Opportunity.Account.BillingState,Opportunity.Account.BillingPostalCode,Opportunity.Account.BillingCountry,Opportunity.Account.ShippingStreet,
Opportunity.Account.ShippingCity,Opportunity.Account.ShippingState,Opportunity.Account.ShippingPostalCode,Opportunity.Account.ShippingCountry,
Opportunity.Account.Fax,Opportunity.Account.Phone,Name,Description,CloseDate ,(SELECT Quantity,UnitPrice,Description,Opportunity.owner.FirstName,
Opportunity.owner.LastName,Opportunity.Id,Opportunity.CloseDate,PricebookEntry.Name,PricebookEntry.Product2.ProductCode,PricebookEntry.Product2.Name,
PricebookEntry.Product2.Description,PricebookEntry.Product2.Id,PricebookEntry.UnitPrice,PricebookEntry.Product2.AVSFQB__QuickBooks_ItemType__c FROM
OpportunityLineItems) ,Opportunity.Account.AVSFQB__QuickBooks_Id__c,Opportunity.AVSFQB__Generate_Object__c FROM Opportunity where
Opportunity.AVSFQB__Generate_Object__c = 'Invoice'
  1. In the Rules section, you will see a list of 9 Rules. Open the map of the sequence no.1 Rule.

  2. Add the following mapping in the mapping window and click on the Save & Close button.

CustomerAddRq/CustomerAdd/CurrencyRef/FullName = IF(VALUE("Account/CurrencyIsoCode").equals("USD"),"US Dollar",IF(VALUE("Account/CurrencyIsoCode").equals("GBP"),"British Pound Sterling",IF(VALUE("Account/CurrencyIsoCode").equals("EUR"),"Euro",IF(VALUE("Account/CurrencyIsoCode").equals("CAD"),"Canadian Dollar",""))))

Add the same mapping to following workflows as well if, you are using these workflows in Integration:

  • OpportunityToSalesOrder

  • OpportunityToSalesReceipt

  • OpportunityToEstimate

  • OpportunityToCreditMemo

Integration from QuickBooks to Salesforce

If QuickBooks is enabled with Multi-Currency then, the following changes need to be made to the mappings in DBSync.

  1. Go to www.mydbsync.com and select Customer Login. Enter your Username and Password and click on Sign in. Click on Launch to launch the DBSync Project page.

  2. Ensure that the Salesforce and QuickBooks connectors are validated andthat you have downloaded the SalesforceQuickBooksBiDirectional template.

  3. Open the relevant project to view the available processes. Select and open the relevant Process. You will see a list of available Workflows.

  4. Open workflow CustomerToAccount. In Rules Section, Open the Mapping for "Sequence No 1"

  5. Open workflow InvoiceToOpportunity. In the Rules section, open the mapping for "Sequence No 1 and 2".

  6. Add the mapping where target field = "CurrencyIsoCode" and add the following code under source field:

IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("US Dollar"),
"USD",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("British Pound Sterling"),
"GBP",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("Euro"),
"EUR",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("Canadian Dollar"),"CAD",""))))
  1. Similarly, open the mapping for "Sequence No 5" in the new window/tab.

  2. Add the mapping where target field = "CurrencyIsoCode". Then, add the following code under source field:

IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("US Dollar"),
"USD",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("British Pound Sterling"),
"GBP",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("Euro"),
"EUR",IF(VALUE("CustomerRef/FullName/CustomerRet/CurrencyRef/FullName").equals("Canadian Dollar"),"CAD",""))))
  1. Double-click on the process flow, "BiDirectionalSync". Then, open the "InvoiceToInvoice" state. Open the mapping "Sequence No 1" and add the same mapping as shown in the example above.

This completes the Multicurrency customizations.

Last updated