Custom App Launcher Lightning Component

In this blog, I am going to show how to create a custom app launcher by using Lightning component. The Custom app launcher component will look like a carousel and not as a grid in this example. You can query the details of App launcher by using AppMenuItem SObject . AppMenuItem Represents the organization’s default settings for items in the app menu or App Launcher and its read-only object to view an entry in the Lightning Platform app menu or the App Launcher. You can create a SOQL query to retrieve all items, even items the user does not see from the user interface. There are many ways you can use AppMenuItem. Here are some examples:

  • Build your own App Launcher or app menu in Salesforce. Create a custom page showing all the apps you have access to and that lets you run them using single sign-on.
  • Build your own App Launcher or app menu on a tablet or mobile app. You can have your own app for launching applications on various mobile devices.
  • Build an app launcher into your company’s intranet. There’s no need to have it run on Salesforce because Salesforce APIs let you integrate with Salesforce programmatically and build an app launcher.

Apex Class 

public class AppLauncherinfo {
    public Static List<AppMenuItem> getAllApps(){
        return [Select Id,Type,ApplicationId,Name,Label,Description,IconUrl,StartUrl,InfoUrl,IsAccessible,IsVisible,LogoUrl,
                SortOrder,MobileDeviceType from AppMenuItem where IsAccessible=true AND Type='TabSet' order by Name ASC];

Lightning Component 

<aura:component implements="lightning:actionOverride,force:appHostable,force:hasRecordId,force:hasSObjectName,flexipage:availableForRecordHome,flexipage:availableForAllPageTypes"                
                controller="AppLauncherinfo" >
    <aura:attribute type="AppMenuItem[]" name="apps"/>
    <aura:handler  name="init" value="{!this}" action="{!c.doinit}"/>
    <div style="height:600px;">
        <lightning:carousel disableAutoRefresh="false" disableAutoScroll="false" class="slds-carousel__pane">
            <aura:iteration items="{!v.apps}" var="obj">
                <lightning:carouselImage class="slds-carousel__image"
                                         src = "{!obj.LogoUrl}"
                                         header = "{!obj.Label}"
                                         description = "{!obj.Description}"
                                         alternativeText = "{!obj.Name}"
                                         href = "">


    doinit : function(component, event, helper) {                                                                                        
        var action=  component.get('c.getAllApps');   


After adding this component to the Record page the final app launcher looks like below