Salesforce Automation · Schema
Salesforce Automation Flow
A Salesforce Flow definition representing an automation built with Flow Builder. Flows are the primary declarative automation tool in Salesforce, replacing Workflow Rules and Process Builder. They support screen flows (user-interactive), autolaunched flows (triggered automatically), scheduled flows, record-triggered flows, and platform event-triggered flows. This schema models the Flow metadata as returned by the Tooling API and Metadata API.
AutomationCloudCRMEnterpriseSales
Properties
| Name | Type | Description |
|---|---|---|
| Id | string | The 18-character Salesforce record ID for this specific Flow version. Each version of a Flow has a unique ID. |
| DefinitionId | string | The 18-character ID of the parent FlowDefinition record. All versions of the same flow share this DefinitionId. |
| DeveloperName | string | The unique developer name (API name) for this flow. Used as the identifier in metadata deployments and API references. Cannot contain spaces or special characters. |
| MasterLabel | string | The display label shown in the Flow Builder UI and flow list views. |
| Description | stringnull | An optional description of the flow's purpose and behavior. |
| ProcessType | string | The type of flow, which determines how and when it executes. AutoLaunchedFlow runs without user interaction (triggered by records, schedules, or invocable actions). Flow is a Screen Flow that presents |
| TriggerType | stringnull | For record-triggered flows, specifies when the flow runs relative to the DML operation. |
| TriggerObject | stringnull | For record-triggered flows, the API name of the SObject that triggers the flow (e.g., Account, Contact, Opportunity, CustomObject__c). |
| RecordTriggerType | stringnull | For record-triggered flows, specifies which record operations trigger the flow. |
| Status | string | The status of this flow version. Active means this version is the currently running version. Draft is a version under development. Obsolete is a previously active version that has been superseded. Inv |
| VersionNumber | integer | The version number within the FlowDefinition. Increments with each new version. The active version number is stored on the FlowDefinition record. |
| ApiVersion | string | The Salesforce API version this flow was created with (e.g., 63.0). Determines which flow features are available. |
| RunInMode | stringnull | The context in which the flow runs. SystemModeWithSharing runs with full object/field access but respects sharing rules. SystemModeWithoutSharing runs with full access and no sharing restrictions. Def |
| Metadata | object | The full flow metadata containing all elements, connectors, variables, and configuration. This is the complete definition of the flow's logic. |
| FullName | string | The fully qualified name including namespace prefix if applicable (e.g., MyNamespace__MyFlow-1) |
| IsTemplate | boolean | Whether this flow is a template that can be used to create new flows |
| IsOverridable | boolean | Whether this flow can be overridden by a flow in a subscriber org |
| CreatedDate | string | The date and time this flow version was created, in ISO 8601 format |
| CreatedById | string | The 18-character ID of the user who created this flow version |
| LastModifiedDate | string | The date and time this flow version was last modified |
| LastModifiedById | string | The 18-character ID of the user who last modified this flow version |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/salesforce-automation/refs/heads/main/json-schema/salesforce-automation-flow-schema.json",
"title": "Salesforce Automation Flow",
"description": "A Salesforce Flow definition representing an automation built with Flow Builder. Flows are the primary declarative automation tool in Salesforce, replacing Workflow Rules and Process Builder. They support screen flows (user-interactive), autolaunched flows (triggered automatically), scheduled flows, record-triggered flows, and platform event-triggered flows. This schema models the Flow metadata as returned by the Tooling API and Metadata API.",
"type": "object",
"properties": {
"Id": {
"type": "string",
"description": "The 18-character Salesforce record ID for this specific Flow version. Each version of a Flow has a unique ID.",
"minLength": 15,
"maxLength": 18,
"pattern": "^[a-zA-Z0-9]{15,18}$"
},
"DefinitionId": {
"type": "string",
"description": "The 18-character ID of the parent FlowDefinition record. All versions of the same flow share this DefinitionId.",
"minLength": 15,
"maxLength": 18
},
"DeveloperName": {
"type": "string",
"description": "The unique developer name (API name) for this flow. Used as the identifier in metadata deployments and API references. Cannot contain spaces or special characters.",
"pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
},
"MasterLabel": {
"type": "string",
"description": "The display label shown in the Flow Builder UI and flow list views."
},
"Description": {
"type": [
"string",
"null"
],
"description": "An optional description of the flow's purpose and behavior."
},
"ProcessType": {
"type": "string",
"description": "The type of flow, which determines how and when it executes. AutoLaunchedFlow runs without user interaction (triggered by records, schedules, or invocable actions). Flow is a Screen Flow that presents UI screens to users. Workflow represents legacy Process Builder processes. Other types serve specialized purposes.",
"enum": [
"AutoLaunchedFlow",
"Flow",
"Workflow",
"CustomEvent",
"InvocableProcess",
"LoginFlow",
"ActionPlan",
"JourneyBuilderIntegration",
"UserProvisioningFlow",
"Survey",
"SurveyEnrich",
"Appointments",
"FSCLending",
"DigitalForm",
"FieldServiceMobile",
"OrchestrationFlow",
"RoutingFlow",
"ServiceProcess",
"TransactionSecurityFlow",
"ContactRequestFlow",
"ActionCadenceFlow",
"CheckoutFlow",
"CartAsyncFlow",
"DecisionTable",
"EvaluationFlow",
"IndividualObjectLinkingFlow",
"PromptFlow",
"RecordAlertTemplateFlow",
"ScreenFlow",
"Orchestrator"
]
},
"TriggerType": {
"type": [
"string",
"null"
],
"description": "For record-triggered flows, specifies when the flow runs relative to the DML operation.",
"enum": [
"RecordBeforeSave",
"RecordAfterSave",
"RecordBeforeDelete",
"Scheduled",
"PlatformEvent",
null
]
},
"TriggerObject": {
"type": [
"string",
"null"
],
"description": "For record-triggered flows, the API name of the SObject that triggers the flow (e.g., Account, Contact, Opportunity, CustomObject__c)."
},
"RecordTriggerType": {
"type": [
"string",
"null"
],
"description": "For record-triggered flows, specifies which record operations trigger the flow.",
"enum": [
"Create",
"Update",
"CreateAndUpdate",
"Delete",
null
]
},
"Status": {
"type": "string",
"description": "The status of this flow version. Active means this version is the currently running version. Draft is a version under development. Obsolete is a previously active version that has been superseded. InvalidDraft is a draft with validation errors.",
"enum": [
"Active",
"Draft",
"Obsolete",
"InvalidDraft"
]
},
"VersionNumber": {
"type": "integer",
"description": "The version number within the FlowDefinition. Increments with each new version. The active version number is stored on the FlowDefinition record.",
"minimum": 1
},
"ApiVersion": {
"type": "string",
"description": "The Salesforce API version this flow was created with (e.g., 63.0). Determines which flow features are available.",
"pattern": "^\\d+\\.0$"
},
"RunInMode": {
"type": [
"string",
"null"
],
"description": "The context in which the flow runs. SystemModeWithSharing runs with full object/field access but respects sharing rules. SystemModeWithoutSharing runs with full access and no sharing restrictions. DefaultMode runs in the context of the running user.",
"enum": [
"DefaultMode",
"SystemModeWithSharing",
"SystemModeWithoutSharing",
null
]
},
"Metadata": {
"type": "object",
"description": "The full flow metadata containing all elements, connectors, variables, and configuration. This is the complete definition of the flow's logic.",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"interviewLabel": {
"type": [
"string",
"null"
],
"description": "The label for flow interviews (running instances) shown in Setup"
},
"label": {
"type": "string"
},
"processType": {
"type": "string"
},
"status": {
"type": "string"
},
"startElementReference": {
"type": [
"string",
"null"
],
"description": "The API name of the first element in the flow. Execution begins here."
},
"start": {
"$ref": "#/$defs/FlowStart"
},
"variables": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowVariable"
},
"description": "Variables used to store data during flow execution"
},
"constants": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowConstant"
},
"description": "Constants that hold fixed values"
},
"formulas": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowFormula"
},
"description": "Formula expressions calculated during flow execution"
},
"decisions": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowDecision"
},
"description": "Decision elements that branch flow execution based on conditions"
},
"assignments": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowAssignment"
},
"description": "Assignment elements that set variable values"
},
"recordCreates": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordCreate"
},
"description": "Elements that create new Salesforce records"
},
"recordUpdates": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordUpdate"
},
"description": "Elements that update existing Salesforce records"
},
"recordDeletes": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordDelete"
},
"description": "Elements that delete Salesforce records"
},
"recordLookups": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordLookup"
},
"description": "Elements that query Salesforce records"
},
"loops": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowLoop"
},
"description": "Loop elements that iterate over collections"
},
"screens": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowScreen"
},
"description": "Screen elements that display UI to users (Screen Flows only)"
},
"actionCalls": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowActionCall"
},
"description": "Elements that invoke actions (Apex, email alerts, flows, etc.)"
},
"subflows": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowSubflow"
},
"description": "Elements that invoke other flows as subflows"
},
"waits": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowWait"
},
"description": "Wait elements that pause flow execution until conditions are met"
}
}
},
"FullName": {
"type": "string",
"description": "The fully qualified name including namespace prefix if applicable (e.g., MyNamespace__MyFlow-1)"
},
"IsTemplate": {
"type": "boolean",
"description": "Whether this flow is a template that can be used to create new flows"
},
"IsOverridable": {
"type": "boolean",
"description": "Whether this flow can be overridden by a flow in a subscriber org"
},
"CreatedDate": {
"type": "string",
"format": "date-time",
"description": "The date and time this flow version was created, in ISO 8601 format"
},
"CreatedById": {
"type": "string",
"description": "The 18-character ID of the user who created this flow version"
},
"LastModifiedDate": {
"type": "string",
"format": "date-time",
"description": "The date and time this flow version was last modified"
},
"LastModifiedById": {
"type": "string",
"description": "The 18-character ID of the user who last modified this flow version"
}
},
"additionalProperties": true,
"$defs": {
"FlowStart": {
"type": "object",
"title": "Flow Start Element",
"description": "The start element configuration for the flow, defining trigger conditions and scheduling.",
"properties": {
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"doesRequireRecordChangedToMeetCriteria": {
"type": "boolean",
"description": "For record-triggered flows, whether the record must newly meet the filter criteria (not just continue to meet them)"
},
"filterLogic": {
"type": [
"string",
"null"
],
"description": "Custom filter logic (e.g., '1 AND (2 OR 3)') for combining filter conditions"
},
"filters": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordFilter"
},
"description": "Filter conditions that determine which records trigger the flow"
},
"object": {
"type": [
"string",
"null"
],
"description": "The SObject type for record-triggered flows"
},
"recordTriggerType": {
"type": [
"string",
"null"
],
"enum": ["Create", "Update", "CreateAndUpdate", "Delete", null]
},
"triggerType": {
"type": [
"string",
"null"
],
"enum": ["RecordBeforeSave", "RecordAfterSave", "RecordBeforeDelete", "Scheduled", "PlatformEvent", null]
},
"schedule": {
"type": [
"object",
"null"
],
"properties": {
"frequency": {
"type": "string",
"enum": ["Once", "Daily", "Weekly"]
},
"startDate": {
"type": "string",
"format": "date"
},
"startTime": {
"type": "string"
}
}
}
}
},
"FlowVariable": {
"type": "object",
"title": "Flow Variable",
"description": "A variable that stores data during flow execution. Variables can hold single values, collections, or SObject records.",
"properties": {
"name": {
"type": "string",
"description": "The API name of the variable"
},
"dataType": {
"type": "string",
"enum": ["String", "Number", "Currency", "Boolean", "Date", "DateTime", "Picklist", "Multipicklist", "SObject", "Apex"],
"description": "The data type of the variable"
},
"isCollection": {
"type": "boolean",
"description": "Whether this variable holds a collection (list) of values"
},
"isInput": {
"type": "boolean",
"description": "Whether this variable is available as an input parameter when the flow is invoked"
},
"isOutput": {
"type": "boolean",
"description": "Whether this variable is available as an output parameter after the flow completes"
},
"objectType": {
"type": [
"string",
"null"
],
"description": "For SObject variables, the API name of the SObject type"
},
"value": {
"$ref": "#/$defs/FlowElementValue",
"description": "The default value for this variable"
},
"description": {
"type": [
"string",
"null"
]
}
},
"required": ["name", "dataType"]
},
"FlowConstant": {
"type": "object",
"title": "Flow Constant",
"properties": {
"name": {
"type": "string"
},
"dataType": {
"type": "string"
},
"value": {
"$ref": "#/$defs/FlowElementValue"
},
"description": {
"type": [
"string",
"null"
]
}
}
},
"FlowFormula": {
"type": "object",
"title": "Flow Formula",
"description": "A formula expression evaluated at runtime. Uses the same formula syntax as Salesforce formula fields.",
"properties": {
"name": {
"type": "string"
},
"dataType": {
"type": "string"
},
"expression": {
"type": "string",
"description": "The formula expression (e.g., 'IF({!Amount} > 1000, \"High\", \"Low\")')"
},
"description": {
"type": [
"string",
"null"
]
}
}
},
"FlowDecision": {
"type": "object",
"title": "Flow Decision",
"description": "A decision element that evaluates conditions and branches to different paths. Similar to an if/else-if/else construct.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"defaultConnector": {
"$ref": "#/$defs/FlowConnector",
"description": "The path taken when no rule conditions are met (the 'else' path)"
},
"defaultConnectorLabel": {
"type": "string"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"conditionLogic": {
"type": "string",
"description": "How conditions are combined: 'and', 'or', or custom (e.g., '1 AND (2 OR 3)')"
},
"conditions": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowCondition"
}
},
"connector": {
"$ref": "#/$defs/FlowConnector"
}
}
}
}
}
},
"FlowAssignment": {
"type": "object",
"title": "Flow Assignment",
"description": "An assignment element that sets the value of one or more variables.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"assignmentItems": {
"type": "array",
"items": {
"type": "object",
"properties": {
"assignToReference": {
"type": "string",
"description": "The variable to assign a value to"
},
"operator": {
"type": "string",
"enum": ["Assign", "Add", "Subtract", "AddItem", "RemoveFirst", "RemoveAll", "RemoveAfterFirst", "RemoveUncommon", "AssignCount", "RemovePosition"],
"description": "The assignment operator"
},
"value": {
"$ref": "#/$defs/FlowElementValue"
}
}
}
},
"connector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowRecordCreate": {
"type": "object",
"title": "Flow Record Create",
"description": "An element that creates one or more Salesforce records.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"object": {
"type": "string",
"description": "The SObject type to create"
},
"inputAssignments": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowInputFieldAssignment"
}
},
"inputReference": {
"type": [
"string",
"null"
],
"description": "Reference to an SObject variable containing the record to create"
},
"assignRecordIdToReference": {
"type": [
"string",
"null"
],
"description": "Variable to store the ID of the newly created record"
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector",
"description": "Path taken when the create operation fails"
}
}
},
"FlowRecordUpdate": {
"type": "object",
"title": "Flow Record Update",
"description": "An element that updates Salesforce records matching specified criteria.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"object": {
"type": [
"string",
"null"
],
"description": "The SObject type to update (when using filter criteria)"
},
"inputAssignments": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowInputFieldAssignment"
}
},
"inputReference": {
"type": [
"string",
"null"
],
"description": "Reference to an SObject variable or collection containing records to update"
},
"filters": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordFilter"
},
"description": "Filter criteria to identify which records to update"
},
"filterLogic": {
"type": [
"string",
"null"
]
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowRecordDelete": {
"type": "object",
"title": "Flow Record Delete",
"description": "An element that deletes Salesforce records matching specified criteria.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"object": {
"type": [
"string",
"null"
]
},
"inputReference": {
"type": [
"string",
"null"
]
},
"filters": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordFilter"
}
},
"filterLogic": {
"type": [
"string",
"null"
]
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowRecordLookup": {
"type": "object",
"title": "Flow Record Lookup",
"description": "An element that queries Salesforce records and stores the results in variables.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"object": {
"type": "string",
"description": "The SObject type to query"
},
"filters": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowRecordFilter"
}
},
"filterLogic": {
"type": [
"string",
"null"
]
},
"getFirstRecordOnly": {
"type": "boolean",
"description": "If true, only the first matching record is returned"
},
"storeOutputAutomatically": {
"type": "boolean",
"description": "If true, results are automatically stored in auto-generated variables"
},
"outputAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"assignToReference": {
"type": "string"
}
}
}
},
"outputReference": {
"type": [
"string",
"null"
],
"description": "Variable to store the query results"
},
"sortField": {
"type": [
"string",
"null"
]
},
"sortOrder": {
"type": [
"string",
"null"
],
"enum": ["Asc", "Desc", null]
},
"queriedFields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to retrieve from matching records"
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowLoop": {
"type": "object",
"title": "Flow Loop",
"description": "A loop element that iterates over a collection variable, executing contained elements for each item.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"collectionReference": {
"type": "string",
"description": "The collection variable to iterate over"
},
"iterationOrder": {
"type": [
"string",
"null"
],
"enum": ["Asc", "Desc", null]
},
"nextValueConnector": {
"$ref": "#/$defs/FlowConnector",
"description": "Path to the first element inside the loop"
},
"noMoreValuesConnector": {
"$ref": "#/$defs/FlowConnector",
"description": "Path taken after all items have been iterated"
}
}
},
"FlowScreen": {
"type": "object",
"title": "Flow Screen",
"description": "A screen element that presents a UI to the user in a Screen Flow.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"showHeader": {
"type": "boolean"
},
"showFooter": {
"type": "boolean"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"fieldType": {
"type": "string",
"description": "The type of screen component (e.g., InputField, DisplayText, RadioButtons, ComponentInstance)"
},
"dataType": {
"type": [
"string",
"null"
]
},
"isRequired": {
"type": "boolean"
},
"defaultValue": {
"$ref": "#/$defs/FlowElementValue"
}
}
}
},
"connector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowActionCall": {
"type": "object",
"title": "Flow Action Call",
"description": "An element that invokes an action such as an Apex method, email alert, quick action, or external service.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"actionName": {
"type": "string",
"description": "The API name of the action to invoke"
},
"actionType": {
"type": "string",
"description": "The type of action (e.g., apex, emailAlert, quickAction, flow, externalService, submit, chatterPost)"
},
"inputParameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"$ref": "#/$defs/FlowElementValue"
}
}
}
},
"outputParameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"assignToReference": {
"type": "string"
}
}
}
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowSubflow": {
"type": "object",
"title": "Flow Subflow",
"description": "An element that invokes another flow as a subflow.",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"flowName": {
"type": "string",
"description": "The developer name of the flow to invoke"
},
"inputAssignments": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowInputFieldAssignment"
}
},
"outputAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"assignToReference": {
"type": "string"
}
}
}
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"faultConnector": {
"$ref": "#/$defs/FlowConnector"
}
}
},
"FlowWait": {
"type": "object",
"title": "Flow Wait",
"description": "A wait element that pauses flow execution until one or more conditions are met (time-based or platform event).",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"defaultConnector": {
"$ref": "#/$defs/FlowConnector"
},
"defaultConnectorLabel": {
"type": "string"
},
"waitEvents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string"
},
"eventType": {
"type": "string",
"description": "The type of wait condition (e.g., AlarmEvent, PlatformEventMessage)"
},
"connector": {
"$ref": "#/$defs/FlowConnector"
},
"conditionLogic": {
"type": [
"string",
"null"
]
},
"conditions": {
"type": "array",
"items": {
"$ref": "#/$defs/FlowCondition"
}
},
"inputParameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"$ref": "#/$defs/FlowElementValue"
}
}
}
},
"outputParameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"assignToReference": {
"type": "string"
}
}
}
}
}
}
}
}
},
"FlowConnector": {
"type": [
"object",
"null"
],
"title": "Flow Connector",
"description": "A connector that links one flow element to the next, defining the execution path.",
"properties": {
"targetReference": {
"type": "string",
"description": "The API name of the target element this connector leads to"
}
}
},
"FlowCondition": {
"type": "object",
"title": "Flow Condition",
"description": "A single condition used in decisions, filters, and wait events.",
"properties": {
"leftValueReference": {
"type": "string",
"description": "Reference to the left-hand value (e.g., a variable or field reference)"
},
"operator": {
"type": "string",
"enum": ["EqualTo", "NotEqualTo", "GreaterThan", "GreaterThanOrEqualTo", "LessThan", "LessThanOrEqualTo", "Contains", "StartsWith", "EndsWith", "IsNull", "IsChanged", "WasSet"],
"description": "The comparison operator"
},
"rightValue": {
"$ref":
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/salesforce-automation/refs/heads/main/json-schema/salesforce-automation-flow-schema.json