{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/FlowDefinition", "title": "FlowDefinition", "type": "object", "properties": { "triggers": { "description": "Corresponds to the object which triggers the flow. Only one trigger is supported.", "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ListTrigger" }, { "$ref": "#/components/schemas/SegmentTrigger" }, { "$ref": "#/components/schemas/MetricTrigger" }, { "$ref": "#/components/schemas/ProfilePropertyDateTrigger" }, { "$ref": "#/components/schemas/PriceDropTrigger" }, { "$ref": "#/components/schemas/LowInventoryTrigger" } ] } }, "profile_filter": { "description": "Filters for users entering the flow. These filters are used on every action in the flow.", "type": "object", "nullable": true, "properties": { "condition_groups": { "type": "array", "items": { "type": "object", "properties": { "conditions": { "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ProfilePropertyCondition" }, { "$ref": "#/components/schemas/ProfileHasGroupMembershipCondition" }, { "$ref": "#/components/schemas/ProfileNoGroupMembershipCondition" }, { "$ref": "#/components/schemas/ProfileRegionCondition" }, { "$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition" }, { "$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition" }, { "$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition" }, { "$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition" }, { "$ref": "#/components/schemas/ProfileMarketingConsentCondition" }, { "$ref": "#/components/schemas/FlowsProfileMetricCondition" }, { "$ref": "#/components/schemas/ProfileRandomSampleCondition" }, { "$ref": "#/components/schemas/ProfileHasCustomObjectCondition" }, { "$ref": "#/components/schemas/ProfilePermissionsCondition" }, { "$ref": "#/components/schemas/ProfileNotInFlowCondition" } ] } } }, "required": [ "conditions" ] } } }, "required": [ "condition_groups" ] }, "actions": { "description": "A list of actions that make up the flow. Actions are linked to each other by their ids.", "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ActionOutputSplitAction" }, { "$ref": "#/components/schemas/BackInStockDelayAction" }, { "$ref": "#/components/schemas/ConditionalBranchAction" }, { "$ref": "#/components/schemas/ContentExperimentAction" }, { "$ref": "#/components/schemas/SendEmailAction" }, { "$ref": "#/components/schemas/SendPushNotificationAction" }, { "$ref": "#/components/schemas/SendSmsAction" }, { "$ref": "#/components/schemas/SendWebhookAction" }, { "$ref": "#/components/schemas/SendInternalAlertAction" }, { "$ref": "#/components/schemas/SendWhatsAppAction" }, { "$ref": "#/components/schemas/TimeDelayAction" }, { "$ref": "#/components/schemas/TriggerBranchAction" }, { "$ref": "#/components/schemas/UpdateProfileAction" }, { "$ref": "#/components/schemas/TargetDateAction" }, { "$ref": "#/components/schemas/CountdownDelayAction" }, { "$ref": "#/components/schemas/AbTestAction" }, { "$ref": "#/components/schemas/InternalServiceAction" }, { "$ref": "#/components/schemas/CodeAction" }, { "$ref": "#/components/schemas/MultiBranchSplitAction" }, { "$ref": "#/components/schemas/ListUpdateAction" } ] } }, "entry_action_id": { "description": "The ID of the action that is the entry point of the flow.", "type": "string", "example": "123", "nullable": true }, "reentry_criteria": { "description": "Controls when a customer can re-enter the flow. If unit is 'alltime', a duration of 1 means no re-entry, while a duration of 0 means re-entry is allowed.", "$ref": "#/components/schemas/ReentryCriteria", "nullable": true } }, "required": [ "triggers", "actions", "entry_action_id" ] }