1. Overview
Salesforce is a cloud-based CRM software designed for service, marketing, and sales.
Salesforce Platform Events are secure and scalable messages that contain data. Publishers push out event messages that subscribers receive in real time.
The Salesforce Platform Event source supports real-time syncs.
You can find the parameters in the Info tab below (Image 1).
Title
Mandatory. Input a name for your data sync
Salesforce Platform Event
Variables
Permissions
Data syncs are role based access systems where you can give specific groups read, write, execute, and/or all of the above with admin access. Inputting at least an Admin Group is mandatory.
The following table outlines the mandatory and optional parameters you will find on the Source tab (Image 2).
The following parameters will help to define your data sync source and how it functions.
Source
Mandatory. Select your source from the drop down menu.
Salesforce Platform Event
To set up a real-time sync, you must configure your Listener values. You can do so through the Connections UI.
Note that If there is more than one listener associated with your data sync, you will need to configure the addition listeners via the Listener Configuration table.
Reset behaviour
Auto Offset Reset
Earliest, Latest or None. In the case where the listener is started and either there is no last message ID, or when the last message ID is invalid (due to it being deleted or it's just a new listener), it will use this column as a fallback to determine where to start reading events from.
None
Topic JSON
The below table can be used to help create your Topic JSON needed to set up a real-time sync.
Name
Mandatory. The name of the Platform Event, as it appears in Salesforce, that you want to subscribe to.
Notification__e
Example Topic JSON
Connection attributes
The below table can be used to help create your Connection Attributes JSON needed to set up a real-time sync.
ApiVersion
Mandatory. Your Salesforce API Version. Note that this needs to be an exact match; for instance 47.0
can't be written as simply 47
.
47.0
GrantType
This value should be set to password
.
password
ClientId
The encrypted Salesforce Client ID. You can encrypt this value using the Cinchy CLI.
Bn8UmtiLydmYQV6//qCL5dqfNUMhqchdk959hu0XXgauGMYAmYoyWN8FD+voGuMwGyJa7onrc60q1Hu6QFsQXHVA==
ClientSecret
The encrypted Salesforce Client Secret. You can encrypt this value using the Cinchy CLI.
DyU1hqde3cWwkPOwK97T6rzwqv6t3bgQeCGq/fUx+tKI=
Username
The encrypted Salesforce username. You can encrypt this value using the Cinchy CLI.
dXNlcm5hbWVAZW1haWwuY29t
Password
The encrypted Salesforce password You can encrypt this value using the Cinchy CLI.
cGFzc3dvcmRwYXNzd29yZA==
InstanceAuthUrl
The authorization URL of the Salesforce instance.
The Schema section is where you define which source columns you want to sync in your connection. You can repeat the values for multiple columns.
Name
Mandatory. The name of your column as it appears in the source.
Name
Alias
Optional. You may choose to use an alias on your column so that it has a different name in the data sync.
Data Type
Mandatory. The data type of the column values.
Text
Description
Optional. You may choose to add a description to your column.
Select Show Advanced for more options for the Schema section.
Mandatory
If both Mandatory and Validated are checked on a column, then rows where the column is empty are rejected
If just Mandatory is checked on a column, then all rows are synced with the execution log status of failed, and the source error of "Mandatory Rule Violation"
If just Validated is checked on a column, then all rows are synced.
Validate Data
If both Mandatory and Validated are checked on a column, then rows where the column is empty are rejected
If just Validated is checked on a column, then all rows are synced.
Trim Whitespace
Optional if data type = text. For Text data types, you can choose whether to trim the whitespace._
Max Length
Optional if data type = text. You can input a numerical value in this field that represents the maximum length of the data that can be synced in your column. If the value is exceeded, the row will be rejected (you can find this error in the Execution Log).
You can choose to add in a Transformation > String Replacement by inputting the following:
Pattern
Mandatory if using a Transformation. The pattern for your string replacement.
Replacement
What you want to replace your pattern with.
Note that you can have more than one String Replacement
You have the option to add a source filter to your data sync. Please review the documentation here for more information on source filters.
## Next steps
Configure your Destination
Define your Sync Actions.
Add in your Post Sync Scripts, if required.
If more than one listener is needed for a real-time sync, configure it/them via the Listener Config table.
To run a real-time sync, enable your Listener from the Execution tab.
Optional. Review our documentation on for more information about this field.
Earliest will start reading from the beginning on the queue (when the CDC was enabled on the table). This might be a suggested configuration if your use case is recoverable or re-runnable and if you need to reprocess all events to ensure accuracy. Latest will fetch the last value after whatever was last processed. This is the typical configuration. None won't read start reading any events. You are able to switch between Auto Offset Reset types after your initial configuration through the process outlined