
Salesforce List View Generator
OfficialFreeCreate and validate Salesforce List Views efficiently.
Free · Opens the source repo
What Salesforce List View Generator does
The Salesforce List View Generator skill is designed for users who need to create, generate, or validate metadata for Salesforce List Views. List Views are essential for defining filtered and column-based record listings on an object’s tab, allowing users to curate specific subsets of records tailored to various roles or tasks. This skill simplifies the process of generating List View metadata, ensuring that users can easily configure visibility, filters, and columns according to their requirements.
When using this skill, users can efficiently create List Views by specifying the target object, desired filters, and the columns to display. The skill provides guidance on best practices for naming conventions and metadata structure, ensuring compliance with Salesforce's requirements. It also assists in troubleshooting deployment errors related to List Views, making it a valuable tool for Salesforce developers and administrators who need to manage and deploy List Views effectively.
By leveraging this skill, teams can standardize List Views across their organization, ensuring that commonly used filters and visible fields are consistent. This not only enhances user experience but also improves data governance by allowing for controlled visibility based on user roles. Whether you are creating a new List View or validating existing ones, this skill provides the necessary instructions and best practices to streamline your workflow.
Overall, the Salesforce List View Generator skill is ideal for Salesforce developers and administrators looking to enhance their productivity by simplifying the creation and management of List Views, ensuring that they meet organizational needs while adhering to best practices.
When to use it
Use this skill when you need to create filtered, column-based record listings in Salesforce or troubleshoot List View issues.
When not to use it
This skill is not suitable for users who require advanced customization beyond standard List View capabilities or those unfamiliar with Salesforce metadata.
What you can build with it
Creating a New List View
You need to create a List View for a custom object to display records filtered by specific criteria.
Validating Existing List Views
You are troubleshooting a deployment issue and need to validate the metadata of existing List Views.
Standardizing List Views Across Teams
Your team wants to ensure that all List Views adhere to a consistent structure and naming convention.
How to install Salesforce List View Generator
View source1. Install with the skills CLI
npx skills add forcedotcom/sf-skills/platform-list-view-generate --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by forcedotcomWhen to Use This Skill
Use this skill when you need to:
- Create list views for objects
- Generate filtered, column-based record listings
- Configure list view visibility and sharing
- Troubleshoot deployment errors related to List Views
Specification
Salesforce List View Metadata Knowledge
Overview
Salesforce List Views define filtered, column-based record listings on an object's tab.
Purpose
- Provide curated, role- or task-specific subsets of records
- Standardize commonly used filters and visible fields across teams
Configuration
Unless specifically requested to be generated inline, List Views are stored at:
- force-app/main/default/objects/<ObjectName>/listViews/<fullName>.listView-meta.xml Only if the user requests are they to be included in the object's metadata file:
- fore-app/main/default/objects/<ObjectName>/<ObjectName>.object-meta.xml
Key elements:
- label: Human-friendly name shown in UI (must be under 40 characters in length)
- fullName (fullName): API identifier used in metadata and file name
- filterScope: Everything | Mine | Queue
- filters: field/operation/value triples
- booleanFilterLogic: Combine multiple filters logically with AND/OR (e.g., "1 AND (2 OR 3)")
- columns: Ordered list of field API names to display
References:
- listViews appear on the entity's tab
- listViews can be referenced by flexipages using the "filterListCard" component
Critical Decision: Visibility Strategy
Choose how broadly the view should appear in the org.
Choose "Visible to all users" when:
- The view is useful across profiles/roles
- It's a governed, shared artifact to be managed via source control
- Data contained is appropriate for broad visibility
Choose "Owner-only/Restricted" when:
- It is experimental or niche during iteration
- It is specifically requested to be limited to Users, Groups or Roles
- There are governance/security reviews pending
When in doubt: Default to "Visible to all users".
Critical Decision: Columns Density
Choose minimal, high-signal columns when:
- Users need at-a-glance scanning
- Mobile/responsive performance matters
Choose richer column sets when:
- Desktop heavy workflows need more context without opening records
- It serves as a work queue and extra fields reduce clicks
When in doubt: Start with 4–6 columns that directly support the primary task.
Critical Rules (Read First)
Rule 1: Custom Field API Names
For custom fields, use exact API names (e.g., Status__c), not labels.
Wrong:
- Status (label)
Right:
- Status__c (API name)
Rule 2: Standard Field Names
For standard fields on Custom Objects, use already defined names:
Wrong:
- Name (API Name)
Right:
- NAME
The standard fields on Custom Objects are:
- NAME
- RECORDTYPE
- OWNER.ALIAS
- OWNER.FIRST_NAME
- OWNER.LAST_NAME
- CREATEDBY_USER.ALIAS
- CREATEDBY_USER
- CREATED_DATE
- UPDATEDBY_USER.ALIAS
- UPDATEDBY_USER
- LAST_UPDATE
- LAST_ACTIVITY
Rule 3: Operations Must Match Field Types
Picklists require equals/notEqual; date fields require date operators; boolean values are 0 and 1; do not mix text-only operators with non-text fields.
Wrong:
- operation="contains" on a picklist
- value=True on a boolean
Right:
- operation="equals" with a valid picklist value
- value=1 on a boolean
Rule 4: Name and Path Alignment
File name, fullName (also sometimes referred to as DeveloperName), and uniqueness must align.
Wrong:
- File: My_List.listView-meta.xml
- fullName: MyList
Right:
- File: MyList.listView-meta.xml
- fullName: MyList
Rule 5: Folder Placement
Place files under the object's listViews directory or deployments will fail to resolve components. Only if a user requests it, may the listView may be included inline in force-app/main/default/objects/<ObjectName>/<ObjectName>.object-meta.xml
Path:
- force-app/main/default/objects/<ObjectName>/listViews/<fullName>.listView-meta.xml
Generation Workflow
Step 1: Get Metadata Information
- Identify the target object API name (e.g., Object__c).
- Gather business requirements: purpose, audience, fields, filters.
- Validate values and operator compatibility with field types.
Step 2: Examine Existing Examples
- Repo: force-app/main/default/objects/<Object>/listViews/ (unless otherwise required by end user)
- Org: retrieve existing list views for proven patterns (filters, logic, columns).
- Note what passed review/deployment and delivered expected UX.
Step 3: Create Specification
Document before implementation:
- Name: fullName and Label
- Audience: Visibility scope ("all users" vs. shared)
- Filter scope: Everything | Mine | Queue
- Filter items: filter, operator, value; plus booleanFilterLogic if multiple
- Columns: Ordered list of field API names
- Acceptance criteria: Which records appear, paging behavior, key scenarios
Step 4: Author Metadata File
Use a Lightning-compatible template and ensure valid XML:
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>OpenMine</fullName>
<label>Open - My Records</label>
<filterScope>Mine</filterScope>
<columns>NAME</columns>
<columns>Status__c</columns>
<columns>OWNER.ALIAS</columns>
<columns>LAST_UPDATE</columns>
<filters>
<field>Status__c</field>
<operation>equals</operation>
<value>Open</value>
</filters>
<sharedTo>
<role>CEO</role>
<roleAndSubordinatesInternal>COO</roleAndSubordinatesInternal>
</sharedTo>
</ListView>
Notes:
- For "My" views, use filterScope="Mine".
- Keep columns tight and purposeful.
- If intended for all users, omit the "sharedTo" section.
Step 5: Validate Locally
- Well-formed XML; correct namespace
- Field names exist on the object; operators and values match field types
- Path and fullName alignment
- If multiple filters: set booleanFilterLogic correctly (e.g., "1 AND (2 OR 3)")
Step 6: Deploy and Verify in Org
- Deploy the component path or the whole object.
- In the UI, open the object tab and:
- Confirm records match filters
- Confirm columns render correctly
- Confirm visibility matches audience
Common Deployment Errors
| Error | Cause | Fix |
|---|---|---|
| "Invalid field Status" | Used label instead of API name, or used API Name instead of defined name for Standard Field | Use Status__c (or correct API name), or NAME instead of Name (for Standard Fields) |
| "Invalid filter operator" | Operator not valid for field type | Choose operation compatible with field type (e.g., equals for picklist) |
| "Component not found at path" | Wrong folder or file name | Place in objects/<Object>/listViews and align file name with fullName |
| "Malformed booleanFilterLogic" | Syntax or index mismatch | Use "1 AND 2" style, ensure filters index order matches |
Verification Checklist
- All required fields populated (fullName, label, filterScope, columns)
- Property values are XML-encoded where needed
- Custom Field references use API names (e.g., Status__c)
- Standard Field references use defined names (e.g., NAME)
- Operations match field types; picklist values are valid
- booleanFilterLogic (if used) matches filters ordering and count
- File path and fullName/developerName are aligned
- No deprecated or Classic-only properties included
- Deployed successfully and visible as intended
- Records, columns, and filtering behave as specified
Frequently asked questions about Salesforce List View Generator
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
