Retrieve Component using Package.xml (All-in-One)

In this post, we will see how can we retrieve components using the Package.xml file from Salesforce Org. There are different types of components in Salesforce and it is difficult to remember the API names and Syntax of all the components required to retrieve using Package.xml. Hence, this post will help you to retrieve any component using the Package.xml file from Salesforce Org.

The first thing that we need to do is create a Package.xml file and add the required XML code like below:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <!-- ADD COMPONENT CODE HERE TO RETRIVE-->
    <version>48.0</version>
</Package>

Here, the version in the Package tag is used to provide the Version for the Package.xml file. Then in the Package attribute, we have to add code to retrieve the components.

To provide Component Type to retrieve, we need to follow below syntax inside Package attribute:

<types>
    <members>*</members>
    <name>ComponentType</name>
</types>

Inside the name tag, we need to provide the API name of Component like ApexClass. We have to add members tag to provide the name of the Apex Class that we want to retrieve. Add multiple members tag to retrieve multiple Apex Classes. If you want to retrieve all the Apex Classes, just provide * in members tag which will retrieve all the Apex Classes.

Remember that inside members tag, we have to provide API Name of the component.

Once the Package.xml is created, you can either use Workbench, VS Code, or ANT Tool to fetch the components. Below is the syntax for all types of components that we can retrieve.

Retrieve Apex Class

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleApexClass</members>
        <name>ApexClass</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Visualforce Page

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleVFPage</members>
        <name>ApexPage</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Apex Trigger

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleTrigger</members>
        <name>ApexTrigger</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Visualforce Component

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleVisualforceComponent</members>
        <name>ApexComponent</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Lightning Aura Component

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleAuraComponent</members>
        <name>AuraDefinitionBundle</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Lightning Web Component

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleLWC</members>
        <name>LightningComponentBundle</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Static Resource

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleStaticResource</members>
        <name>StaticResource</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Custom Label

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleCustomLabel</members>
        <name>CustomLabels</name>	
    </types>
    <version>48.0</version>
</Package>

Retrieve Custom Metadata

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>CustomMetadataName.SampleRecord</members>
        <name>CustomMetadata</name>	
    </types>
    <version>48.0</version>
</Package>

Retrieve Custom Object

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleCustomObject</members>
        <name>CustomObject</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Custom Field

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>ObjectName.CustomFieldName</members>
        <name>CustomField</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Email Template

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>FolderName/SampleEmailTemplateName</members>
        <name>EmailTemplate</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Workflow

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleWorkflow</members>
        <name>Workflow</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Flow and Process Builder Process

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleProcessName</members>
        <members>SampleFlowName</members>
        <name>Flow</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Quick Action

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>ObjectName.SampleQuickAction</members>
        <name>QuickAction</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Sharing Rules

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleObjectName</members>
        <name>SharingRules</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Profile

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Sample Profile Name</members>
        <name>Profile</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Role

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleRoleName</members>
        <name>Role</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Remote Site Settings

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleRemoteSite</members>
        <name>RemoteSiteSetting</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Queue

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleQueueName</members>
        <name>Queue</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Permission Set

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SamplePermissionSet</members>
        <name>PermissionSet</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Group

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleGroup</members>
        <name>Group</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Flexipage

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleFlexiPage</members>
        <name>FlexiPage</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Tab

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleTab</members>
        <name>CustomTab</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Custom Permission

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleCustomPermission</members>
        <name>CustomPermission</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Site

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleSite</members>
        <name>CustomSite</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Application

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleApplication</members>
        <name>CustomApplication</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Connected App

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleConnectedApp</members>
        <name>ConnectedApp</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Auth Provider

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>SampleAuthProvider</members>
        <name>AuthProvider</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Assignment Rules

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>ObjectName</members>
        <name>AssignmentRules</name>
    </types>
    <version>48.0</version>
</Package>

Retrieve Action Override

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>ObjectName.ActionName</members>
        <!-- <members>Case.View</members> -->
        <name>ActionOverride</name>
    </types>
    <version>48.0</version>
</Package>

In this way, we can Retrieve Any Component using Package.xml. Provider the proper name and members. The rest of the code is common. Also, provide the version properly as some Components or Features are not available in the lower version which might result in an error.

If you don’t want to miss new posts, please Subscribe here.

If you want to know more about Metadata Types, you can check the official Salesforce documentation here.

Thanks!

5 thoughts on “Retrieve Component using Package.xml (All-in-One)”

Comments are closed.