A lightning:quickActionAPI component allows you to access methods for programmatically controlling quick actions on record pages. This component is supported in Lightning Experience and supports utility pop-out. This component requires API version 43.0 and later.
| Required Editions |
|---|
| 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.
<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:
<aura:component implements="flexipage:availableForRecordHome" description="My Lightning Component">
<lightning:quickActionAPI aura:id="quickActionAPI" />
<div>
<lightning:button label="Select Update Case Action" onclick="{!c.selectUpdateCaseAction}" />
<lightning:button label="Update Case Status Field" onclick="{!c.updateCaseStatusAction}" />
</div>
</aura:component>
Controller code:
({
selectUpdateCaseAction: function (cmp, event, helper) {
var actionAPI = cmp.find("quickActionAPI");
var args = { actionName: "Case.UpdateCase" };
actionAPI
.selectAction(args)
.then(function (result) {
// Action selected; show data and set field values
})
.catch(function (e) {
if (e.errors) {
// If the specified action isn't found on the page,
// show an error message in the my component
}
});
},
updateCaseStatusAction: function (cmp, event, helper) {
var actionAPI = cmp.find("quickActionAPI");
var fields = {
Status: { value: "Closed" },
Subject: { value: "Sets by lightning:quickActionAPI component" },
accountName: { Id: "accountId" },
};
var args = { actionName: "Case.UpdateCase", entityName: "Case", targetFields: fields };
actionAPI
.setActionFieldValues(args)
.then(function () {
actionAPI.invokeAction(args);
})
.catch(function (e) {
console.error(e.errors);
});
},
});
-
Quick Action API Considerations
Before working with the Lightning Quick Action JavaScript API methods, review some considerations that might impact your implementation.
-
Allows custom components to get a list of the available actions on a record page.
-
Allows custom components to get a list of the available fields for a specific action on a record page.
-
Allows custom components to access a custom quick action and pass data or messages to it.
-
Allows custom components to access selected quick actions on a record page.
-
Allows custom components to save or submit the quick action on a record page.
-
Refreshes the current record page.
-
Allows custom components to select and focus on a quick action on a record page.
-
Allows custom components to select a quick action on a record page and then specify field values for that action.
See Also