---
schema_version: "1"
id: 6e94556b9c30bf847afb0dd25e1ceb000b5ac80f159d033d8479b3c1e4b04f4f
title: GenAiFunction
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_genaifunction.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_genaifunction.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2852d0bffa8d09ec768ae67de991d161816396e18a479984a111f84830ee25ad
description: Represents an agent action that can be added to an AI agent.
---
# GenAiFunction

Represents an agent action that can be added to an AI agent.

## Parent Type

This type extends the [Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/metadata.htm "The base class for all metadata types. You can’t edit this object. A component is an instance of a metadata type.") metadata type and inherits its fullName field.

## File Suffix and Directory Location

GenAiFunction components have the suffix .genAiFunction and are stored in the genAiFunctions folder.

GenAiFunction components can contain folders for the [input](#input_folder) and [output](#output_folder) schemas. Here’s an example component, showing the schema folders.

![GenAiFunction folder structure](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/dev_guides/api_meta/images/mdapi_genaifunction_folder.png)

See the [Input Folder](#input_folder) and [Output Folder](#output_folder) sections for more information.

## Version

GenAiFunction components are available in API version 60.0 and later.

## Special Access Rules

GenAiFunction is available only if Agents is enabled in your org.

## Fields

| Field Name | Description |
| --- | --- |
| description | 
Field Type

string

Description

A description explaining the general purpose and domain of the action.



 |
| invocationTarget | 

Field Type

string

Description

Required. Target invocation used by invocation operations.





 |
| invocationTargetType | 

Field Type

PlannerFunctionInvocableTargetType (enumeration of type string)

Description

Required. Invocable action type used by invocation operations.

Values are:

- api
- apex
- auraEnabled
- createCatalogItemRequest
- executeIntegrationProcedure
- externalService
- flow
- generatePromptResponse
- mcpTool
- namedQuery
- quickAction
- retriever
- runExpressionSet
- slack
- standardInvocableAction
- stub





 |
| isConfirmationRequired | 

Field Type

boolean

Description

Indicates whether confirmation is required for this action.



 |
| isIncludeInProgressIndicator | 

Field Type

boolean

Description

Indicates whether to display the progress indicator for this action.



 |
| mappingAttributes | 

Field Type

[GenAiPlannerAttr](#section_GenAiPlannerAttr)\[\]

Description

List of attributes for the planner.



 |
| masterLabel | 

Field Type

string

Description

Required. The master label for the generative AI action.





 |
| pluginField | 

Field Type

string

Description

Represents the action’s parent topic.





 |
| progressIndicatorMessage | 

Field Type

string

Description

The progress message.





 |

## GenAiPlannerAttr

| Field Name | Description |
| --- | --- |
| description | 
Field Type

string

Description

Description of the planner attribute.



 |
| label | 

Field Type

string

Description

Required. Label for the planner attribute.





 |
| name | 

Field Type

string

Description

Required. Name of the planner attribute.



 |
| parameterName | 

Field Type

string

Description

Required. The parameter name.



 |
| parameterType | 

Field Type

PlannerAttrMappingType (enumeration of type string)

Description

Required. The parameter type. Values are:

- input
- output





 |

## Input Folder

The input folder contains a schema.json file with the action inputs. Here’s a sample input schema file.

{
  "required" : \["OwnerId", "Status"\],
  "properties" : {
    "OwnerId" : {
      "title" : "Owner Id",
      "description" : "ID of the Salesforce record that owns the request.",
      "lightning:type" : "lightning\_\_textType",
      "lightning:isPII" : false,
      "copilotAction:isUserInput" : true
    },
    "Status" : {
      "title" : "Request Status",
      "description" : "The status of the contact request.",
      "lightning:type" : "lightning\_\_textType",
      "lightning:isPII" : false,
      "copilotAction:isUserInput" : true
    }
  },
  "lightning:type" : "lightning\_\_objectType"
}
				

This table describes the properties that you can specify in this JSON file.

<table class="featureTable sort_table" summary="">


          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d542231e742">Field Name</th>

              <th class="featureTableHeader  " id="d542231e745">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name"><span class="keyword parmname">required</span></td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_fl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_fl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">array of strings</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">A list of all the required properties in the input
                    list.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name"><span class="keyword parmname">properties</span></td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_gl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_gl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">object</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The parent object for all the properties associated with
                    the input.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">{PROPERTY_NAME}</span>
                <p class="p">(child of properties
                  field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_hl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_hl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">object</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Each property in the
                    <span class="keyword parmname">properties</span> object must contain
                    the API value corresponding to the input parameter.
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">title</span>
                <p class="p">(child of properties.PROPERTY_NAME
                  field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_il4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_il4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. The label for the property.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">description</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_jl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_jl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The description for the property.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">lightning:type</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_kl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_kl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Describes the type of property. </dd>

                  <dd class="dd" id="lighting-type-description">
                    <a name="lighting-type-description"><!-- --></a>Some of the possible
                    values include:
                    <a name="ul_ll4_4yq_q2c"><!-- --></a>
                    <ul class="ul bulletList" id="ul_ll4_4yq_q2c">
                      <li class="li">
                        <samp class="codeph nolang">lightning__booleanType</samp>—Boolean
                        type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__dateType</samp>—Date type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__dateTimeType</samp>—Date and time
                        type. When using this value, you must provide a
                        <samp class="codeph nolang">dateTime</samp>
                        string. This field is specified in the format
                        <samp class="codeph nolang">yyyy-MM-dd'T'HH:mm:ss.SSSZ</samp>. You can also
                        provide a <samp class="codeph nolang">timeZone</samp> string. Use the timezone
                        attribute to specify a time zone in the IANA time
                        zone database format.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__integerType</samp>—Integer type.
                        When using this value, you can also provide
                        <samp class="codeph nolang">maximum</samp> and
                        <samp class="codeph nolang">minimum</samp>
                        numbers for this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__listType</samp>—List type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__multilineTextType</samp>—Multi-line
                        text type. When using this value, you can also
                        provide <samp class="codeph nolang">maxLength</samp> and <samp class="codeph nolang">minLength</samp> numbers for
                        this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__numberType</samp>—Number type. When
                        using this value, you can also provide <samp class="codeph nolang">maximum</samp> and <samp class="codeph nolang">minimum</samp> numbers for
                        this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__objectType</samp>—Object type. When
                        using this value, you must also provide a <samp class="codeph nolang">properties</samp> object
                        that contains the list of subproperties within
                        it.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__recordIdType</samp>—Record ID
                        type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__richTextType</samp>—Rich text type.
                        When using this value, you can also provide
                        <samp class="codeph nolang">maxLength</samp> and
                        <samp class="codeph nolang">minLength</samp>
                        numbers for this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__textType</samp>—Text type. When
                        using this value, you can also provide <samp class="codeph nolang">maxLength</samp> and <samp class="codeph nolang">minLength</samp> numbers for
                        this property. The maximum text type length is 250
                        characters.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__urlType</samp>—URL type. When using
                        this value, you can also provide an array of
                        strings in a <samp class="codeph nolang">lightning:allowedUrlSchemes</samp> field to
                        specify the list of allowed URL schemes.
                      </li>

                    </ul>

                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">lightning:isPII</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_ml4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_ml4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether the property contains personally
                    identifiable information.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name">
                <span class="keyword parmname">copilotAction:isUserInput</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_nl4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_nl4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether the property is presented as user
                    input.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e742" data-title="Field Name"><span class="keyword parmname">lightning:type</span></td>

              <td class="entry" headers="d542231e745" data-title="Description">
                <a name="dl_ol4_4yq_q2c"><!-- --></a>
                <dl class="dl detailList" id="dl_ol4_4yq_q2c">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Describes the type of input. This value should
                    always be <samp class="codeph nolang">lightning__objectType</samp>.</dd>


                </dl>

              </td>

            </tr>

          </tbody>

        </table>

## Output Folder

The output folder contains a schema.json file with the action output. Here’s a sample output schema file.

{
				"properties" : {
				"Id" : {
				"title" : "Contact Request Id",
				"description" : "ID of the Salesforce contact request record.",
				"lightning:type" : "lightning\_\_recordIdType",
				"lightning:isPII" : false,
				"copilotAction:isDisplayable" : true,
				"copilotAction:isUsedByPlanner" : true
				}
				},
				"lightning:type" : "lightning\_\_objectType"
				}

This table describes the properties that you can specify in this JSON file.

<table class="featureTable sort_table" summary="">


          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d542231e1199">Field Name</th>

              <th class="featureTableHeader  " id="d542231e1202">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name"><span class="keyword parmname">properties</span></td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">object</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The parent object for all the properties associated with
                    the output.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">{PROPERTY_NAME}</span>
                <p class="p">(child of properties
                  field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">object</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Each property in the
                    <span class="keyword parmname">properties</span> object must contain
                    the API value corresponding to the output
                    parameter.
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">title</span>
                <p class="p">(child of properties.PROPERTY_NAME
                  field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. The label for the property.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">description</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The description for the property.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">lightning:type</span>
                <p class="p">(child of properties.PROPERTY_NAME
                  field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Describes the type of output.</dd>

                  <dd class="dd">Some of the possible values include:
                    <ul class="ul bulletList">
                      <li class="li">
                        <samp class="codeph nolang">lightning__booleanType</samp>—Boolean
                        type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__dateType</samp>—Date type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__dateTimeType</samp>—Date and time
                        type. When using this value, you must provide a
                        <samp class="codeph nolang">dateTime</samp>
                        string. This field is specified in the format
                        <samp class="codeph nolang">yyyy-MM-dd'T'HH:mm:ss.SSSZ</samp>. You can also
                        provide a <samp class="codeph nolang">timeZone</samp> string. Use the timezone
                        attribute to specify a time zone in the IANA time
                        zone database format.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__integerType</samp>—Integer type.
                        When using this value, you can also provide
                        <samp class="codeph nolang">maximum</samp> and
                        <samp class="codeph nolang">minimum</samp>
                        numbers for this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__listType</samp>—List type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__multilineTextType</samp>—Multi-line
                        text type. When using this value, you can also
                        provide <samp class="codeph nolang">maxLength</samp> and <samp class="codeph nolang">minLength</samp> numbers for
                        this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__numberType</samp>—Number type. When
                        using this value, you can also provide <samp class="codeph nolang">maximum</samp> and <samp class="codeph nolang">minimum</samp> numbers for
                        this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__objectType</samp>—Object type. When
                        using this value, you must also provide a <samp class="codeph nolang">properties</samp> object
                        that contains the list of subproperties within
                        it.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__recordIdType</samp>—Record ID
                        type.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__richTextType</samp>—Rich text type.
                        When using this value, you can also provide
                        <samp class="codeph nolang">maxLength</samp> and
                        <samp class="codeph nolang">minLength</samp>
                        numbers for this property.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__textType</samp>—Text type. When
                        using this value, you can also provide <samp class="codeph nolang">maxLength</samp> and <samp class="codeph nolang">minLength</samp> numbers for
                        this property. The maximum text type length is 250
                        characters.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">lightning__urlType</samp>—URL type. When using
                        this value, you can also provide an array of
                        strings in a <samp class="codeph nolang">lightning:allowedUrlSchemes</samp> field to
                        specify the list of allowed URL schemes.
                      </li>

                    </ul>

                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">lightning:isPII</span>
                <p class="p">(child of properties.PROPERTY_NAME
                  field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether the property contains personally identifiable information.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">copilotAction:isDisplayable</span>
                <p class="p">(child of properties.PROPERTY_NAME
                  field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether the property is displayable as
                    output.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name">
                <span class="keyword parmname">copilotAction:isUsedByPlanner</span>
                <p class="p">(child of
                  properties.PROPERTY_NAME field)</p>
              </td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether the property is used by the agent planner. At least one output
                    property must have this value as true or else the
                    planner returns random responses.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d542231e1199" data-title="Field Name"><span class="keyword parmname">lightning:type</span></td>

              <td class="entry" headers="d542231e1202" data-title="Description">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Field Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Describes the type of output. This value
                    should always be <samp class="codeph nolang">lightning__objectType</samp>.</dd>


                </dl>

              </td>

            </tr>

          </tbody>

        </table>

## Usage

In Winter '26 orgs and later, use [GenAiPlannerBundle](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_genaiplannerbundle.htm "Represents a planner for an agent or agent template. It’s a container for all the topics and actions used to interact with a large language model (LLM).") to retrieve actions that are created within a particular agent. To retrieve actions in the asset library, use GenAiFunction.

When deploying topic or action metadata to a Summer '25 (version 64.0) org, retrieve the metadata using Metadata API version 64.0, even if your source org is Winter '26 or later (version 65.0). For Winter \`26 and later, use Metadata API version 65.0 and later.

## Declarative Metadata Sample Definition

The following is an example of a GenAiFunction component.

<?xml version="1.0" encoding="UTF-8"?>
<GenAiFunction xmlns="http://soap.sforce.com/2006/04/metadata">
    <description\>get tracking information</description\>
    <invocationTarget\>TrackShipment</invocationTarget\>
    <invocationTargetType\>apex</invocationTargetType\>
    <isConfirmationRequired\>false</isConfirmationRequired\>
    <masterLabel\>get\_tracking\_info</masterLabel\>
</GenAiFunction\>

The following is an example package.xml that references the previous definition.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
   <types\>
      <members\>\*</members\>
      <name\>GenAiFunction</name\>
   </types\>
   <version\>60.0</version\>
</Package\>

## Wildcard Support in the Manifest File

This metadata type supports the wildcard character \* (asterisk) in the package.xml manifest file. For information about using the manifest file, see [Deploying and Retrieving Metadata with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/file_based_zip_file.htm "The deploy() and retrieve() calls are used to deploy and retrieve a .zip file. Within the .zip file is a project manifest (package.xml) that lists what to retrieve or deploy, and one or more XML components that are organized into folders.").