Creates a new workflow automation. Pass active: true to activate the workflow as part of the create call.
curl --request POST \
--url https://api.autosend.com/v1/automations \
--header 'Authorization: Bearer AS_your-project-api-key' \
--header 'Content-Type: application/json' \
--data '{
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard that routes to a merged email if plan changes mid-flight. Other plans get a single welcome email.",
"active": true,
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"exitCriteria": { "type": "workflow_complete" },
"tags": ["onboarding", "branch-guard"],
"steps": [
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_intro",
"nextStepId": "step_email_intro"
},
{
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - intro email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"checkExitCriteria": true,
"stepId": "step_email_intro",
"nextStepId": "step_branch"
},
{
"stepId": "step_branch",
"type": "branch",
"branches": [
{
"branchId": "br_pro",
"label": "Pro plan",
"triggerType": "contact_property_matches_with",
"appliesTo": "all_branch_steps",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "equals", "value": "pro", "fieldType": "string" }
]
},
"nextStepId": "step_wait_pro",
"mergeStepId": "step_wait_merged"
},
{
"branchId": "br_other",
"label": "Catch-all",
"triggerType": "contact_property_matches_with",
"appliesTo": "branch_entry",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
},
"nextStepId": "step_wait_other"
}
]
},
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_pro",
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro"
},
{
"stepId": "step_email_pro",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro email",
"subject": "Welcome to Pro, {{firstName}}",
"previewText": "Your Pro perks are ready.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome to Pro, {{firstName}}!</h1><p>Your perks are ready.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_wait_pro_followup"
},
{
"stepId": "step_wait_pro_followup",
"type": "wait",
"delay": { "value": 1, "unit": "minutes" },
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro_followup"
},
{
"stepId": "step_email_pro_followup",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro follow-up",
"subject": "A quick follow-up on your Pro plan",
"previewText": "Tips to get the most out of Pro.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Hi {{firstName}}</h1><p>Here are a few Pro tips.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro"
},
{
"stepId": "step_wait_other",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other",
"nextStepId": "step_email_other"
},
{
"stepId": "step_email_other",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - standard email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other"
},
{
"stepId": "step_wait_merged",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"nextStepId": "step_email_merged"
},
{
"stepId": "step_email_merged",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - merged email",
"subject": "Thanks for sticking with us, {{firstName}}",
"previewText": "A wrap-up note from the team.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Thanks {{firstName}}!</h1><p>Here is your wrap-up.</p></body></html>"
}
}
]
}'
{
"success": true,
"data": {
"id": "60d5ec49f1b2c72d9c8b9abc",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"organizationId": "60d5ec49f1b2c72d9c8b2222",
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard. Other plans get a single welcome email.",
"status": "active",
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"exitCriteria": { "type": "workflow_complete" },
"steps": [
{ "stepId": "step_wait_intro", "type": "wait", "delay": { "value": 2, "unit": "mins" }, "nextStepId": "step_email_intro" },
{ "stepId": "step_email_intro", "type": "email", "nextStepId": "step_branch" },
{ "stepId": "step_branch", "type": "branch", "branches": [
{ "branchId": "br_pro", "nextStepId": "step_wait_pro", "mergeStepId": "step_wait_merged" },
{ "branchId": "br_other", "nextStepId": "step_wait_other" }
]},
{ "stepId": "step_wait_pro", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro" },
{ "stepId": "step_email_pro", "type": "email", "parentBranchId": "br_pro", "nextStepId": "step_wait_pro_followup" },
{ "stepId": "step_wait_pro_followup", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro_followup" },
{ "stepId": "step_email_pro_followup", "type": "email", "parentBranchId": "br_pro" },
{ "stepId": "step_wait_other", "type": "wait", "parentBranchId": "br_other", "nextStepId": "step_email_other" },
{ "stepId": "step_email_other", "type": "email", "parentBranchId": "br_other" },
{ "stepId": "step_wait_merged", "type": "wait", "nextStepId": "step_email_merged" },
{ "stepId": "step_email_merged", "type": "email" }
],
"tags": ["onboarding", "branch-guard"],
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-08T10:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
}
Documentation Index
Fetch the complete documentation index at: https://docs.autosend.com/llms.txt
Use this file to discover all available pages before exploring further.
draft status — pass active: true to validate and activate it as part of the create call.steps in order. Without branch steps, steps must strictly alternate wait → email, starting with wait and ending with email. Workflows containing branch steps use a more flexible graph (each step references the next via nextStepId).curl --request POST \
--url https://api.autosend.com/v1/automations \
--header 'Authorization: Bearer AS_your-project-api-key' \
--header 'Content-Type: application/json' \
--data '{
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard that routes to a merged email if plan changes mid-flight. Other plans get a single welcome email.",
"active": true,
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"exitCriteria": { "type": "workflow_complete" },
"tags": ["onboarding", "branch-guard"],
"steps": [
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_intro",
"nextStepId": "step_email_intro"
},
{
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - intro email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"checkExitCriteria": true,
"stepId": "step_email_intro",
"nextStepId": "step_branch"
},
{
"stepId": "step_branch",
"type": "branch",
"branches": [
{
"branchId": "br_pro",
"label": "Pro plan",
"triggerType": "contact_property_matches_with",
"appliesTo": "all_branch_steps",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "equals", "value": "pro", "fieldType": "string" }
]
},
"nextStepId": "step_wait_pro",
"mergeStepId": "step_wait_merged"
},
{
"branchId": "br_other",
"label": "Catch-all",
"triggerType": "contact_property_matches_with",
"appliesTo": "branch_entry",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
},
"nextStepId": "step_wait_other"
}
]
},
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_pro",
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro"
},
{
"stepId": "step_email_pro",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro email",
"subject": "Welcome to Pro, {{firstName}}",
"previewText": "Your Pro perks are ready.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome to Pro, {{firstName}}!</h1><p>Your perks are ready.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_wait_pro_followup"
},
{
"stepId": "step_wait_pro_followup",
"type": "wait",
"delay": { "value": 1, "unit": "minutes" },
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro_followup"
},
{
"stepId": "step_email_pro_followup",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro follow-up",
"subject": "A quick follow-up on your Pro plan",
"previewText": "Tips to get the most out of Pro.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Hi {{firstName}}</h1><p>Here are a few Pro tips.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro"
},
{
"stepId": "step_wait_other",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other",
"nextStepId": "step_email_other"
},
{
"stepId": "step_email_other",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - standard email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other"
},
{
"stepId": "step_wait_merged",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"nextStepId": "step_email_merged"
},
{
"stepId": "step_email_merged",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - merged email",
"subject": "Thanks for sticking with us, {{firstName}}",
"previewText": "A wrap-up note from the team.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Thanks {{firstName}}!</h1><p>Here is your wrap-up.</p></body></html>"
}
}
]
}'
{
"success": true,
"data": {
"id": "60d5ec49f1b2c72d9c8b9abc",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"organizationId": "60d5ec49f1b2c72d9c8b2222",
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard. Other plans get a single welcome email.",
"status": "active",
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"exitCriteria": { "type": "workflow_complete" },
"steps": [
{ "stepId": "step_wait_intro", "type": "wait", "delay": { "value": 2, "unit": "mins" }, "nextStepId": "step_email_intro" },
{ "stepId": "step_email_intro", "type": "email", "nextStepId": "step_branch" },
{ "stepId": "step_branch", "type": "branch", "branches": [
{ "branchId": "br_pro", "nextStepId": "step_wait_pro", "mergeStepId": "step_wait_merged" },
{ "branchId": "br_other", "nextStepId": "step_wait_other" }
]},
{ "stepId": "step_wait_pro", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro" },
{ "stepId": "step_email_pro", "type": "email", "parentBranchId": "br_pro", "nextStepId": "step_wait_pro_followup" },
{ "stepId": "step_wait_pro_followup", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro_followup" },
{ "stepId": "step_email_pro_followup", "type": "email", "parentBranchId": "br_pro" },
{ "stepId": "step_wait_other", "type": "wait", "parentBranchId": "br_other", "nextStepId": "step_email_other" },
{ "stepId": "step_email_other", "type": "email", "parentBranchId": "br_other" },
{ "stepId": "step_wait_merged", "type": "wait", "nextStepId": "step_email_merged" },
{ "stepId": "step_email_merged", "type": "email" }
],
"tags": ["onboarding", "branch-guard"],
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-08T10:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
}
AS_<key>.255Example: "Welcome Series"1000Show entryCriteria attributes
contact_created, contact_added_to_list, contact_property_matches_with, contact_property_changes_from_to, or event_trigger. Defaults to contact_created.type is event_trigger. Name of the event that triggers the workflow.type. Use event.name and event.properties.* paths in event_trigger workflows; otherwise reference contact properties. {
"logicalOperator": "AND",
"groups": [
{
"field": "source",
"operator": "contains",
"value": "web",
"id": "filter_1"
}
]
}
Show exitCriteria attributes
workflow_complete (default), entry_criteria_no_longer_met.type. Linear workflows alternate wait and email; workflows containing a branch step form a graph where each step references the next via nextStepId.Show step attributes
wait, email, or branch.wait steps. delay.value is a non-negative integer; delay.unit is one of minutes, mins, hours, or days.email steps. Provide either templateId (existing template) or htmlTemplate (inline HTML, subject is required when using htmlTemplate). Optional fields: subject, previewText, senderEmail, senderName, senderReplyToEmail, senderReplyToName.branch steps. Each branch defines a triggerType (contact_property_matches_with or event_property), a filterCriteria tree, an appliesTo scope (branch_entry or all_branch_steps), a nextStepId that points to the first step on that branch, and an optional mergeStepId where the branch rejoins the main flow.branch). Steps inside a branch must also set parentBranchStepId and parentBranchId.true.branch step splits the workflow into multiple paths based on filterCriteria. Each branch points at its first step via nextStepId, and steps inside the branch reference back via parentBranchStepId and parentBranchId. Branches can rejoin the main flow at a shared mergeStepId.
{
"stepId": "step_branch",
"type": "branch",
"branches": [
{
"branchId": "br_pro",
"label": "Pro plan",
"triggerType": "contact_property_matches_with",
"appliesTo": "all_branch_steps",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{
"field": "customFields.plan",
"operator": "equals",
"value": "pro",
"fieldType": "string"
}
]
},
"nextStepId": "step_wait_pro",
"mergeStepId": "step_wait_merged"
},
{
"branchId": "br_other",
"label": "Catch-all",
"triggerType": "contact_property_matches_with",
"appliesTo": "branch_entry",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{
"field": "customFields.plan",
"operator": "is_not_empty",
"fieldType": "string"
}
]
},
"nextStepId": "step_wait_other"
}
]
},
{
"stepId": "step_wait_vip",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"parentBranchStepId": "step_branch",
"parentBranchId": "br_vip",
"nextStepId": "step_email_vip"
}
{
"stepId": "step_email_vip",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "68b7f9dfb6924068b8ecda65",
"templateName": "VIP thank you",
"subject": "A personal thank-you, {{firstName}}",
"previewText": "VIP perks inside.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Thanks {{firstName}}!</h1><p>Your VIP perks are on the way.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_vip"
}
email step you can pass templateId to reference an existing template instead of inlining htmlTemplate and subject.true, the workflow is validated and activated as part of the create call. When false or omitted, the workflow is created in draft status and must be activated separately.trueShow child attributes
draft, active, paused, or archived.stepId values.null if never activated.NAME_REQUIRED, INVALID_STEP_SEQUENCE, EMAIL_TEMPLATE_REQUIRED, BRANCH_BRANCHES_REQUIRED, EVENT_NAME_REQUIRED.{
"success": false,
"error": {
"message": "Steps must strictly alternate wait → email starting with wait and ending with email",
"code": "INVALID_STEP_SEQUENCE"
}
}
active: true is sent but the workflow is missing required fields for activation.{
"success": false,
"error": {
"message": "Cannot activate workflow. Please check all required fields are filled",
"code": "CANNOT_ACTIVATE_AUTOMATION"
}
}
curl --request POST \
--url https://api.autosend.com/v1/automations \
--header 'Authorization: Bearer AS_your-project-api-key' \
--header 'Content-Type: application/json' \
--data '{
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard that routes to a merged email if plan changes mid-flight. Other plans get a single welcome email.",
"active": true,
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"exitCriteria": { "type": "workflow_complete" },
"tags": ["onboarding", "branch-guard"],
"steps": [
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_intro",
"nextStepId": "step_email_intro"
},
{
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - intro email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"checkExitCriteria": true,
"stepId": "step_email_intro",
"nextStepId": "step_branch"
},
{
"stepId": "step_branch",
"type": "branch",
"branches": [
{
"branchId": "br_pro",
"label": "Pro plan",
"triggerType": "contact_property_matches_with",
"appliesTo": "all_branch_steps",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "equals", "value": "pro", "fieldType": "string" }
]
},
"nextStepId": "step_wait_pro",
"mergeStepId": "step_wait_merged"
},
{
"branchId": "br_other",
"label": "Catch-all",
"triggerType": "contact_property_matches_with",
"appliesTo": "branch_entry",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
},
"nextStepId": "step_wait_other"
}
]
},
{
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"stepId": "step_wait_pro",
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro"
},
{
"stepId": "step_email_pro",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro email",
"subject": "Welcome to Pro, {{firstName}}",
"previewText": "Your Pro perks are ready.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome to Pro, {{firstName}}!</h1><p>Your perks are ready.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_wait_pro_followup"
},
{
"stepId": "step_wait_pro_followup",
"type": "wait",
"delay": { "value": 1, "unit": "minutes" },
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro",
"nextStepId": "step_email_pro_followup"
},
{
"stepId": "step_email_pro_followup",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - pro follow-up",
"subject": "A quick follow-up on your Pro plan",
"previewText": "Tips to get the most out of Pro.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Hi {{firstName}}</h1><p>Here are a few Pro tips.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_pro"
},
{
"stepId": "step_wait_other",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other",
"nextStepId": "step_email_other"
},
{
"stepId": "step_email_other",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - standard email",
"subject": "Welcome to Example!",
"previewText": "Glad to have you with us.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Welcome {{firstName}}!</h1><p>Thanks for joining.</p></body></html>"
},
"parentBranchStepId": "step_branch",
"parentBranchId": "br_other"
},
{
"stepId": "step_wait_merged",
"type": "wait",
"delay": { "value": 2, "unit": "mins" },
"checkExitCriteria": true,
"nextStepId": "step_email_merged"
},
{
"stepId": "step_email_merged",
"type": "email",
"email": {
"senderEmail": "[email protected]",
"senderName": "Example Team",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"templateName": "Welcome - merged email",
"subject": "Thanks for sticking with us, {{firstName}}",
"previewText": "A wrap-up note from the team.",
"htmlTemplate": "<!DOCTYPE html><html><body><h1>Thanks {{firstName}}!</h1><p>Here is your wrap-up.</p></body></html>"
}
}
]
}'
{
"success": true,
"data": {
"id": "60d5ec49f1b2c72d9c8b9abc",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"organizationId": "60d5ec49f1b2c72d9c8b2222",
"name": "Branch with guard - pro vs other",
"description": "Pro plan gets a 2-email sequence with a guard. Other plans get a single welcome email.",
"status": "active",
"entryCriteria": {
"type": "contact_property_matches_with",
"filterCriteria": {
"logicalOperator": "AND",
"conditions": [
{ "field": "customFields.plan", "operator": "is_not_empty", "fieldType": "string" }
]
}
},
"exitCriteria": { "type": "workflow_complete" },
"steps": [
{ "stepId": "step_wait_intro", "type": "wait", "delay": { "value": 2, "unit": "mins" }, "nextStepId": "step_email_intro" },
{ "stepId": "step_email_intro", "type": "email", "nextStepId": "step_branch" },
{ "stepId": "step_branch", "type": "branch", "branches": [
{ "branchId": "br_pro", "nextStepId": "step_wait_pro", "mergeStepId": "step_wait_merged" },
{ "branchId": "br_other", "nextStepId": "step_wait_other" }
]},
{ "stepId": "step_wait_pro", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro" },
{ "stepId": "step_email_pro", "type": "email", "parentBranchId": "br_pro", "nextStepId": "step_wait_pro_followup" },
{ "stepId": "step_wait_pro_followup", "type": "wait", "parentBranchId": "br_pro", "nextStepId": "step_email_pro_followup" },
{ "stepId": "step_email_pro_followup", "type": "email", "parentBranchId": "br_pro" },
{ "stepId": "step_wait_other", "type": "wait", "parentBranchId": "br_other", "nextStepId": "step_email_other" },
{ "stepId": "step_email_other", "type": "email", "parentBranchId": "br_other" },
{ "stepId": "step_wait_merged", "type": "wait", "nextStepId": "step_email_merged" },
{ "stepId": "step_email_merged", "type": "email" }
],
"tags": ["onboarding", "branch-guard"],
"unsubscribeGroupId": "60d5ec49f1b2c72d9c8b4444",
"trackingOpen": true,
"trackingClick": true,
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-08T10:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
}