InvocableActionExtension

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

Parent Type 

This type extends Metadata and inherits its fields.

File Suffix and Directory Location 

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

Version 

Introduced in API version 65.0.

Fields 

targets 

InvocableActionExtensionTarget Type 

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.

Fields 

attributes 

targetName 

  • Type: string

  • Required: Yes

  • Description: Required.

    The name of the target for the attributes.

targetType 

  • Type: InvocableActionExtTargetType (enumeration of type string)

  • Required: Yes

  • Description: Required.

    Specifies the type of component within the invocable action.

    Values are:

  • Possible values:

    • 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 Type 

Represents the individual configuration attributes within an extension target. Use InvocableActionExtensionTargetAttribute as the child element of 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.

Fields 

dataType 

  • Type: InvocableActionExtAttributeDataType (enumeration of type string)

  • Required: Yes

  • Description: Required.

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

    Values are:

  • Possible values:

    • Boolean
    • Date
    • Double
    • Integer
    • Long
    • String

key 

  • Type: string (enumeration of type string)

  • Required: Yes

  • 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:

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

  • Possible values:

    • 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.

value 

  • Type: string

  • Required: Yes

  • 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.

1<?xml version="1.0" encoding="UTF-8"?>
2<InvocableActionExt xmlns="http://soap.sforce.com/2006/04/metadata">
3    <targets>
4        <targetType>ActionParameter</targetType>
5        <targetName>Example.Request.inputOne</targetName>
6        <attributes>
7            <key>Order</key>
8            <dataType>Integer</dataType>
9            <value>1</value>
10        </attributes>
11        <attributes>
12            <key>Group</key>
13            <dataType>String</dataType>
14            <value>Group A</value>
15        </attributes>
16    </targets>
17    <targets>
18        <targetType>ActionParameter</targetType>
19        <targetName>Example.Request.inputTwo</targetName>
20        <attributes>
21            <key>Order</key>
22            <dataType>Integer</dataType>
23            <value>2</value>
24        </attributes>
25        <attributes>
26            <key>Group</key>
27            <dataType>String</dataType>
28            <value>Group A</value>
29        </attributes>
30    </targets>
31    <targets>
32        <targetType>ActionParameter</targetType>
33        <targetName>Example.Request.inputThree</targetName>
34        <attributes>
35            <key>Order</key>
36            <dataType>Integer</dataType>
37            <value>3</value>
38        </attributes>
39        <attributes>
40            <key>Group</key>
41            <dataType>String</dataType>
42            <value>Group B</value>
43        </attributes>
44    </targets>
45</InvocableActionExt>

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

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

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

1<?xml version="1.0" encoding="UTF-8"?>
2<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
3    <targets>
4        <targetType>ActionParameter</targetType>
5        <targetName>Example.Request.inputOne</targetName>
6        <attributes>
7            <key>ProvidedValueList</key>
8            <dataType>String</dataType>
9            <value>apex://MyDynamicPicklistClass</value>
10        </attributes>
11    </targets>
12</InvocableActionExtension>

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

1<?xml version="1.0" encoding="UTF-8"?>
2<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
3    <targets>
4        <targetType>ActionParameter</targetType>
5        <targetName>Example.Request.inputOne</targetName>
6        <attributes>
7            <key>CpeName</key>
8            <dataType>String</dataType>
9            <value>c:myCustomEditor</value>
10        </attributes>
11    </targets>
12    <targets>
13        <targetType>ActionParameter</targetType>
14        <targetName>Example.Request.inputTwo</targetName>
15        <attributes>
16            <key>ConfiguredBy</key>
17            <dataType>String</dataType>
18            <value>inputOne</value>
19        </attributes>
20    </targets>
21</InvocableActionExtension>

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

1<?xml version="1.0" encoding="UTF-8"?>
2<InvocableActionExtension xmlns="http://soap.sforce.com/2006/04/metadata">
3    <targets>
4        <targetType>ActionDefinition</targetType>
5        <targetName>Example</targetName>
6        <attributes>
7            <key>CustomHeaderLwcName</key>
8            <dataType>String</dataType>
9            <value>c:myCustomHeader</value>
10        </attributes>
11    </targets>
12</InvocableActionExtension>

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

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>Example</members>
5        <name>InvocableActionExtension</name>
6    </types>
7    <version>65.0</version>
8</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.