Enabling Salesforce synchronization entails a number of steps, namely:
- Set-up a connection profile - This allows BillingPlatform to connect to the remote Salesforce system.
- Create a sync job - This creates the actual job and entity/field mapping that will push/pull data between the two systems. This will require a connection profile to be able to know what Salesforce system it will connect to.
This section will describe the steps needed to complete the processes above.
Step 1: Set up a Connection profile.
Go to Setup > Data Management > Salesforce Data Sync and then click the Connections tab. This will display the existing connection profiles if any such as the screenshot below.
Click the New Connection button to create a new profile or click an existing profile is you just need to update it. The data entry page is then displayed such as the one below:
Fill in the details as appropriate using the reference table below for more details on the fields:
|Connection Type||Indicates the type of connection. Test is normally used when the sync is still being tested and then set to Production when the sync is ready to go live.|
|Name||Unique name of the connection profile.|
|Username||Salesforce username to be used to log into the remote Salesforce instance.|
|Password||Salesforce password of the username to be used to log into the remote Salesforce instance.|
|Public Key||Public key to be used from the OAuth-enabled settings in Salesforce. Refer to the API documentation of Salesforce in order to generate this.|
|Secret||Secret key to be used from the OAuth-enabled settings in Salesforce. This goes hand in hand with the Public Key value and is obtain from the Salesforce instance.|
Click Test Connection to try and connect to the Salesforce instance. A pop-up containing the status of the connection test will be displayed. If the test is not successful, it will display the error encountered by the platform when trying to connect to the Salesforce instance such as the example below:
Click Save to finish setting up the new connection (or updating an existing connection).
Step 2: Create a Sync Job.
Go to Setup > Data Management > Salesforce Data Sync and then click the Sync Jobs tab. This will display the existing connection profiles if any such as the screenshot below.
Click the New Job button to create a new sync job, or click an existing job to view/udpate its details. The data entry page is displayed such as the one below:
Fill in the details of the object to object mapping by entering the appropriate data. Refer to the field definition below for more details on what information is needed in each field.
|Connection||Select the connection profile that will be used for the job.|
|Job Name||Unique name of the job. It is recommended to be descriptive and short when putting together the name of the job.|
|Batch Size||Indicates the number of records to pull or to push to/from Salesforce. Maximum data push and pull for Salesforce is typically 25 due to application limitations so records are synced in batches.|
|Job Status||Indicates the status of the job whether it is ACTIVE and will perform the sync or INACTIVE where the sync will not be done.|
Indicates the direction of the job sync. It can either be:
Indicates the type of sync that will be done. Available options are:
|Salesforce Object||Indicate the object in Salesforce where the data will be coming from (or pushed if it is a BillingPlatform to Salesforce sync).|
|BillingPlatform Object||Indicate the entity in the platform where the data will be come from (or pushed if it is a Salesforce to BillingPlatform sync).|
Applicable when the sync type is UPSERT. Otherwise, this section is hidden. This table allows for the mapping to the destination system's external fields. If the field value(s) is(are) not existing in the destination system, the record will be created. Otherwise, the existing record will be updated.
Add the field mappings between the source system and destination system relative to the object/entity to be synced.
Allows the definition of field value filters on the source system. For example, only certain values in the ACCOUNT.AccountType field need to be synced c/o this job. The filter for the field can be added in this table.
|Criteria Join||Similar to the other criteria filters in the platform, this allows for the use of logical operators and groupings after entering the various field criteria. For example:
1 AND (2 OR 3)
|Run Cycle||Indicates the interval when the sync job is executed.|
|Date Start On||If the job is expected to start on a specific schedule (e.g. to run every midnight, enter the date and 00:00:00).|
After completing the sync job details, it can be immediately tested using the Test Sync button. It will display a pop-up with the result of the test. If it fails, it will display the error encountered similar to the Test Connection feature of the Connection Profile.
Click Save when you are happy with the sync job. If the Job Status is set to ACTIVE, it will execute on the date and time indicated in the Date Start On field and will run in regular intervals depending on the frequency selected in the Run Cycle field.
Step 3. Validate the sync activities
The Salesforce Data Sync feature synchronizes objects on a per-record basis. In order to confirm that the synchronization is happening correctly, verify that the synced records after the sync job runs are the same or are as expected based on the sync job configuration and mapping between Salesforce and BillingPlatform.