~
Package.xml samples to retrieve Salesforce metadata.

Package.xml samples to retrieve Salesforce metadata
Here we will go through how we can create a package.xml to retrieve metadata from Salesforce. Common metadata type samples are also included.
Metadata type names can be tricky and it usually difficult to create a package.xml without some googling. Here we provide a sample package.xml with examples of common types.
Once you have a package.xml, it is relatively easy to retrieve metadata using it and deploy to other environments. There are multiple options for that- Force.com Migration tool/ANT (Outdated), SFDX (Recommended)- How to retrieve code using SFDX CLI.
Package.xml sample with common metadata types
When you are creating package.xml, copy below simple package.xml file as a starting point.
<!--starting template-->
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>AccountController</members>
<name>ApexClass</name>
</types>
<version>45.0</version>
</Package>
Now copy relevant types from below xml and add to your package.xml. Then go to your org and add members tags for the elements you want to retrieve.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>AccountController</members>
<name>ApexClass</name>
</types>
<!--Visualforce sample-->
<types>
<members>AccountPage</members>
<name>ApexPage</name>
</types>
<!--Trigger sample-->
<types>
<members>AccountTrigger</members>
<name>ApexTrigger</name>
</types>
<!--Aura component sample-->
<types>
<members>MyAuraComponent</members>
<name>AuraDefinitionBundle</name>
</types>
<!--LWC component sample-->
<types>
<members>MyLwcComponent</members>
<name>LightningComponentBundle</name>
</types>
<!--Custom Field sample-->
<types>
<members>Account.CustomFieldOnAccount__c</members>
<members>CustomObject__c.CustomField__c</members>
<name>CustomField</name>
</types>
<types>
<!--Custom metadata is retrieved as object.
Then individual entries in metadatatype is retrieved
with CustomMetadata type-->
<members>Custom_Metadata_Name__mdt</members>
<members>CustomObject__c</members>
<name>CustomObject</name>
</types>
<types>
<members>Custom_Metadata_Name.First_Entry</members>
<name>CustomMetadata</name>
</types>
<types>
<members>Recruiting_App</members>
<name>CustomApplication</name>
</types>
<types>
<members>SystemError</members>
<name>CustomLabel</name>
</types>
<types>
<!--API Name of tab if vf/lighting/web tab-->
<members>Batch_Manager</members>
<!-- Object API name if custom object tab -->
<members>Custom_Object__c</members>
<name>CustomTab</name>
</types>
<types>
<members>Account.Validation_Rule_Name_Here</members>
<members>CustomObject__c.Validation_Rule_Name_Here</members>
<name>ValidationRule</name>
</types>
<!--Page Layout Sample-->
<types>
<members>CustomObject__c-Elite Customer Layout</members>
<name>Layout</name>
</types>
<!--Highlights panel layout sample-->
<types>
<members>Account.Account_Highlights</members>
<name>CompactLayout</name>
</types>
<types>
<members>AppLogo</members>
<name>ContentAsset</name>
</types>
<types>
<members>GenesysAdapter</members>
<name>CallCenter</name>
</types>
<types>
<members>Custom_Object__c.Prevent_Duplicate_Name</members>
<name>DuplicateRule</name>
</types>
<types>
<members>Custom_Object__c.Match_Name</members>
<name>MatchingRule</name>
</types>
<types>
<members>Case.ApprovalFields</members>
<name>FieldSet</name>
</types>
<types>
<members>AppBuilderPageName</members>
<name>FlexiPage</name>
</types>
<types>
<members>ProcessBuilderFlowName</members>
<name>Flow</name>
</types>
<types>
<members>EmployeeTypes</members>
<name>GlobalValueSet</name>
</types>
<types>
<members>CustomObject__c.All</members>
<name>ListView</name>
</types>
<types>
<members>Module_Admin</members>
<name>PermissionSet</name>
</types>
<types>
<members>Company Admin</members>
<name>Profile</name>
</types>
<types>
<members>Maintenance_NewCase</members>
<name>QuickAction</name>
</types>
<types>
<members>ReportFolderName/Custom_Report_Name</members>
<name>Report</name>
</types>
<types>
<members>CasesWithCalls</members>
<name>ReportType</name>
</types>
<types>
<members>CaseStatus</members>
<name>StandardValueSet</name>
</types>
<types>
<members>ChartJs</members>
<name>StaticResource</name>
</types>
<types>
<members>Case.Search_Transactions</members>
<name>WebLink</name>
</types>
<types>
<members>Case.Update_Last_Reminder_Date</members>
<name>WorkflowFieldUpdate</name>
</types>
<types>
<members>Case.Send Reminder</members>
<name>WorkflowRule</name>
</types>
<types>
<members>Case.Send_Reminder_Message</members>
<name>WorkflowTask</name>
</types>
<types>
<members>Case.Support Process</members>
<name>BusinessProcess</name>
</types>
<version>48.0</version>
</Package>