Salesforce Platform Events Pub/Sub (Early Access) operation
The Salesforce Platform Events Pub/Sub (Early Access) operation defines the Salesforce event channel to subscribe to and where event delivery starts. Create one operation for each channel that your integration requires.
Listen action
Use Listen to receive Platform Events and Change Data Capture events from Salesforce. The operation creates one output document for each event received. Each document contains the decoded event data.
- Listen is available only on the Start step of a process.
- You can view, pause, resume, and restart listeners on the Listeners panel in Manage > Runtime Management.
Options tab
Replay Position - Where the subscription starts. Required. Select one of the following:
- New Events Only (default) - Starts with events that Salesforce receives after the listener starts.
- Retained and New Events - Reads retained events, up to the Salesforce retention period (up to 72 hours), then reads new events.
- Custom Replay Id - Starts after the Base64-encoded replay ID in Custom Replay Id.
If Replay persistence is enabled, a persisted replay position takes precedence over this setting on restart. See Replay persistence.
Custom Replay Id - The Base64-encoded opaque replay ID to resume after. Visible only when Replay Position is Custom Replay Id. The connector stores and replays this value verbatim. It never computes or interprets it.
Topic - The Salesforce Pub/Sub topic. Visible when the imported object type is not All Changes. Default: the topic of the imported profile. Change it only to a topic that is compatible with the imported profile.
Browsing for event channels
Use Browse to select the event channel. Browse reads the current channels from the connected Salesforce org and lists them as object types. First, choose a streaming event type:
- Platform Events lists custom and supported standard Platform Events.
- Change Data Capture Events lists CDC channels, the All Changes channel, and custom CDC channels.
Browse adds a prefix to each object type name so you can tell the types apart, both at browse time and in an imported operation. Which types appear depends on your org configuration and user permissions.
| Object type | Description | Streaming event type | Object type prefix |
|---|---|---|---|
| Custom Platform Event | A custom event whose name ends in __e. | Platform Events | Custom Event |
| Standard Platform Event | A standard Salesforce event that supports event delivery. Some standard events are Listen-only. | Platform Events | Standard Event |
| Custom Platform Event Channel | A custom channel that groups multiple Platform Events. | Platform Events | Custom Platform Event Channel |
| Change Data Capture channel | A channel for changes to one Salesforce object. | Change Data Capture Events | CDC |
| All Changes | A channel that combines CDC events for all supported objects. | Change Data Capture Events | None |
| Custom CDC channel | A custom channel that groups multiple CDC event types. | Change Data Capture Events | Custom CDC Channel |
To receive changes to an object, the subscriber needs the matching Change Data Capture permissions in Salesforce. See the Change Data Capture Developer Guide.
Output profiles
Browse creates the profile for the selected object type.
A Platform Event or object-specific CDC channel returns one JSON document for each event. The top-level property uses the event record name, and its value contains the decoded event fields:
{
"Order_Event__e": {
"Order_Number__c": "A-1001",
"Amount__c": 42.5
}
}
CDC profiles include ChangeEventHeader. CDC bitmap fields appear as lists of field names. Date, date-time, and time fields use JSON strings. Byte fields use Base64 strings.
A custom channel can contain more than one event type:
- If Browse resolves all channel members, the profile contains one object for each member event type.
- If Browse cannot resolve the members, the profile is open because the event fields are unknown at import time.
The All Changes channel has no generated output profile. At runtime, the connector uses the event record name to build the output for each event, so one listener can process events from a channel that contains more than one event type.
Overriding the Topic
When you import a Listen object, Browse adds a Topic field to the operation. You can change the Topic so that an imported operation subscribes to a different topic on start. Use only a topic that matches the imported profile. Otherwise, the profile does not fit the events. The All Changes object has no Topic field because it always uses the combined CDC channel.
Event metadata
Listen exposes the tracked properties listed on the connector overview page: channel, eventId, replayId, and schemaId.
Replay persistence
Listen can save the last replay position for each topic. Persistence is disabled by default. To enable it, set the container property Enable Persisted Connector Cache (com.boomi.container.connector.persistence.enabled) to true in the Advanced Properties section of the container properties. For more information, refer to Enabling connector property persistence.
The connector saves the replay position after it submits the event. On restart, a saved replay position takes precedence over the configured Replay Position. If Salesforce rejects an expired or invalid replay ID, the connector clears the saved value and falls back to Retained and New Events.
When persistence is disabled, the listener starts from the configured Replay Position on restart.
Singleton mode
The Listen operation runs in singleton mode by default, and the setting cannot be changed. Listeners submit executions from a single node of a runtime cluster or runtime cloud. In a runtime cloud, Boomi recommends enabling a listener worker so that Boomi can distribute the resulting process executions across the available execution workers.