When to Use This Skill
Use this skill when you need to:
- Create Lightning applications
- Organize tabs and features into focused apps
- Configure application navigation and branding
- Set up custom page layouts for objects
- Troubleshoot deployment errors related to custom applications
CustomApplication (Lightning App) Metadata Specification
Overview
Custom applications (Lightning Apps) that group tabs and functionality to provide a focused user experience for specific business processes. Always configured for Lightning Experience.
Purpose
- Organize related functionality into focused applications
- Group tabs and components for specific user roles
- Provide tailored user experiences
- Control access to specific features and data
- Use Standard navigation for general business applications or Console navigation for specialized service/support workflows requiring multi-tab workspaces
- Create professional, branded application identity with custom colors and branding
- Override standard actions with custom Lightning pages for enhanced user experience
- Enable profile-specific experiences through profile action overrides
Required Properties
Core Application Properties
- fullName: API name of the application
- label: Display name of the application
- uiType: Always "Lightning" for modern apps
- navType: CRITICAL - Choose based on user requirements and workflow patterns
- "Standard": DEFAULT for general business applications (e.g., sales, marketing, operations)
- "Console": ONLY when workflow requires managing multiple records simultaneously with split-view or multi-tab workspace (e.g., customer service, call centers, support operations)
- formFactors: Array of form factors (["LARGE"] for desktop, ["SMALL"] for mobile, or both)
Optional Properties
- description: Brief description of the application's purpose
- tabs: Array of tab names to include
- utilityBar: API name of the Utility Bar configuration
- brand: HIGHLY RECOMMENDED - Branding configuration object (headerColor, shouldOverrideOrgTheme, footerColor)
- actionOverrides: REQUIRED when custom record pages exist - Action override configuration (actionName, content, formFactor, type, pageOrSobjectType)
- profileActionOverrides: Profile-specific action overrides (actionName, content, formFactor, pageOrSobjectType, type, profile)
- isNavAutoTempTabsDisabled: Navigation behavior setting (default: false)
- isNavPersonalizationDisabled: Personalization setting (default: false)
- isNavTabPersistenceDisabled: Tab persistence setting (default: false)
Application Configuration
Navigation Type Selection (CRITICAL)
Decision Criteria for navType:
Choose "Standard" (DEFAULT) for:
- General business applications and most workflows
- Single-record focus or linear navigation patterns
- Standard tab-based navigation is sufficient
Choose "Console" ONLY when workflow requires:
- Managing multiple related records simultaneously in split-view
- Multi-tab workspace for handling complex, interconnected data
- Contextual information from multiple sources visible at once
- Examples: customer service operations, support desks, call centers
When in doubt: Default to "Standard" for most general business use cases
Navigation Settings
- isNavAutoTempTabsDisabled: Controls automatic temporary tab creation
- isNavPersonalizationDisabled: Controls user personalization features
- isNavTabPersistenceDisabled: Controls tab persistence across sessions
Tab Management
- tabs: Array of tab names to include in the application
- formFactors: Device-specific configurations (Large for desktop, Small for mobile)
Utility Bar
- utilityBar: Reference to Lightning utility bar (appears at bottom of Lightning Experience)
Branding (HIGHLY RECOMMENDED - DO NOT SKIP)
IMPORTANT: Provide branding configuration to create a professional, visually distinct application identity.
- brand.headerColor: Header bar color in hex format (e.g., "#0070D2") - RECOMMENDED
- brand.shouldOverrideOrgTheme: Override organization theme (true/false) - Default: false
- brand.footerColor: Footer color in hex format
Action Overrides (CRITICAL - DO NOT SKIP)
IMPORTANT: Action overrides MUST be created for every custom object tab that has a record page generated by flexipage expert.
- actionOverrides.actionName: Action to override ("View" or "Tab")
- actionOverrides.content: Page/component name (FlexiPage, Visualforce, Lightning component)
- For "View" action: Reference record pages generated by flexipage expert
- For "Tab" action: Reference home/app pages generated by flexipage expert
- actionOverrides.formFactor: Device type ("Large" or "Small")
- actionOverrides.type: Override type ("Default", "Visualforce", "Flexipage", "LightningComponent", "Scontrol")
- Recommended: Use "Flexipage" for Lightning record/home pages generated by flexipage expert
- actionOverrides.pageOrSobjectType: Object API name the override applies to
- actionOverrides.comment: Optional description (max 1000 characters)
- Auto-generated comment: "Action override created by Lightning App Builder during activation."
- actionOverrides.skipRecordTypeSelect: Skip record type selection (default: false)
Profile Action Overrides
- profileActionOverrides.actionName: Action to override ("View" or "Tab")
- profileActionOverrides.content: Page/component name
- For "View" action: Reference profile-specific record pages generated by flexipage expert
- For "Tab" action: Reference profile-specific home pages generated by flexipage expert
- Can reference same or different FlexiPages than actionOverrides for profile-specific experiences
- profileActionOverrides.formFactor: Device type ("Large" or "Small")
- profileActionOverrides.pageOrSobjectType: Object API name
- profileActionOverrides.type: Override type
- Recommended: Use "Flexipage" for Lightning pages generated by flexipage expert
- profileActionOverrides.profile: Profile API name (e.g., "Admin", "Standard User")
- Enables different page layouts for different user profiles
Device Support
Desktop Configuration
- formFactor: "Large"
- tabs: Full list of application tabs
Phone Configuration
- formFactor: "Small"
- tabs: Mobile-optimized tab selection
Tablet Configuration
- formFactor: "Medium"
- tabs: Tablet-appropriate tab selection
User Experience Features
Navigation Behavior
- Auto Temporary Tabs: Can be enabled/disabled
- Personalization: User customization options
- Tab Persistence: Remember user's tab selections
Accessibility
- Keyboard Navigation: Full keyboard support
- Screen Reader: Compatible with assistive technologies
- High Contrast: Support for high contrast modes
Integration Points
- Custom Tabs: Include custom object and web tabs
- Standard Tabs: Include standard Salesforce tabs
- Lightning Pages: Integrate with Lightning page layouts
- Components: Include custom Lightning components
Best Practices
- Always use Lightning UI: Set
uiType to "Lightning" for modern apps
- Choose appropriate navigation: CRITICAL - Analyze requirements carefully for
navType selection
- Use "Standard" (DEFAULT) for general business applications
- Use "Console" ONLY when workflow requires multi-tab workspace, split-view, or managing multiple related records simultaneously
- Examples for Console: customer service, call centers, support operations
- Default to "Standard" for most general business use cases
- Include Standard Tabs: Add common Salesforce tabs (Home, Accounts, Contacts, etc.)
- Use clear, descriptive application names
- Group related functionality logically
- Consider different user roles and needs
- Test across different device types
- Ensure proper permissions and access control
- Provide meaningful descriptions for users
- Follow consistent naming conventions
- Always configure branding: Set headerColor to create professional application identity
- Use accessible brand colors: Ensure hex colors have sufficient contrast (WCAG AA compliant)
- Configure utility bars: Add useful quick-access tools for users
- Leverage action overrides: Customize page layouts for specific objects using FlexiPages from flexipage expert
- Use profile overrides: Provide role-specific experiences by referencing different flexipage expert generated pages per profile
Enhancement Rules
- uiType: Always set to "Lightning" for modern app experience
- navType: CRITICAL DECISION - Analyze user requirements carefully
- Set to "Standard" (DEFAULT) for general business applications
- Set to "Console" ONLY when workflow requires:
- Managing multiple related records simultaneously with split-view capability
- Multi-tab workspace for handling complex, interconnected data
- Contextual information from multiple sources visible at once
- Console examples: customer service operations, call centers, support desks
- When in doubt between Standard and Console, choose "Standard" for most business use cases
- formFactors: Always set to ["LARGE"] for desktop Lightning Experience
- Standard Tabs: Automatically add Home, Accounts, Contacts, Opportunities, Leads, Cases
- Navigation Settings: Set all navigation flags to false for best user experience
- Branding: ALWAYS include brand configuration for professional application identity
- MANDATORY: Set brand.headerColor to appropriate color (e.g., "#0070D2" for Salesforce Blue)
- Set brand.shouldOverrideOrgTheme based on requirements
- Action Overrides: ALWAYS create action overrides when custom record pages exist
- MANDATORY: Add actionOverrides for "View" action pointing to flexipage expert generated record pages
- Use "Flexipage" type and reference the exact FlexiPage name
- Set formFactor to "Large" for desktop
- Include pageOrSobjectType with the object API name
- Profile Action Overrides: Reference flexipage expert generated pages for role-based customization
- Form Factors: Use "Large" for desktop, "Small" for mobile in overrides
CRITICAL Verification Checklist (MUST VERIFY)
1---
2name: platform-custom-application-generate
3description: "Use this skill when users need to create or configure tab-based Salesforce Custom Applications with navigation, branding, and action overrides. Trigger when users mention custom apps, application metadata, app navigation, or organizing tabs into applications. Use when users want to create app containers for tabs and pages. Do NOT use when the goal is hosting a React UI bundle in the App Launcher — use experience-ui-bundle-custom-app-generate for that case."
4metadata:
5 version: "1.0"
6 domains: ["Platform"]
7 minApiVersion: "60.0"
8 relatedSkills:
9 - "experience-ui-bundle-custom-app-generate"
10---
11
12## When to Use This Skill
13
14Use this skill when you need to:
15- Create Lightning applications
16- Organize tabs and features into focused apps
17- Configure application navigation and branding
18- Set up custom page layouts for objects
19- Troubleshoot deployment errors related to custom applications
20# CustomApplication (Lightning App) Metadata Specification
21
22## Overview
23
24Custom applications (Lightning Apps) that group tabs and functionality to provide a focused user experience for specific business processes. Always configured for Lightning Experience.
25
26## Purpose
27- Organize related functionality into focused applications
28- Group tabs and components for specific user roles
29- Provide tailored user experiences
30- Control access to specific features and data
31- Use Standard navigation for general business applications or Console navigation for specialized service/support workflows requiring multi-tab workspaces
32- Create professional, branded application identity with custom colors and branding
33- Override standard actions with custom Lightning pages for enhanced user experience
34- Enable profile-specific experiences through profile action overrides
35
36## Required Properties
37
38### Core Application Properties
39- **fullName**: API name of the application
40- **label**: Display name of the application
41- **uiType**: Always "Lightning" for modern apps
42- **navType**: CRITICAL - Choose based on user requirements and workflow patterns
43 - "Standard": DEFAULT for general business applications (e.g., sales, marketing, operations)
44 - "Console": ONLY when workflow requires managing multiple records simultaneously with split-view or multi-tab workspace (e.g., customer service, call centers, support operations)
45- **formFactors**: Array of form factors (["LARGE"] for desktop, ["SMALL"] for mobile, or both)
46
47### Optional Properties
48- **description**: Brief description of the application's purpose
49- **tabs**: Array of tab names to include
50- **utilityBar**: API name of the Utility Bar configuration
51- **brand**: HIGHLY RECOMMENDED - Branding configuration object (headerColor, shouldOverrideOrgTheme, footerColor)
52- **actionOverrides**: REQUIRED when custom record pages exist - Action override configuration (actionName, content, formFactor, type, pageOrSobjectType)
53- **profileActionOverrides**: Profile-specific action overrides (actionName, content, formFactor, pageOrSobjectType, type, profile)
54- **isNavAutoTempTabsDisabled**: Navigation behavior setting (default: false)
55- **isNavPersonalizationDisabled**: Personalization setting (default: false)
56- **isNavTabPersistenceDisabled**: Tab persistence setting (default: false)
57
58## Application Configuration
59
60### Navigation Type Selection (CRITICAL)
61**Decision Criteria for navType:**
62
63**Choose "Standard" (DEFAULT) for:**
64- General business applications and most workflows
65- Single-record focus or linear navigation patterns
66- Standard tab-based navigation is sufficient
67
68**Choose "Console" ONLY when workflow requires:**
69- Managing multiple related records simultaneously in split-view
70- Multi-tab workspace for handling complex, interconnected data
71- Contextual information from multiple sources visible at once
72- Examples: customer service operations, support desks, call centers
73
74**When in doubt:** Default to "Standard" for most general business use cases
75
76### Navigation Settings
77- **isNavAutoTempTabsDisabled**: Controls automatic temporary tab creation
78- **isNavPersonalizationDisabled**: Controls user personalization features
79- **isNavTabPersistenceDisabled**: Controls tab persistence across sessions
80
81### Tab Management
82- **tabs**: Array of tab names to include in the application
83- **formFactors**: Device-specific configurations (Large for desktop, Small for mobile)
84
85### Utility Bar
86- **utilityBar**: Reference to Lightning utility bar (appears at bottom of Lightning Experience)
87
88### Branding (HIGHLY RECOMMENDED - DO NOT SKIP)
89**IMPORTANT**: Provide branding configuration to create a professional, visually distinct application identity.
90
91- **brand.headerColor**: Header bar color in hex format (e.g., "#0070D2") - RECOMMENDED
92- **brand.shouldOverrideOrgTheme**: Override organization theme (true/false) - Default: false
93- **brand.footerColor**: Footer color in hex format
94
95### Action Overrides (CRITICAL - DO NOT SKIP)
96**IMPORTANT**: Action overrides MUST be created for every custom object tab that has a record page generated by flexipage expert.
97
98- **actionOverrides.actionName**: Action to override ("View" or "Tab")
99- **actionOverrides.content**: Page/component name (FlexiPage, Visualforce, Lightning component)
100 - For "View" action: Reference record pages generated by flexipage expert
101 - For "Tab" action: Reference home/app pages generated by flexipage expert
102- **actionOverrides.formFactor**: Device type ("Large" or "Small")
103- **actionOverrides.type**: Override type ("Default", "Visualforce", "Flexipage", "LightningComponent", "Scontrol")
104 - Recommended: Use "Flexipage" for Lightning record/home pages generated by flexipage expert
105- **actionOverrides.pageOrSobjectType**: Object API name the override applies to
106- **actionOverrides.comment**: Optional description (max 1000 characters)
107 - Auto-generated comment: "Action override created by Lightning App Builder during activation."
108- **actionOverrides.skipRecordTypeSelect**: Skip record type selection (default: false)
109
110### Profile Action Overrides
111- **profileActionOverrides.actionName**: Action to override ("View" or "Tab")
112- **profileActionOverrides.content**: Page/component name
113 - For "View" action: Reference profile-specific record pages generated by flexipage expert
114 - For "Tab" action: Reference profile-specific home pages generated by flexipage expert
115 - Can reference same or different FlexiPages than actionOverrides for profile-specific experiences
116- **profileActionOverrides.formFactor**: Device type ("Large" or "Small")
117- **profileActionOverrides.pageOrSobjectType**: Object API name
118- **profileActionOverrides.type**: Override type
119 - Recommended: Use "Flexipage" for Lightning pages generated by flexipage expert
120- **profileActionOverrides.profile**: Profile API name (e.g., "Admin", "Standard User")
121 - Enables different page layouts for different user profiles
122
123## Device Support
124
125### Desktop Configuration
126- **formFactor**: "Large"
127- **tabs**: Full list of application tabs
128
129### Phone Configuration
130- **formFactor**: "Small"
131- **tabs**: Mobile-optimized tab selection
132
133### Tablet Configuration
134- **formFactor**: "Medium"
135- **tabs**: Tablet-appropriate tab selection
136
137## User Experience Features
138
139### Navigation Behavior
140- **Auto Temporary Tabs**: Can be enabled/disabled
141- **Personalization**: User customization options
142- **Tab Persistence**: Remember user's tab selections
143
144### Accessibility
145- **Keyboard Navigation**: Full keyboard support
146- **Screen Reader**: Compatible with assistive technologies
147- **High Contrast**: Support for high contrast modes
148
149## Integration Points
150- **Custom Tabs**: Include custom object and web tabs
151- **Standard Tabs**: Include standard Salesforce tabs
152- **Lightning Pages**: Integrate with Lightning page layouts
153- **Components**: Include custom Lightning components
154## Best Practices
155- **Always use Lightning UI**: Set `uiType` to "Lightning" for modern apps
156- **Choose appropriate navigation**: CRITICAL - Analyze requirements carefully for `navType` selection
157 - Use "Standard" (DEFAULT) for general business applications
158 - Use "Console" ONLY when workflow requires multi-tab workspace, split-view, or managing multiple related records simultaneously
159 - Examples for Console: customer service, call centers, support operations
160 - Default to "Standard" for most general business use cases
161- **Include Standard Tabs**: Add common Salesforce tabs (Home, Accounts, Contacts, etc.)
162- **Use clear, descriptive application names**
163- **Group related functionality logically**
164- **Consider different user roles and needs**
165- **Test across different device types**
166- **Ensure proper permissions and access control**
167- **Provide meaningful descriptions for users**
168- **Follow consistent naming conventions**
169- **Always configure branding**: Set headerColor to create professional application identity
170- **Use accessible brand colors**: Ensure hex colors have sufficient contrast (WCAG AA compliant)
171- **Configure utility bars**: Add useful quick-access tools for users
172- **Leverage action overrides**: Customize page layouts for specific objects using FlexiPages from flexipage expert
173- **Use profile overrides**: Provide role-specific experiences by referencing different flexipage expert generated pages per profile
174
175## Enhancement Rules
176- **uiType**: Always set to "Lightning" for modern app experience
177- **navType**: CRITICAL DECISION - Analyze user requirements carefully
178 - Set to "Standard" (DEFAULT) for general business applications
179 - Set to "Console" ONLY when workflow requires:
180 - Managing multiple related records simultaneously with split-view capability
181 - Multi-tab workspace for handling complex, interconnected data
182 - Contextual information from multiple sources visible at once
183 - Console examples: customer service operations, call centers, support desks
184 - When in doubt between Standard and Console, choose "Standard" for most business use cases
185- **formFactors**: Always set to ["LARGE"] for desktop Lightning Experience
186- **Standard Tabs**: Automatically add Home, Accounts, Contacts, Opportunities, Leads, Cases
187- **Navigation Settings**: Set all navigation flags to false for best user experience
188- **Branding**: ALWAYS include brand configuration for professional application identity
189 - MANDATORY: Set brand.headerColor to appropriate color (e.g., "#0070D2" for Salesforce Blue)
190 - Set brand.shouldOverrideOrgTheme based on requirements
191- **Action Overrides**: ALWAYS create action overrides when custom record pages exist
192 - MANDATORY: Add actionOverrides for "View" action pointing to flexipage expert generated record pages
193 - Use "Flexipage" type and reference the exact FlexiPage name
194 - Set formFactor to "Large" for desktop
195 - Include pageOrSobjectType with the object API name
196- **Profile Action Overrides**: Reference flexipage expert generated pages for role-based customization
197- **Form Factors**: Use "Large" for desktop, "Small" for mobile in overrides
198
199## CRITICAL Verification Checklist (MUST VERIFY)
200- [ ] All tabs are included in the application
201- [ ] **navType IS CORRECTLY SET** - Verify Console vs Standard selection
202- [ ] Default to "Standard" for most general business applications
203- [ ] Set to "Console" ONLY if workflow requires managing multiple records simultaneously, split-view, or multi-tab workspace
204- [ ] If requirements are general/ambiguous → navType should be "Standard"
205- [ ] **BRANDING IS CONFIGURED** - This is HIGHLY RECOMMENDED for professional applications
206- [ ] brand.headerColor is set with valid hex color (e.g., "#0070D2")
207- [ ] brand.shouldOverrideOrgTheme is set (default: false)
208- [ ] **ACTION OVERRIDES ARE CREATED** - This is MANDATORY for every custom object with a record page
209- [ ] Action overrides are defined for EACH custom object tab pointing to the correct record page
210- [ ] actionOverrides.content matches the exact FlexiPage name generated by flexipage expert
211- [ ] actionOverrides.pageOrSobjectType is set to the correct object API name
212- [ ] actionOverrides.type is set to "Flexipage"
213- [ ] actionOverrides.actionName is set to "View"
214- [ ] actionOverrides.formFactor is set to "Large"
215- [ ] All required fields are populated (fullName, label, uiType, navType, formFactors)