---
schema_version: "1"
id: f55de2dfe78e6dc20d23ba754686d663b496addfe7078bdfea7a8a194780764e
title: InvocableActionExtension
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_invocableactionextension.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_invocableactionextension.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: e3fa20fbc978ba9c43321c75baa63535b021cc5fa164b332baadf5d11f4b7d32
description: Represents the configuration that defines how an action's inputs are presented in a user interface.
---
# InvocableActionExtension

Represents the configuration that defines how an action's inputs are presented in a user interface.

## 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

InvocableActionExtension components have the suffix .invocableactionextension and are stored in the invocableactionextensions folder.

## Version

InvocableActionExtension components are available in API version 65.0 and later.

## Fields

| Field Name | Description |
| --- | --- |
| targets | 
Field Type

[InvocableActionExtensionTarget\[\]](#InvocableActionExtensionTarget)

Description

The target of this invocable action extension.



 |

## InvocableActionExtensionTarget

Represents an extension that can contain attributes for an action's definition, parameters, and types. Use InvocableActionExtensionTarget as the parent element for a given target, such as an ActionParameter. Each assigned attribute is a child of this element.

| Field Name | Description |
| --- | --- |
| attributes | 
Field Type

[InvocableActionExtensionTargetAttribute\[\]](#InvocableActionExtensionTargetAttribute)

Description

The list of attributes.



 |
| targetName | 

Field Type

string

Description

Required.

The name of the target for the attributes.





 |
| targetType | 

Field Type

InvocableActionExtTargetType (enumeration of type string)

Description

Required.

Specifies the type of component within the invocable action.

Values are:

- ActionDefinition—Targets the action class.
- ActionParameter—Targets the specific input/output parameters.
- TypeDefinition—Targets the custom Apex types used by the action.
- TypeProperty—Targets the individual properties within those custom types.





 |

## InvocableActionExtensionTargetAttribute

Represents the individual configuration attributes within an extension target. Use InvocableActionExtensionTargetAttribute as the child element of [InvocableActionExtensionTarget](#InvocableActionExtensionTarget) to define specific behaviors, dependencies, and properties. Each attribute consists of a key-value pair with an associated data type. This configuration determines how the target action parameter, type property, or action definition behaves.

| Field Name | Description |
| --- | --- |
| dataType | 
Field Type

InvocableActionExtAttributeDataType (enumeration of type string)

Description

Required.

The data type of the value stored in the value field.

Values are:

- Boolean
- Date
- Double
- Integer
- Long
- String





 |
| key | 

Field Type

string

Description

Required.

The key field that specifies which standard attribute to provide a value for, or provides a custom key. The available standard keys are:

- CpeName—Assigns a Lightning web component as a partial custom property editor for a primary input parameter in the action's property panel in Flow Builder.
- ConfiguredBy—Links an input parameter to be controlled by another parameter's custom property editor in the action's property panel in Flow Builder.
- ControllingField—Controls the visibility of an input parameter based on another input parameter's existence in the action's property panel in Flow Builder.
- CustomHeaderLwcName—Adds a custom header at the top of the action's property panel in Flow Builder.
- GroupName—Organizes input parameters into collapsible sections in the action's property panel in Flow Builder.
- Order—Controls the vertical display sequence of input parameters in the action's property panel in Flow Builder.
- ProvidedValueList—Defines picklist values for an input parameter in the action's property panel in Flow Builder.

For a custom key, enter any value that contains letters, numbers, or single underscores, starts with a letter, and ends with \_\_c.

This field is available in API version 67.0 and later.



 |
| value | 

Field Type

string

Description

Required.

The value of the associated key. An Invocable Action Extension can have multiple attributes, each with its own value.





 |

## Declarative Metadata Sample Definition

The following example shows an InvocableActionExtension component definition.

<?xml version="1.0" encoding="UTF-8"?>
<InvocableActionExt xmlns="http://soap.sforce.com/2006/04/metadata">
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputOne</targetName\>
        <attributes\>
            <key\>Order</key\>
            <dataType\>Integer</dataType\>
            <value\>1</value\>
        </attributes\>
        <attributes\>
            <key\>Group</key\>
            <dataType\>String</dataType\>
            <value\>Group A</value\>
        </attributes\>
    </targets\>
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputTwo</targetName\>
        <attributes\>
            <key\>Order</key\>
            <dataType\>Integer</dataType\>
            <value\>2</value\>
        </attributes\>
        <attributes\>
            <key\>Group</key\>
            <dataType\>String</dataType\>
            <value\>Group A</value\>
        </attributes\>
    </targets\>
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputThree</targetName\>
        <attributes\>
            <key\>Order</key\>
            <dataType\>Integer</dataType\>
            <value\>3</value\>
        </attributes\>
        <attributes\>
            <key\>Group</key\>
            <dataType\>String</dataType\>
            <value\>Group B</value\>
        </attributes\>
    </targets\>
</InvocableActionExt\>

The following example shows how to define static picklist values for an input parameter.

<?xml version="1.0" encoding="UTF-8"?>
<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputOne</targetName\>
        <attributes\>
            <key\>ProvidedValueList</key\>
            <dataType\>String</dataType\>
            <value\>option1|Option 1, option2|Option 2, option3|Option 3</value\>
        </attributes\>
    </targets\>
</InvocableActionExtension\>

The following example shows how to reference a dynamic picklist class for an input parameter.

<?xml version="1.0" encoding="UTF-8"?>
<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputOne</targetName\>
        <attributes\>
            <key\>ProvidedValueList</key\>
            <dataType\>String</dataType\>
            <value\>apex://MyDynamicPicklistClass</value\>
        </attributes\>
    </targets\>
</InvocableActionExtension\>

The following example shows how to assign a partial custom property editor to a primary parameter and link a related parameter.

<?xml version="1.0" encoding="UTF-8"?>
<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputOne</targetName\>
        <attributes\>
            <key\>CpeName</key\>
            <dataType\>String</dataType\>
            <value\>c:myCustomEditor</value\>
        </attributes\>
    </targets\>
    <targets\>
        <targetType\>ActionParameter</targetType\>
        <targetName\>Example.Request.inputTwo</targetName\>
        <attributes\>
            <key\>ConfiguredBy</key\>
            <dataType\>String</dataType\>
            <value\>inputOne</value\>
        </attributes\>
    </targets\>
</InvocableActionExtension\>

The following example shows how to add a custom header to an action.

<?xml version="1.0" encoding="UTF-8"?>
<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
    <targets\>
        <targetType\>ActionDefinition</targetType\>
        <targetName\>Example</targetName\>
        <attributes\>
            <key\>CustomHeaderLwcName</key\>
            <dataType\>String</dataType\>
            <value\>c:myCustomHeader</value\>
        </attributes\>
    </targets\>
</InvocableActionExtension\>

The following example shows a package.xml file that references the previous definition.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types\>
        <members\>Example</members\>
        <name\>InvocableActionExtension</name\>
    </types\>
    <version\>65.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.").