Newer Version Available

This content describes an older version of this product. View Latest

Quick Action APIs in Lightning Experience

A lightning:quickActionAPI component allows you to access methods for programmatically controlling quick actions on record pages. This component is supported in Lightning Experience.
Available in: Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

For example, if you have a custom component that displays Knowledge articles, you can use the lightning:quickActionAPI component to attach and send a Knowledge article from your custom component using the Email quick action on the case record page.

To access these methods, create an instance of the lightning:quickActionAPI component inside your Lightning component or page and assign an aura:id attribute to it.

1<lightning:quickActionAPI aura:id="quickActionAPI"/>

This component provides similar functionality to the Publisher APIs in Salesforce Classic.

Sample Code

This example creates two buttons that interact with the Update Case quick action on a case record page in Lightning Experience. The controller code uses the following Quick Action API methods: selectAction, setActionFieldValues, and invokeAction.

Component code:

1<aura:component implements="flexipage:availableForRecordHome" description="My Lightning Component">
2    <lightning:quickActionAPI aura:id="quickActionAPI" />
3    <div>
4        <lightning:button label="Select Update Case Action" onclick="{!c.selectUpdateCaseAction}"/>
5        <lightning:button label="Update Case Status Field" onclick="{!c.updateCaseStatusAction}"/>
6    </div>
7</aura:component>

Controller code:

1({
2    selectUpdateCaseAction : function( cmp, event, helper) {
3        var actionAPI = cmp.find("quickActionAPI");
4        var args = { actionName :"Case.UpdateCase" };
5        actionAPI.selectAction(args).then(function(result) {
6            // Action selected; show data and set field values
7        }).catch(function(e) {
8            if (e.errors) {
9                // If the specified action isn't found on the page, 
10                // show an error message in the my component 
11            }
12        });
13    },
14    
15    updateCaseStatusAction : function( cmp, event, helper ) {
16        var actionAPI = cmp.find("quickActionAPI");
17        var fields = { Status : { value : "Closed"}, 
18                       Subject : { value : "Sets by lightning:quickActionAPI component" }, 
19                       accountName : { Id : "accountId" } };
20        var args = { actionName : "Case.UpdateCase", 
21                     entityName : "Case",
22                     targetFields : fields };
23        actionAPI.setActionFieldValues(args).then(function() {
24            actionAPI.invokeAction(args);
25        }).catch(function(e) {
26            console.error(e.errors);
27        });
28    }
29})