npx skills add ...
npx skills add forcedotcom/sf-skills --skill platform-custom-tab-generate
Use this skill when users need to create or configure Salesforce Custom Tabs. Trigger when users mention tabs, navigation tabs, object tabs, web tabs, Visualforce tabs, Lightning component tabs, app page tabs, or tab configuration. Also use when users want to add navigation to custom objects, create tabs for external content, or set up Lightning page tabs. Always use this skill for any custom tab work.
npx skills add forcedotcom/sf-skills --skill platform-custom-tab-generate
Use this skill when you need to:
Custom tabs for navigating to objects, web content, or Visualforce pages within Salesforce applications.
true for custom object tabs, false for all others.The root element MUST always be <CustomTab> (NOT <Tab>). The XML namespace must be xmlns="http://soap.sforce.com/2006/04/metadata".
Only the elements listed below are valid. Any element not on this list WILL cause a deployment error.
| Tab Type | ONLY these elements are allowed (nothing else) |
|---|---|
| Object tabs | <customObject> (required, set to true), <motif> (required), <description> (optional) |
| Web tabs | <customObject> (required, set to false), <label> (required), <motif> (required), <url> (required), <urlEncodingKey> (required, set to UTF-8), <description> (optional), <frameHeight> (optional) |
| Visualforce tabs | <customObject> (required, set to false), <label> (required), <motif> (required), <page> (required), <description> (optional) |
<sobjectName>, <name>, <fullName>, <apiVersion>, <isHidden>, <tabVisibility>, <type>, <mobileReady>, <urlFrameHeight>, <urlType>, <urlRedirect>, <encodingKey>, <height>, <auraComponent>
Also forbidden:
<label> on object tabs (object tabs inherit their label from the custom object)<page> on web tabs (only for Visualforce tabs)<page></page> or <description></description>{ObjectApiName}.tab-meta.xml (e.g., Space_Station__c.tab-meta.xml)<customObject>true</customObject> and <motif><sobjectName>, <name>, <fullName>, or <label>:{TabName}.tab-meta.xml (e.g., Knowledge_Base.tab-meta.xml)<description> element is optional — you may remove it if not needed, but do not add anything else.{TabName}.tab-meta.xml (e.g., Custom_Page_Tab.tab-meta.xml)<customObject>false</customObject>, <label>, <motif>, <page><customObject>true</customObject> and <motif> — nothing else<customObject>false</customObject>, <label>, <motif>, <url>, <urlEncodingKey>, and optionally <description>, <frameHeight> — nothing else<isHidden>, <tabVisibility>, <type>, <mobileReady>, or empty elements<?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>true</customObject>
<motif>Custom98: Truck</motif>
</CustomTab><CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<sobjectName>Space_Station__c</sobjectName> <!-- DEPLOYMENT ERROR -->
<label>Space Station</label> <!-- DEPLOYMENT ERROR on object tabs -->
<customObject>true</customObject>
<motif>Custom57: Desert</motif>
</CustomTab><?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>false</customObject>
<description>REPLACE_WITH_DESCRIPTION</description>
<frameHeight>600</frameHeight>
<label>REPLACE_WITH_LABEL</label>
<motif>REPLACE_WITH_MOTIF</motif>
<url>REPLACE_WITH_URL</url>
<urlEncodingKey>UTF-8</urlEncodingKey>
</CustomTab><?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>false</customObject>
<label>Custom Page</label>
<motif>Custom46: Computer</motif>
<page>CustomPage</page>
</CustomTab>