13

I created a sample Lightning Component quick action as outlined in the documentation, Configure Components for Custom Actions.

<aura:component implements="force:lightningQuickAction">

    <!-- Very simple addition -->

    <ui:inputNumber aura:id="num1"/> +
    <ui:inputNumber aura:id="num2"/>

    <br/>
    <ui:button label="Add" press="{!c.clickAdd}"/>

</aura:component>

I then created a global action pointing to my Lightning component. So far, so good.

enter image description here

The action shows up as expected in the standard layout editor when I view the Salesforce1 & Lightning Actions in either an object page layout or in Global Actions > Publisher Layouts.

enter image description here

When I add the action to a page layout in this way, to the Salesforce1 and Lightning Experience Actions section of the layout, it appears in Lightning Experience as expected. Yay!

enter image description here

However, if I create a Lightning "App Page" in Lightning App Builder, my Lightning Component quick action doesn't appear in the list of available actions. All global Create a Record and Log a Call type actions appear, but the Lightning Component action does not.

enter image description here

enter image description here

Has anyone been able to add a Lightning Component quick action to their Lightning App pages in Lightning App Builder?

UPDATE: I have tried implementing force:availableForAllPageTypes and force:appHostable (together and separately) - these did not work.

8
  • Can you please share your code to see if all is ok? did you implement force:appHostable? Feb 19, 2017 at 13:53
  • I have shared the code and screenshots. I tried implementing - at different times - force:appHostable and flexipage:availableForAllPageTypes (which seemed like the more likely solution since Lightning App pages in Lightning App Builder are flexipages). Neither worked. Feb 19, 2017 at 18:15
  • Try adding flexipage:availableForAllPage and see if that helps. Feb 19, 2017 at 20:24
  • Tried that (see my previous comment) - didn't help. Feb 19, 2017 at 20:29
  • looks like only global actions are available to the quick action from app builder. I replicated the same issue in my dev box. Feb 19, 2017 at 21:27

3 Answers 3

3

This isn't supported in App Builder yet. It's definitely on our radar and is something we'd like to fix in a near term release (safe harbor).

5
  • Just thought of this - since it's basically just a flexipage, could I add it manually through the MD API? Feb 28, 2017 at 16:40
  • 6
    A year later, it seems still not to be working. Jan 16, 2019 at 10:39
  • 1
    @ChristianSzandorKnapp It appears to be working now. Please see my answer for more details. Jan 30, 2020 at 7:33
  • Still not working. @RobertHyatt's answer is for a regular Create a Record quick action, not a Lightning component quick action. Feb 3, 2020 at 22:26
  • 1
    7 years later, still an issue. :-(
    – VarunC
    Mar 31 at 23:43
0

This can be done using the Metadata API as suggested by @shannonsans

You can manually create a metadata file with the following content (edit caps fields):

<?xml version="1.0" encoding="UTF-8"?>
<QuickAction xmlns="http://soap.sforce.com/2006/04/metadata">
    <height>500</height>
    <label>YOUR LABEL</label>
    <lightningComponent>COMPONENT NAME</lightningComponent>
    <optionsCreateFeedItem>false</optionsCreateFeedItem>
    <type>LightningComponent</type>
    <width>-100</width>
</QuickAction>

Save the file as OBJECTNAME.ACTIONNAME.quickAction and then deploy.

Super big thanks to @shannonsans for giving us the idea to try.

1
  • old question, but you said you got it to work by manually creating the MD file. How do you specify the objectname, when it's supposed to be a global action ?
    – Carl-Johan
    Dec 21, 2021 at 14:28
-3

I was able to get this to work.

First, go to global actions:

enter image description here

Then, click "new":

enter image description here

Then, add what you want it to do; I made a new global action to create a new campaign here:

enter image description here

Now it shows up as an available action on the flexipage:

enter image description here

If you are interested in making it happen programmatically, when I pulled from my scratch org with sfdx force:source:pull, quickActions/NewCampaign.quickAction-meta.xml was generated:

<?xml version="1.0" encoding="UTF-8"?>
<QuickAction xmlns="http://soap.sforce.com/2006/04/metadata">
    <optionsCreateFeedItem>true</optionsCreateFeedItem>
    <quickActionLayout>
        <layoutSectionStyle>TwoColumnsLeftToRight</layoutSectionStyle>
        <quickActionLayoutColumns>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>Name</field>
                <uiBehavior>Required</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>IsActive</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>ParentId</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>Type</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>StartDate</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>EndDate</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
            <quickActionLayoutItems>
                <emptySpace>false</emptySpace>
                <field>Description</field>
                <uiBehavior>Edit</uiBehavior>
            </quickActionLayoutItems>
        </quickActionLayoutColumns>
        <quickActionLayoutColumns/>
    </quickActionLayout>
    <standardLabel>New</standardLabel>
    <targetObject>Campaign</targetObject>
    <type>Create</type>
</QuickAction>

and it was referenced like the built-in quick actions in the flexipage definition:

...
    <quickActionList>
        <quickActionListItems>
            <quickActionName>NewCampaign</quickActionName>
        </quickActionListItems>
    </quickActionList>
...
1
  • 2
    This is a standard "Create a Record" quick action, not a Lightning component quick action. Lightning component quick actions are still not showing up in the list of available actions. Feb 3, 2020 at 22:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .