v5.0 - v5.5 Data Sync Documentation
  • Overview
  • Release Notes
    • V4.5
    • V4.6
    • v4.7
    • v4.8
    • v4.9
    • v4.10
    • v4.12
    • v4.13
  • v4 Connections Installation Guide
    • v5 Connections and CLI Installation Guide
  • v4 Worker/Listener Installation Guide
    • v5 Worker/Listener Installation Guide
  • Upgrades & Config Changes
  • Builder Guide
    • Overview
    • Types of Data Syncs
    • Subscribing to Event Streams
      • Supported Stream Sources
        • Amazon Simple Queue Service (SQS)
        • Cinchy Change Data Capture
        • Data Polling
        • Kafka Topic
        • MongoDB
        • Salesforce
          • Push Topic
          • Platform Event
    • Configuring a Data Sync
      • Connections Experience & XML Config Reference
        • Info
          • Parameters
            • String Escape
        • Source Config Reference
          • Schema Columns
            • Calculated Column Examples
          • Auth Requests
          • Request Headers
          • Pagination
          • Source Filter
        • Target Destination Config Reference
          • Column Mappings
          • Target Destination Filter
        • Sync Behaviour
        • Post Sync
        • Permissions
        • Jobs
        • Connections Usage Example
      • Data Validation
      • Transformations
        • StringReplacement
      • Supported Data Sources
        • File Based Source
          • Binary File
            • Binary File Data Source Example
          • Delimited File
            • Delimited File Data Source XML Example
          • Fixed Width File
          • Excel
            • Excel Source XML Example
        • Cinchy Event Broker/CDC
          • Cinchy Event Broker/CDC XML Config Example
        • Cinchy Table
          • Cinchy Table XML Config Example
        • Cinchy Query
          • Cinchy Query Data Source Example
        • Copper
        • DB2
        • Dynamics 2015
        • Dynamics
        • DynamoDB
        • Kafka Topic
          • Apache AVRO Data Format
          • Kafka Topic Source Example
        • LDAP
        • MongoDB Collection
          • MongoDB Collection Source XML Example
        • MongoDB Collection (Cinchy Event Triggered)
        • MS SQL Server Query
        • MS SQL Server Table
        • ODBC Table
        • ODBC Query
        • Oracle Table
        • Oracle Query
        • Parquet
        • Polling Event
          • Polling Event Example
        • REST API (Cinchy Event Triggered)
        • REST API
          • REST API XML Example
        • SAP SuccessFactors
        • Salesforce Object (Bulk API)
        • Salesforce Platform Event
        • Salesforce Push Topic
        • Snowflake
          • Snowflake Source XML Example
        • SOAP 1.2 Web Service
      • Supported Sync Targets
        • Cinchy Table
        • DB2 Table
        • Dynamics
        • Kafka Topic
        • MongoDB Collection (Column Based)
        • MS SQL Server Table
        • Oracle Table
        • REST API
        • Salesforce
        • Salesforce Object
        • Snowflake Table
          • Snowflake Table Target XML Example
        • SOAP 1.2 Web Service
    • Common Design Patterns
    • Testing a Data Sync
    • Promoting a Data Sync
    • Scheduling a Data Sync
    • CLI Command List
    • Connections Functions
    • Monitoring
  • Cinchy Platform Documentation
Powered by GitBook
On this page
  • Topic JSON
  • Sample Topic JSON
  • Data Sync Configuration
  • Sample Data Sync Config

Was this helpful?

  1. Builder Guide
  2. Subscribing to Event Streams
  3. Supported Stream Sources
  4. Salesforce

Push Topic

PreviousSalesforceNextPlatform Event

Last updated 4 years ago

Was this helpful?

For reference:

Topic JSON

You can use a Push Topic already configured in Salesforce, or have Cinchy Event Listener create the Push Topic for you.

Scenario 1: Push Topic already exists in Salesforce.

Cinchy will compare the JSON with the properties on the push topic in Salesforce by name. If the attributes match, the listener will start listening on the push topic.

Scenario 2: Push Topic already exists in Salesforce and the configuration does not match.

Cinchy will compare the JSON with the properties on the push topic in Salesforce by name. If any of the attributes do not match, Cinchy will sync the push topic from Salesforce into Cinchy and disable the listener.

Scenario 3: Push Topic does not exist in Salesforce.

If the Push Topic name does not exist in Salesforce, Cinchy will attempt to create the Push Topic. If it is successful, it will sync in the Id from Salesforce and start listening on the push topic.

Sample Topic JSON

{
  "Id": "",
  "Name": "LeadsTopic",
  "Query": "SELECT Id, Name, Email FROM Lead",
  "ApiVersion": 47.0,
  "NotifyForOperationCreate": true,
  "NotifyForOperationUpdate": true,
  "NotifyForOperationUndelete": true,
  "NotifyForOperationDelete": true,
  "NotifyForFields": "Referenced"
}

See the Salesforce documentation for the description of each parameter.

The id column from Salesforce is mandatory for the query for Cinchy to sync the data.

Data Sync Configuration

Use SalesforcePushTopicDataSource as the source for a push topic.

The Id column is mandatory in the source.

Sample Data Sync Config

<?xml version="1.0" encoding="utf-16" ?>
<BatchDataSyncConfig name="Real Time Sync - LeadsTopic" version="1.0.0" xmlns="http://www.cinchy.co">
  <SalesforcePushTopicDataSource type="Event">
    <Schema>
      <Column ordinal="1" name="Id" dataType="Text" maxLength="100" />
      <Column ordinal="2" name="Name" dataType="Text" maxLength="100" />
      <Column ordinal="3" name="Email" dataType="Text" maxLength="100" />
    </Schema>
  </SalesforcePushTopicDataSource>
  <CinchyTableTarget model="" domain="Sales" table="Contacts">
    <ColumnMappings>
      <ColumnMapping sourceColumn="Id" targetColumn="Id" />
      <ColumnMapping sourceColumn="Name" targetColumn="Name" />
      <ColumnMapping sourceColumn="Email" targetColumn="Email" />
    </ColumnMappings>
    <SyncKey>
      <SyncKeyColumnReference name="Id" />
    </SyncKey>
    <NewRecordBehaviour type="INSERT" />
    <ChangedRecordBehaviour type="UPDATE" />
    <DroppedRecordBehaviour type="DELETE" />
  </CinchyTableTarget>
</BatchDataSyncConfig>
https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/pushtopic.htm