Introduction to Platform Events
Salesforce Platform Events are a powerful feature that enables real-time event-driven architectures within the Salesforce ecosystem and beyond. They provide a scalable way to communicate changes and trigger actions across different parts of your Salesforce org or with external systems.
3 Ways to Use Salesforce Platform Events
1. Platform to External App (Salesforce → External System)
Salesforce publishes events to external apps via APIs
- Platform Event
- CometD/Streaming API
- OAuth/JWT Auth
2. External App to Platform (External System → Salesforce)
External apps publish events to Salesforce- Platform Event
- REST/SOAP API
- Apex Trigger/Flow
3.Platform to Platform (Internal Communication)
Events within Salesforce (between orgs/components)
- Platform Event
- EventBus
- Flow
Code examples for all three Platform Event scenarios.
// Publish from Apex
public class OrderEventPublisher {
public static void publishOrderEvent(String orderId, String status) {
Order_Update__e event = new Order_Update__e(
Order_Id__c = orderId,
Status__c = status
);
EventBus.publish(event);
}
}
// External app (Node.js subscriber)
const jsforce = require('jsforce');
const conn = new jsforce.Connection({...});
conn.streaming.topic("/event/Order_Update__e").subscribe(message => {
console.log(`Order ${message.payload.Order_Id__c}
updated to ${message.payload.Status__c}`);
});
External App to Platform (External → Salesforce)
// External app (Python publisher)
import requests
url = "https://yourinstance.salesforce.com/services/data/v56.0/sobjects
/Payment_Event__e"
headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
data = {
"Payment_Id__c": "PAY123",
"Status__c": "Completed"
}
requests.post(url, json=data, headers=headers)
// Salesforce trigger handler
trigger PaymentEventTrigger on Payment_Event__e (after insert) {
for(Payment_Event__e event : Trigger.New) {
if(event.Status__c == 'Completed') {
// Update related records
}
}
}
// Publisher Apex
public class InventoryService {
public static void publishLowStockEvent(String productId) {
Low_Stock_Alert__e event = new Low_Stock_Alert__e(
Product_Id__c = productId,
Timestamp__c = System.now()
);
Database.SaveResult sr = EventBus.publish(event);
if(!sr.isSuccess()) {
System.debug('Publish failed');
}
}
}
// Subscriber Flow
// Create a Record-Triggered Flow on Low_Stock_Alert__e
// Add actions like: Send Email Alert & Create Case
Useful Resources to Link
Platform Event Developer Guide Platform Events Developer Guide
Streaming API vs Platform Events Streaming API vs Platform EventsApex Trigger For Platform Events Apex Triggers for Platform Events
Platform Events Limits Platform Events Limits
Which Platform Event use case are you implementing? Share in the comments!
For hands-on practice, try the Trailhead Module on Platform Events."
Post a Comment