Newer Version Available

This content describes an older version of this product. View Latest

FlowTest

Represents the metadata associated with a flow test. Before you activate a record-triggered, autolaunched, or Data Cloud-triggered flow, you can test it to verify its expected results and identify flow run-time failures.

Parent Type

This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location

FlowTest components have the suffix .flowtest, and Salesforce stores them in the flowtests folder.

Version

FlowTest components are available in API version 55.0 and later.

Special Access Rules

There are no additional access requirements that are specific to this type.

Fields

Field Name Description
description
Field Type
string
Description
The description of the flow test, such as what it does or how it works.
flowApiName
Field Type
string
Description

Required.

The API name of the flow associated with the flow test.
flowTestDataSources
Field Type
FlowTestDataSource[]
Description
An array of data sources for the flow test of a record-triggered flow or an autolaunched flow. This field is available in API version 66.0 and later.
flowTestFlowVersions
Field Type
FlowTestFlowVersion[]
Description
An array of flow versions that are associated with the flow test. This field is available in API version 66.0 and later.
isolatedObjectExternalKeys
Field Type
FlowTestIsolObjExtlKey[]
Description
An array of isolated objects and the key fields that uniquely identify each record for the flow test of a record-triggered flow or an autolaunched flow. This field is available in API version 66.0 and later.
label
Field Type
string
Description

Required.

The label of the flow test.
testPoints
Field Type
FlowTestPoint[]
Description
An array of test points for the test.
testType
Field Type
FlowTestType (enumeration of type string)
Description

Required.

Specifies whether the test contains assertions. This field is available in API version 66.0 and later.

Possible values are:

  • WithAssertion—The automated comparison of the actual flow outcome with the user-defined expected outcome that assertions define.

FlowTestFlowVersion

Defines the flow version for the flow test. This subtype is available in API version 66.0 and later.

Field Name Description
flowVersionNumber
Field Type
string
Description
The version number of the flow version that’s associated with the flow test.

FlowTestDataSource

Defines the data source for a flow test of a record-triggered flow or an autolaunched flow. This subtype is available in API version 66.0 and later.

Field Name Description
apexClass
Field Type
string
Description

Required.

The Apex class associated with the data source when dataSourceType is ApexClass.
dataSourceType
Field Type
FlowTestDataSourceType (enumeration of type string)
Description

Required.

The data source type for the flow test.

Possible value is ApexClass.

FlowTestIsolObjExtlKey

Defines an external isolated object and the fields that identify unique records to test for a record-triggered flow or an autolaunched flow. This subtype is available in API version 66.0 and later.

Field Name Description
keyFields
Field Type
FlowTestExtKeyField[]
Description
The key fields that identify unique records to test. Don’t use fields of the lookup data type.
objectType
Field Type
string
Description

Required.

The object type of the isolated data to test.

FlowTestExtKeyField

Defines the external key fields that identify the unique records in isolated test data for a record-triggered flow or an autolaunched flow. This subtype is available in API version 66.0 and later.

Field Name Description
fieldName
Field Type
string
Description

Required.

The field API name to identify the unique records to test.

FlowTestPoint

Defines a flow test point that Salesforce evaluates when a flow test runs. Salesforce evaluates each test point in the order that it’s listed.

Field Name Description
assertions
Field Type
FlowTestAssertion[]
Description
An array of assertions for the test.
elementApiName
Field Type
string
Description

Required.

The element API names for the start of the flow and the end of the flow.

Possible values are:

  • Start
  • Finish
isUseMockOuput Reserved for future use.
parameters
Field Type
FlowTestParameter[]
Description
An array of parameters for the test.

FlowTestAssertion

Defines an assertion for a test point that Salesforce evaluates when a flow test runs. If one assertion evaluates to false, the test run fails.

Field Name Description
conditions
Field Type
FlowTestCondition[]
Description
An array of conditions for an assertion.
errorMessage
Field Type
string
Description
If the associated condition evaluates to false, this custom message appears in Flow Builder.

FlowTestCondition

Defines a condition for an assertion that Salesforce evaluates when a flow test runs. If one condition evaluates to false, the assertion fails.

Field Name Description
leftValueReference
Field Type
string
Description

Required.

The reference to the flow resource that the specified operator applies to.
operator
Field Type
FlowComparisonOperator (enumeration of type string)
Description

Required.

The flow test uses this value to evaluate the resource reference in the leftValueReference field.

Possible values are:

  • Contains
  • EndsWith
  • EqualTo
  • GreaterThan
  • GreaterThanOrEqualTo
  • HasError—This value is available in API version 64.0 and later.
  • In—This value is available in API version 56.0 and later.
  • IsBlank—This value is available in API version 61.0 and later.
  • IsChanged
  • IsEmpty—This value is available in API version 61.0 and later.
  • IsNull
  • LessThan
  • LessThanOrEqualTo
  • NotEqualTo
  • NotIn—This value is available in API version 56.0 and later.
  • StartsWith
  • WasSelected
  • WasSet
  • WasVisited
rightValue
Field Type
FlowTestReferenceOrValue
Description
The value that the operator applies to the resource reference in the leftValueReference field.

FlowTestReferenceOrValue

Defines a specific value that the operator applies to the resource reference in flow test assertions and conditions.

Field Name Description
booleanValue
Field Type
boolean
Description
Specifies a boolean value.
dateTimeValue
Field Type
dateTime
Description
Specifies a dateTime value.
dateValue
Field Type
date
Description
Specifies a dateValue value.
elementReference Reserved for future use.
jsonValue
Field Type
string
Description
Specifies a JSON value for the isolated test data record. This field is available in API version 66.0 and later.
numberValue
Field Type
double
Description
Specifies a number value.
sobjectValue
Field Type
string
Description
Specifies an sObject value.
stringValue
Field Type
string
Description
Specifies a string value.
timeValue
Field Type
time
Description
Specifies a time value.

FlowTestParameter

Defines parameters for the triggering record, flow path, and input variable in the Start test point.

Field Name Description
leftValueReference
Field Type
string
Description

Required.

The name of the parameter. When type is InputTriggeringRecordInitial or InputTriggeringRecordUpdated, the value for leftValueReference must be $Record. When type is ScheduledPath, the value for leftValueReference must be ScheduledPathApiName.
type
Field Type
FlowTestParameterType (enumeration of type string)
Description

Required.

The type of parameter.

Possible values are:

  • InputTriggeringRecordInitial
  • InputTriggeringRecordUpdated
  • InputVariable—This value is available in API version 66.0 and later.
  • ScheduledPath—Available in API version 56.0 and later.
value
Field Type
FlowTestReferenceOrValue
Description

Required.

The value that the operator applies to the resource reference in the leftValueReference field.

Declarative Metadata Sample Definition

The following is an example of a FlowTest component.

1<?xml version="1.0" encoding="UTF-8"?>
2<FlowTest xmlns="http://soap.sforce.com/2006/04/metadata">
3    <flowApiName>Example_Test</flowApiName>
4    <label>Test Two</label>
5    <testPoints>
6        <elementApiName>Start</elementApiName>
7        <parameters>
8            <leftValueReference>$Record</leftValueReference>
9            <type>InputTriggeringRecordInitial</type>
10            <value>
11                <sobjectValue>{&quot;AnnualRevenue&quot;:100000,&quot;BillingCity&quot;:&quot;New York&quot;}}</sobjectValue>
12            </value>
13        </parameters>
14        <parameters>
15            <leftValueReference>ScheduledPathApiName</leftValueReference>
16            <type>ScheduledPath</type>
17            <value>Every_Monday</value>
18        </parameters>
19        <parameters>
20            <leftValueReference>$Record</leftValueReference>
21            <type>InputTriggeringRecordUpdated</type>
22            <value>
23                <sobjectValue>{&quot;AnnualRevenue&quot;:100000,&quot;BillingCity&quot;:&quot;New York&quot;}</sobjectValue>
24            </value>
25        </parameters>
26    </testPoints>
27    <testPoints>
28        <assertions>
29            <conditions>
30                <leftValueReference>$Record.Industry</leftValueReference>
31                <operator>EqualTo</operator>
32                <rightValue>
33                    <stringValue>Other</stringValue>
34                </rightValue>
35            </conditions>
36            <errorMessage>Industry was not set.</errorMessage>
37        </assertions>
38        <elementApiName>Finish</elementApiName>
39    </testPoints>
40</FlowTest>

For isolated test data sample:

1<?xml version="1.0" encoding="UTF-8"?>
2<FlowTest xmlns="http://soap.sforce.com/2006/04/metadata">
3    <flowApiName>Example_Test</flowApiName>
4    <label>Test Two</label>
5    <flowTestDataSources>
6        <apexClass>FlowTestDataFactory</apexClass>
7        <dataSourceType>ApexClass</dataSourceType>
8    </flowTestDataSources>
9    <flowTestFlowVersions>
10        <flowVersionNumber>1</flowVersionNumber>
11    </flowTestFlowVersions>   
12    <isolatedObjectExternalKeys>
13        <keyFields>
14            <fieldName>Phone</fieldName>
15        </keyFields>
16        <objectType>Account</objectType>
17    </isolatedObjectExternalKeys>
18    <testPoints>
19        <elementApiName>Start</elementApiName>                  
20        <parameters>
21            <leftValueReference>Accounts</leftValueReference>
22            <type>InputVariable</type>
23            <value>
24                <jsonValue>{&quot;fields&quot;:{&quot;Phone&quot;:&quot;4155551212&quot;},&quot;attributes&quot;:{&quot;type&quot;:&quot;Account&quot;}}</jsonValue>
25            </value>
26        </parameters>
27    </testPoints>
28    <testPoints>
29        <assertions>
30            <conditions>
31                <leftValueReference>Accounts.Phone</leftValueReference>
32                <operator>EqualTo</operator>
33                <rightValue>
34                    <stringValue>4155551212</stringValue>
35                </rightValue>
36            </conditions>         
37            <errorMessage>Account not found.</errorMessage>
38        </assertions>
39        <elementApiName>Finish</elementApiName>
40    </testPoints>
41    <testType>WithAssertion</testType>
42</FlowTest>

The following is an example package.xml 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>Test_Two</members>
5<name>FlowTest</name>
6</types>
7<version>66.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.