fbpx

Linking Existing Data Between Salesforce and QuickBooks

Introduction

This document provides a step-by-step guide on linking your existing Salesforce data with the corresponding QuickBooks data using Accord Sync. Accord Sync facilitates bi-directional data synchronization between Salesforce and QuickBooks, ensuring data consistency and reducing redundant manual tasks.

Retrieving Data

Before you can prepare your Salesforce data for linking with QuickBooks, it is essential to retrieve relevant data from both Salesforce and QuickBooks. This section outlines the steps to query Salesforce for necessary fields and how to use “Accord Super Admin” to query QuickBooks. These steps will help you match records between the two platforms efficiently.

Querying Salesforce

  1. Identify Key Fields: Determine which fields in Salesforce are required to match records with QuickBooks. Typically, these include fields like Customer Name, Invoice Number, or any unique identifier used in your organization.
  2. Salesforce Query: Use Salesforce’s query language, SOQL (Salesforce Object Query Language), to retrieve these fields and add any necessary filters/conditions to the query to only return the data you want to link. For example:
    • SELECT Id, Name, Custom_Identifier__c FROM Account
    • This query retrieves the Id, Name, and a custom identifier from the Account object, which you can use to match with QuickBooks records.
  3. Data Review: After running the query, review the data to ensure it contains the necessary information for matching with QuickBooks records.

Querying QuickBooks

  1. Access Accord Super Admin: Navigate to the Accord Super Admin interface which can be found through the App Launcher in Salesforce. This tool provides advanced capabilities to interact with QuickBooks data.
  2. Run QuickBooks Query: Use the QuickBooks query language to extract relevant data. A common query you might run is:
    • SELECT Id, Name, SyncToken FROM Customer
    • This query retrieves the customer ID, Name, and sync token from QuickBooks.
  3. Data Analysis: Analyze the retrieved data to find corresponding records in Salesforce. Pay special attention to fields like the customer ID and Name, as these will be crucial in matching records between the two platforms.

Preparing Data

Before proceeding with data linkage, it is crucial to prepare your Salesforce data with the necessary Accord Sync fields. This preparation involves a data load to update Salesforce records with three essential Accord Sync fields:

  1. Accord QB Id: This field holds the unique identifier for the corresponding QuickBooks record. It follows the following format: {QuickBooks Company Id}-{QuickBooks Record Id}, i.e. 123456789-12
  2. Accord QB Company Id: This field stores the identifier for the QuickBooks company associated with the Salesforce record, i.e. 123456789
  3. Accord Last Sync: This field records the Date/Time of the last synchronization between Salesforce and QuickBooks.

After updating these fields, you need to create Accord Record Status records for each linkage. These records should include the following fields:

  • appclipse__SF_ID__c: Salesforce record ID. Format: Alphanumeric string.
  • appclipse__QB_Id__c: QuickBooks record ID. Format: {QuickBooks Company Id}-{Type}-{QuickBooks Record Id}
  • appclipse__Type__c: Type of record (e.g., Customer, Invoice, Payment). This is the Master Label of the corresponding Accord Sync Object Configuration metadata record. Format: Text string.
  • appclipse__Sync_Token__c: A token used for managing record versions in QuickBooks. Format: Number.
    • Important: If you plan on performing a data transfer from QuickBooks to Salesforce, then leave this field blank because Accord Sync will ignore syncs if the most up to date Sync Token is found on the corresponding Accord Record Status.
  • appclipse__Status__c: Status of the record in the sync process. We recommend setting it to In Sync for the purposes of linking data. Possible values include: New, Sync Requested, In Sync, Syncing, Error. Format: Text string.

Important Note
Before proceeding with the data linkage, turn off all related automation that triggers a sync, as well as any webhooks enabled for the target object. This precaution is to avoid any unexpected data syncs during the setup process.

Performing Data Transfer (if needed)

Data transfer between Salesforce and QuickBooks can be initiated in both directions. To trigger a sync for the records that we have previously linked, we will insert QBO Sync platform events for each record we want to sync. Here’s how to perform it:

  1. Salesforce to QuickBooks:
    • Create a QBO Sync platform event in Salesforce.
    • Specify the details of the records to be synced.
      • appclipse__Id__c: The Id of the Salesforce record.
      • appclipse__Type__c: The Master Label of the Accord Sync Object Configuration, i.e., Customer.
      • appclipse__Platform__c: The source platform, so in this case it would be “Salesforce”.
      • appclipse__QB_Company_Id__c: The Id of the QuickBooks Company, i.e., 123456789
    • The event triggers data transfer to QuickBooks.
  2. QuickBooks to Salesforce:
    • Similarly, create a QBO Sync platform event in Salesforce.
    • Specify the QuickBooks record that needs to be synced.
      • appclipse__Id__c: The Accord QB Id for the QuickBooks record, i.e., 123456789-12.
      • appclipse__Type__c: The Master Label of the Accord Sync Object Configuration, i.e., Customer.
      • appclipse__Platform__c: The source platform, so in this case it would be “QBO”.
      • appclipse__QB_Company_Id__c: The Id of the QuickBooks Company, i.e., 123456789
      • appclipse__Operation__c: The data operation that was performed which can be Create, Update, or Delete. In this case, Accord Sync treats Update as an Upsert, so we recommend “Update”.
    • Initiate the sync to update Salesforce records.

Conclusion

By following these steps, you can effectively link your Salesforce data with QuickBooks using Accord Sync. Remember to update the Accord Sync fields accurately and disable any potential conflicting automation during the setup process. This will ensure a smooth and efficient data synchronization between the two platforms.

Go to Top