Newer Version Available
Quick Action APIs in Lightning Experience
| Available in: Lightning Experience |
| Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions |
For example, if you have a custom Aura 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 Aura 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})