How to Force a Refresh of the Einstein Next Best Action Component

User Question: “Hi folks, is there a way to force a refresh of the Einstein Next Best Action component in the service console? I tried re-executing my recommendation strategy flow, but the recommendation didn’t change, even though the flow picked a new one. I also triggered the lightning:nextBestActionsRefresh event from an Aura component, but that didn’t work either.”


Triggering a Refresh of the Einstein Next Best Action (NBA) Component

Einstein Next Best Action (NBA) is designed to react dynamically to changes in Salesforce, updating its recommendations. While refreshing the entire page works, there are more efficient methods to trigger a refresh in a more subtle, automatic way.

Trigger 1: Automatic Refresh Based on Record Changes If a field on the record is modified, the NBA component automatically refreshes to show updated recommendations.

Trigger 2: Refresh Triggered by Flow on the Same Page NBA also refreshes if a flow changes a related object. For example, if a flow modifies a related Survey record, the NBA component on the current record page will refresh. This smart refresh is facilitated by Salesforce’s Lightning cache, though it may not apply in all scenarios.

Trigger 3: Community Cloud Event Integrations NBA can refresh via special event integrations in Salesforce Community Cloud pages.

Trigger 4: Using a Lightning Component on the Same Page The NBA component listens for the lightning:nextBestActionsRefresh event. When triggered, it sends a new request to the NBA strategy execution endpoint. If the updated strategy returns new recommendations, the component refreshes automatically. This works on both Lightning Experience and Communities pages.

To fire the event from a Lightning component, add this tag:

htmlCopy code<aura:registerEvent name="refreshEvent" type="markup://lightning:nextBestActionsRefresh"/>

Make sure the event includes the correct recordId in its payload. The component will only refresh if the event’s recordId matches the current record page.

Example Code for Firing the Event:

javascriptCopy codefunction(component, event, helper) {
    var appEvt = $A.get("e.lightning:nextBestActionsRefresh");
    if (!$A.util.isEmpty(component.get("v.myRecordId"))) {
        appEvt.setParam("recordId", component.get("v.myRecordId"));
    }
    appEvt.fire();
}

Trigger 5: Flow Firing the Application Event If your flow doesn’t modify related records but you still want to refresh NBA, you can trigger the nextBestActionsRefresh event from a Lightning component on a flow screen. This will prompt NBA to refresh.

Trigger 6: Using Platform Events Platform events enable any event in Salesforce or an external system to trigger an NBA refresh. This is useful for real-time updates, like dynamically changing recommendations based on supply chain or ERP changes. One example involved updating recommendations based on customer sentiment detected during call recordings.

By implementing these methods, you can ensure the NBA component remains responsive and up-to-date across various use cases.

Related Posts
Who is Salesforce?
Salesforce

Who is Salesforce? Here is their story in their own words. From our inception, we've proudly embraced the identity of Read more

Salesforce Marketing Cloud Transactional Emails
Salesforce Marketing Cloud

Salesforce Marketing Cloud Transactional Emails are immediate, automated, non-promotional messages crucial to business operations and customer satisfaction, such as order Read more

Salesforce Unites Einstein Analytics with Financial CRM
Financial Services Sector

Salesforce has unveiled a comprehensive analytics solution tailored for wealth managers, home office professionals, and retail bankers, merging its Financial Read more

AI-Driven Propensity Scores
AI-driven propensity scores

AI plays a crucial role in propensity score estimation as it can discern underlying patterns between treatments and confounding variables Read more