-
Notifications
You must be signed in to change notification settings - Fork 28
Getting Started with Application Events
Application Events are the means to track activities in your Salesforce org and get immediate reporting insights. It is meant for tracking the customizations in your org, whether it is Apex, Flow, Lightning Components, or Salesforce Functions (coming soon). Find out what features are getting used and be able to access additional information for each execution context.
Many Orgs contain Custom Objects to track integration requests. Use Application Events to track any outgoing requests and their payloads and track the outcome, success or failure, in another event. This will allow you to audit all requests and quickly identify if any requests failed.
Both features serve a similar yet different purpose. Application Events are meant to track features in your org from a more business centric point of view. A product owner can learn about the adoption of new features and use the dashboard to identify issues such as integration failures as outlined above. Once the operation's team is alerted, it can use the Application Event to narrow down the Log Events that need to be reviewed to investigate the root cause of the issues. Application Events add another layer of transparency to your Salesforce applications.
Import the log factory using the following import:
import { applicationEventLogger } from 'c/rflibApplicationEventLogger';
Then, use the logger to record log statements.
handleSomeEvent(event) {
// Both recordId and additiona information can be null. The record ID must be 18 characters max
applicationEventLogger.logApplicationEvent('someEventName', null /*recordId*/, 'Some optional information');
}
Insert the wrapper component into any Lightning Component, preferably at the top of the markup.
<c:rflibApplicationEventLogger aura:id="applicationEventLogger" />
Then retrieve the Application Event Logger from your controller or helper code.
({
doInit: function(component, event, helper) {
var applicationEventLogger = component.find('applicationEventLogger');
applicationEventLogger.logApplicationEvent('someEventName', null /*recordId*/, 'Some optional information');
}
})
Create a Application Event Logger in your Apex class using the following command:
private static final rflib_ApplicationEventLogger APP_EVENT_LOGGER = rflib_LoggerUtil.getApplicationEventLogger();
Then call the log function.
APP_EVENT_LOGGER.logApplicationEvent('import-sample-data-async', null /* recordId */, null /* addtional details */);
Application Events are also supported in Flow using Apex Actions.
In Flow Builder, add an Action
element to your Flow. When the New Action modal appears, select RFLIB
as the category on the left and search for the Application Event
action in the right column. Once selected, fill out the standard action fields by giving it a unique name and define your log parameters. Please note that there are two optional parameters that can be configured by enabling the toggle at the bottom of the form. The screenshot below illustrates the configuration.
To use Application Events in Salesforce Functions, check out the SF Function Wiki Page.