Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tented Help Center","colors":{"primary":"#5A855B","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/tented/ROcYOxFUIgiTHi6y/logo/tented-logo-dark-text.svg?fit=max\u0026auto=format\u0026n=ROcYOxFUIgiTHi6y\u0026q=85\u0026s=524f92cf5a25aeddb0118ecf3d7d8175","dark":"https://mintcdn.com/tented/ROcYOxFUIgiTHi6y/logo/tented-logo-white-text.svg?fit=max\u0026auto=format\u0026n=ROcYOxFUIgiTHi6y\u0026q=85\u0026s=73fbcea2001239f6ad22a00acbaaa41e"},"favicon":"https://mintcdn.com/tented/ROcYOxFUIgiTHi6y/favicon.svg?fit=max\u0026auto=format\u0026n=ROcYOxFUIgiTHi6y\u0026q=85\u0026s=fcdbfd50c6458d9fe901a1b92e3a0ac1","navbar":{"links":[{"href":"mailto:support@tented.ai","label":"Support"}],"primary":{"type":"button","label":"Go to Tented","href":"https://app.tented.ai"}},"footer":{"socials":{"x":"https://x.com/tentedhq","linkedin":"https://www.linkedin.com/company/tented-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tented","hasAudioNarration":false,"actualSubdomain":"tented","customDomains":["docs.tented.ai"],"gitSource":{"type":"github","owner":"tentedapp","repo":"tented-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6aebb61fbb7351feda32271b","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":141},{"language":"default","tag":"Guides","count":54},{"language":"default","tag":"API Docs","count":25},{"language":"default","tag":"Tents","count":23},{"language":"default","tag":"Email Templates","count":21},{"language":"default","tag":"Emails","count":21},{"language":"default","tag":"Triggered Flows","count":21},{"language":"default","tag":"Tent Templates","count":17},{"language":"default","tag":"Working with Tents","count":16},{"language":"default","tag":"Email Blasts","count":14}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/triggered-flows/set-a-step’s-email","slug":"/api-reference/triggered-flows/set-a-step’s-email","pageMetadata":{"title":"Set a step’s email","description":"Attach the email for a `send_email` step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with `400 campaign_flow_step_type_invalid` on non-email steps.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-flows/{flowId}/steps/{stepId}/email","href":"/api-reference/triggered-flows/set-a-step’s-email","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Attach the email for a \", _jsx(_components.code, {\n children: \"send_email\"\n }), \" step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with \", _jsx(_components.code, {\n children: \"400 campaign_flow_step_type_invalid\"\n }), \" on non-email steps.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Set a step’s email","description":"Attach the email for a `send_email` step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with `400 campaign_flow_step_type_invalid` on non-email steps.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-flows/{flowId}/steps/{stepId}/email","href":"/api-reference/triggered-flows/set-a-step’s-email","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Triggered Flows"],"operationId":"set-flow-step-email","summary":"Set a step’s email","description":"Attach the email for a `send_email` step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with `400 campaign_flow_step_type_invalid` on non-email steps.","parameters":["77238abe-5b36-4293-a91d-55e0e057be0e","ed5881a3-e4c2-4d7e-83cc-7eb1fcd1fdcf"],"requestBody":"b85e8864-5552-412f-ad9d-5f3931986da2","responses":{"200":"b61a8525-e6b2-40a9-b47c-6bceafeb4bbb","400":"e686a4ba-af4c-4319-b272-1573b096dfa4","401":"763037d2-a57c-4e08-942a-1828ce707318","404":"2efb79dc-1e9b-4f83-91f8-2e0d8b37e16a","409":"ed5bce51-5a3c-47f8-9b25-dc7fd82e6893"},"method":"put","type":"path","servers":["46d863a6-e43f-44d9-961b-cd303cc6f7c0"],"security":["a69c8ab2-91e8-4370-bf83-42244b8a98bb"],"path":"/v1/email-flows/{flowId}/steps/{stepId}/email","baseUrlOptions":["https://api.tented.ai"],"title":"Set a step’s email","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"77238abe-5b36-4293-a91d-55e0e057be0e":{"name":"flowId","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Flow ID.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Flow ID."},"ed5881a3-e4c2-4d7e-83cc-7eb1fcd1fdcf":{"name":"stepId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Step ID.","uniqueKey":"","typeLabel":"string"},"description":"Step ID."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Attach an existing email.","required":["source","email_id"],"properties":{"source":{"type":"string","enum":["existing"],"description":"Use an existing email.","isRequired":true,"uniqueKey":"oneOf.0.source","typeLabel":"enum\u003cstring>"},"email_id":{"type":"string","format":"uuid","description":"Approved or draft email in the workspace.","isRequired":true,"uniqueKey":"oneOf.0.email_id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Create a new email inline. Omit both `template_id` and `html` to start from a blank branded scaffold. Inline emails start as drafts and must be approved via `POST /v1/emails/{emailId}/approve`.","required":["source"],"properties":{"source":{"type":"string","enum":["inline"],"description":"Create an email inline.","isRequired":true,"uniqueKey":"oneOf.1.source","typeLabel":"enum\u003cstring>"},"name":{"type":"string","minLength":1,"maxLength":200,"description":"Email name.","uniqueKey":"oneOf.1.name","typeLabel":"string"},"subject":{"type":"string","minLength":1,"maxLength":998,"description":"Subject line. Must be set before sending.","uniqueKey":"oneOf.1.subject","typeLabel":"string"},"template_id":{"type":"string","format":"uuid","description":"Seed content and sender defaults from an approved email template. Mutually exclusive with `html`.","uniqueKey":"oneOf.1.template_id","typeLabel":"string\u003cuuid>"},"html":{"type":"string","description":"Seed from your own HTML (up to 2 MB). Mutually exclusive with `template_id`.","uniqueKey":"oneOf.1.html","typeLabel":"string"},"preview_text":{"type":"string","maxLength":200,"description":"Preheader text.","uniqueKey":"oneOf.1.preview_text","typeLabel":"string"},"from_name":{"type":"string","maxLength":120,"description":"Sender display name. Must be set before sending.","uniqueKey":"oneOf.1.from_name","typeLabel":"string"},"from_address":{"type":"string","format":"email","description":"Sender address. The domain must be verified before sending.","uniqueKey":"oneOf.1.from_address","typeLabel":"string\u003cemail>"},"reply_to_email":{"type":"string","format":"email","description":"Reply-to address. Must be set before sending.","uniqueKey":"oneOf.1.reply_to_email","typeLabel":"string\u003cemail>"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"source":"existing","email_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b61a8525-e6b2-40a9-b47c-6bceafeb4bbb":{"description":"Email attached.","content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","format":"uuid","description":"Flow ID.","isRequired":true,"uniqueKey":"flow_id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","description":"Always `triggered_flow`.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"name":{"type":"string","description":"Flow name.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"status":{"type":"string","enum":["draft","active","paused","archived"],"description":"Lifecycle state. Structure is editable only while `draft` or `paused`.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","description":"Description.","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description.","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"triggers":{"type":"array","items":{"oneOf":[{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type","list_id"],"properties":{"type":{"type":"string","enum":["added_to_static_list"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"list_id":{"type":"string","format":"uuid","description":"Static list to watch.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.list_id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"triggers.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type","list_id"],"properties":{"type":{"type":"string","enum":["removed_from_static_list"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"list_id":{"type":"string","format":"uuid","description":"Static list to watch.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.list_id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"triggers.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type"],"properties":{"type":{"type":"string","enum":["contact_created"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"triggers.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type","field"],"properties":{"type":{"type":"string","enum":["contact_updated"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Contact field to watch — camelCase standard key (e.g. `leadStatus`) or a custom field API name.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.field","typeLabel":"string"},"operator":{"type":"string","description":"Optional filter on the new value; `changed` fires on any change.","uniqueKey":"triggers.items.[INDEX].oneOf.3.operator","typeLabel":"string"},"value":{"description":"Value to compare against, when `operator` takes one.","uniqueKey":"triggers.items.[INDEX].oneOf.3.value","typeLabel":"any"}},"uniqueKey":"triggers.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type","field","mode"],"properties":{"type":{"type":"string","enum":["date_based"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"`createdAt` or an active custom date field.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.field","typeLabel":"string"},"mode":{"type":"string","enum":["on_date","before_date","after_date"],"description":"When to fire relative to the date.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.mode","typeLabel":"enum\u003cstring>"},"days_before":{"type":"integer","minimum":0,"description":"Days before the date (with `before_date`).","uniqueKey":"triggers.items.[INDEX].oneOf.4.days_before","typeLabel":"integer"},"days_after":{"type":"integer","minimum":0,"description":"Days after the date (with `after_date`).","uniqueKey":"triggers.items.[INDEX].oneOf.4.days_after","typeLabel":"integer"},"include_anniversaries":{"type":"boolean","description":"Fire every year on the anniversary.","uniqueKey":"triggers.items.[INDEX].oneOf.4.include_anniversaries","typeLabel":"boolean"},"trigger_time":{"type":"string","default":"09:00","description":"Time of day, `HH:00` or `HH:30`.","uniqueKey":"triggers.items.[INDEX].oneOf.4.trigger_time","typeLabel":"string"},"timezone":{"type":"string","default":"UTC","description":"IANA timezone.","uniqueKey":"triggers.items.[INDEX].oneOf.4.timezone","typeLabel":"string"}},"uniqueKey":"triggers.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"A flow entry trigger. A flow may define up to 25 triggers. Triggers fire on new events only — activating a flow never retroactively enrolls contacts.","required":["type","tent_id","form_id"],"properties":{"type":{"type":"string","enum":["form_submitted"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"tent_id":{"type":"string","format":"uuid","description":"Tent containing the form.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.tent_id","typeLabel":"string\u003cuuid>"},"form_id":{"type":"string","maxLength":200,"description":"Form identifier within the tent.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.form_id","typeLabel":"string"}},"uniqueKey":"triggers.items.[INDEX].oneOf.5","typeLabel":"object"}],"uniqueKey":"triggers.items.[INDEX]","typeLabel":"object"},"description":"Entry triggers.","uniqueKey":"triggers","typeLabel":"object[]"},"steps":{"type":"array","items":{"oneOf":[{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["send_email"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.0.label","typeLabel":"string"},"email_id":{"type":"string","format":"uuid","description":"Email to send. Must be approved before the flow can be activated.","uniqueKey":"steps.items.[INDEX].oneOf.0.email_id","typeLabel":"string\u003cuuid>"},"operational":{"type":"boolean","description":"Send as operational/transactional (skips unsubscribe suppression and footer).","uniqueKey":"steps.items.[INDEX].oneOf.0.operational","typeLabel":"boolean"},"email_source":{"type":"string","enum":["existing","inline","flow_step"],"description":"Where the email comes from: `existing` (default; `email_id` references an approved email), `inline` (an email created for this step), or `flow_step` (send the email a `create_email` step created for the member; set `create_email_step_id` instead of `email_id`).","uniqueKey":"steps.items.[INDEX].oneOf.0.email_source","typeLabel":"enum\u003cstring>"},"create_email_step_id":{"type":"string","description":"With `email_source: flow_step`: the `step_id` of the `create_email` step whose per-member email this step sends.","uniqueKey":"steps.items.[INDEX].oneOf.0.create_email_step_id","typeLabel":"string"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.0.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["wait"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.1.label","typeLabel":"string"},"duration_amount":{"type":"integer","description":"Wait length (with `duration_unit`).","uniqueKey":"steps.items.[INDEX].oneOf.1.duration_amount","typeLabel":"integer"},"duration_unit":{"type":"string","enum":["minutes","hours","days","weeks"],"description":"Wait unit.","uniqueKey":"steps.items.[INDEX].oneOf.1.duration_unit","typeLabel":"enum\u003cstring>"},"until_date_field":{"type":"string","description":"Wait until the date stored in this contact field.","uniqueKey":"steps.items.[INDEX].oneOf.1.until_date_field","typeLabel":"string"},"condition":{"oneOf":[{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["conditions"],"properties":{"conditions":{"type":"array","items":{"$circularRef":"9126c944-a0e2-4673-8656-0b35cdbabec9"},"description":"Child nodes. Groups nest up to 5 levels; a tree may contain at most 100 nodes.","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.0.conditions","typeLabel":"array"},"kind":{"type":"string","enum":["group"],"description":"Set to `group` (default when `conditions` is present).","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"operator":{"type":"string","enum":["and","or"],"default":"and","description":"How child conditions combine.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.0.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.0","typeLabel":"object"},{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["operator"],"properties":{"operator":{"type":"string","description":"Comparison operator. Strings: `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`. Numbers/dates: `equals`, `not_equals`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`. Booleans: `is_true`, `is_false`. Any: `is_empty`, `is_not_empty`. Membership: `is_member`, `is_not_member`. Activity: `has_activity`, `has_no_activity`. Shorthand aliases (`eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `member_of`) are accepted.","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.operator","typeLabel":"string"},"kind":{"type":"string","enum":["condition"],"description":"Set to `condition` (default when `operator` is present without `conditions`).","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["contact","custom_field","activity","list_membership","email_step"],"default":"contact","description":"What the condition tests.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.source","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Standard contact field in camelCase (e.g. `leadStatus`, `tentedScore`, `createdAt`). Used with `source: contact`.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.field","typeLabel":"string"},"fieldDefinitionId":{"type":"string","format":"uuid","description":"Active custom-field definition ID. Used with `source: custom_field`.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.fieldDefinitionId","typeLabel":"string\u003cuuid>"},"activityType":{"type":"string","description":"Activity type (e.g. `form_submission`). Used with `source: activity`.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.activityType","typeLabel":"string"},"listId":{"type":"string","format":"uuid","description":"Static list ID. Used with `source: list_membership`.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.listId","typeLabel":"string\u003cuuid>"},"nodeId":{"type":"string","description":"`step_id` of an earlier `send_email` step. Used with `source: email_step` (flows only).","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.nodeId","typeLabel":"string"},"metric":{"type":"string","enum":["sent","delivered","opened","clicked","bounced","unsubscribed"],"description":"Email engagement metric. Used with `source: email_step`.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.metric","typeLabel":"enum\u003cstring>"},"value":{"description":"Comparison value, when the operator takes one.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.value","typeLabel":"any"},"timeWindow":{"type":"object","properties":{"amount":{"type":"integer","minimum":1,"maximum":1000,"description":"Window size.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.timeWindow.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["hour","day","week","month","year"],"description":"Window unit.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.timeWindow.unit","typeLabel":"enum\u003cstring>"}},"description":"Optional look-back window for activity conditions.","uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1.timeWindow","typeLabel":"object"}},"uniqueKey":"steps.items.[INDEX].oneOf.1.condition.oneOf.1","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX].oneOf.1.condition","typeLabel":"object"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.1.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["update_contact"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.2.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.2.label","typeLabel":"string"},"updates":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Contact field or custom field API name.","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.2.updates.items.[INDEX].field","typeLabel":"string"},"value":{"description":"New value.","uniqueKey":"steps.items.[INDEX].oneOf.2.updates.items.[INDEX].value","typeLabel":"any"},"write_mode":{"type":"string","enum":["overwrite","skip_if_filled"],"default":"overwrite","description":"Whether to overwrite existing values.","uniqueKey":"steps.items.[INDEX].oneOf.2.updates.items.[INDEX].write_mode","typeLabel":"enum\u003cstring>"}},"required":["field"],"uniqueKey":"steps.items.[INDEX].oneOf.2.updates.items.[INDEX]","typeLabel":"object"},"description":"Field updates to apply.","uniqueKey":"steps.items.[INDEX].oneOf.2.updates","typeLabel":"object[]"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.2.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["add_to_list"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.3.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.3.label","typeLabel":"string"},"list_id":{"type":"string","format":"uuid","description":"Static list to add the contact to.","uniqueKey":"steps.items.[INDEX].oneOf.3.list_id","typeLabel":"string\u003cuuid>"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.3.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["remove_from_list"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.4.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.4.label","typeLabel":"string"},"list_id":{"type":"string","format":"uuid","description":"Static list to remove the contact from.","uniqueKey":"steps.items.[INDEX].oneOf.4.list_id","typeLabel":"string\u003cuuid>"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.4.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["condition_check"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.5.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.5.label","typeLabel":"string"},"condition":{"oneOf":[{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["conditions"],"properties":{"conditions":{"type":"array","items":{"$circularRef":"9126c944-a0e2-4673-8656-0b35cdbabec9"},"description":"Child nodes. Groups nest up to 5 levels; a tree may contain at most 100 nodes.","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.0.conditions","typeLabel":"array"},"kind":{"type":"string","enum":["group"],"description":"Set to `group` (default when `conditions` is present).","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"operator":{"type":"string","enum":["and","or"],"default":"and","description":"How child conditions combine.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.0.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.0","typeLabel":"object"},{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["operator"],"properties":{"operator":{"type":"string","description":"Comparison operator. Strings: `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`. Numbers/dates: `equals`, `not_equals`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`. Booleans: `is_true`, `is_false`. Any: `is_empty`, `is_not_empty`. Membership: `is_member`, `is_not_member`. Activity: `has_activity`, `has_no_activity`. Shorthand aliases (`eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `member_of`) are accepted.","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.operator","typeLabel":"string"},"kind":{"type":"string","enum":["condition"],"description":"Set to `condition` (default when `operator` is present without `conditions`).","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["contact","custom_field","activity","list_membership","email_step"],"default":"contact","description":"What the condition tests.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.source","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Standard contact field in camelCase (e.g. `leadStatus`, `tentedScore`, `createdAt`). Used with `source: contact`.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.field","typeLabel":"string"},"fieldDefinitionId":{"type":"string","format":"uuid","description":"Active custom-field definition ID. Used with `source: custom_field`.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.fieldDefinitionId","typeLabel":"string\u003cuuid>"},"activityType":{"type":"string","description":"Activity type (e.g. `form_submission`). Used with `source: activity`.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.activityType","typeLabel":"string"},"listId":{"type":"string","format":"uuid","description":"Static list ID. Used with `source: list_membership`.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.listId","typeLabel":"string\u003cuuid>"},"nodeId":{"type":"string","description":"`step_id` of an earlier `send_email` step. Used with `source: email_step` (flows only).","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.nodeId","typeLabel":"string"},"metric":{"type":"string","enum":["sent","delivered","opened","clicked","bounced","unsubscribed"],"description":"Email engagement metric. Used with `source: email_step`.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.metric","typeLabel":"enum\u003cstring>"},"value":{"description":"Comparison value, when the operator takes one.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.value","typeLabel":"any"},"timeWindow":{"type":"object","properties":{"amount":{"type":"integer","minimum":1,"maximum":1000,"description":"Window size.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.timeWindow.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["hour","day","week","month","year"],"description":"Window unit.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.timeWindow.unit","typeLabel":"enum\u003cstring>"}},"description":"Optional look-back window for activity conditions.","uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1.timeWindow","typeLabel":"object"}},"uniqueKey":"steps.items.[INDEX].oneOf.5.condition.oneOf.1","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX].oneOf.5.condition","typeLabel":"object"},"true_step_id":{"type":"string","description":"Step when the condition is true.","uniqueKey":"steps.items.[INDEX].oneOf.5.true_step_id","typeLabel":"string"},"false_step_id":{"type":"string","description":"Step when the condition is false.","uniqueKey":"steps.items.[INDEX].oneOf.5.false_step_id","typeLabel":"string"},"default_step_id":{"type":"string","description":"Fallback step.","uniqueKey":"steps.items.[INDEX].oneOf.5.default_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["create_tent"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.6.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.6.label","typeLabel":"string"},"source":{"type":"string","enum":["scratch","template"],"description":"Start from scratch or from a template.","uniqueKey":"steps.items.[INDEX].oneOf.6.source","typeLabel":"enum\u003cstring>"},"template_id":{"type":"string","description":"Template ID (with `source: template`).","uniqueKey":"steps.items.[INDEX].oneOf.6.template_id","typeLabel":"string"},"prompt":{"type":"string","description":"Generation prompt. Supports `{{contact.*}}` merge tokens.","uniqueKey":"steps.items.[INDEX].oneOf.6.prompt","typeLabel":"string"},"auto_publish":{"type":"boolean","description":"Publish automatically after generation.","uniqueKey":"steps.items.[INDEX].oneOf.6.auto_publish","typeLabel":"boolean"},"custom_page_alias":{"type":"string","description":"Published alias. Supports `{{contact.*}}` merge tokens.","uniqueKey":"steps.items.[INDEX].oneOf.6.custom_page_alias","typeLabel":"string"},"tent_name":{"type":"string","description":"Tent name. Supports `{{contact.*}}` merge tokens.","uniqueKey":"steps.items.[INDEX].oneOf.6.tent_name","typeLabel":"string"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.6.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["create_email"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.7.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.7.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.7.label","typeLabel":"string"},"source":{"type":"string","enum":["scratch","template"],"description":"`scratch` (default) generates an email from the prompt; `template` seeds from an approved email template.","uniqueKey":"steps.items.[INDEX].oneOf.7.source","typeLabel":"enum\u003cstring>"},"template_id":{"type":"string","format":"uuid","description":"Approved email template ID (with `source: template`).","uniqueKey":"steps.items.[INDEX].oneOf.7.template_id","typeLabel":"string\u003cuuid>"},"template_mode":{"type":"string","enum":["copy_only","generate"],"description":"With `source: template`: `copy_only` reuses the template verbatim (no generation credits); `generate` (default) runs AI generation on top using the prompt.","uniqueKey":"steps.items.[INDEX].oneOf.7.template_mode","typeLabel":"enum\u003cstring>"},"prompt":{"type":"string","description":"Generation prompt. Required whenever generation runs. Supports `{{contact.*}}` and `{{campaign.dynamic.*}}` merge tokens (for example a prior `create_tent` step's `{{campaign.dynamic.tentURL}}`).","uniqueKey":"steps.items.[INDEX].oneOf.7.prompt","typeLabel":"string"},"auto_approve":{"type":"boolean","description":"Approve the email automatically once created so a later `send_email` step (`email_source: flow_step`) can send it. Default `true`. Requires a subject and complete sender identity to resolve from the step, the template defaults, or the org sender defaults.","uniqueKey":"steps.items.[INDEX].oneOf.7.auto_approve","typeLabel":"boolean"},"email_name":{"type":"string","description":"Name for the created email. Supports merge tokens.","uniqueKey":"steps.items.[INDEX].oneOf.7.email_name","typeLabel":"string"},"subject":{"type":"string","description":"Subject line. Supports merge tokens. Falls back to the template default, or the generated subject for AI emails.","uniqueKey":"steps.items.[INDEX].oneOf.7.subject","typeLabel":"string"},"preview_text":{"type":"string","description":"Preheader text. Supports merge tokens.","uniqueKey":"steps.items.[INDEX].oneOf.7.preview_text","typeLabel":"string"},"from_name":{"type":"string","description":"Sender name override. Defaults to the template or org sender default.","uniqueKey":"steps.items.[INDEX].oneOf.7.from_name","typeLabel":"string"},"from_address":{"type":"string","description":"Sender address override (must be on the verified sending domain). Defaults to the template or org sender default.","uniqueKey":"steps.items.[INDEX].oneOf.7.from_address","typeLabel":"string"},"reply_to_email":{"type":"string","description":"Reply-To override. Defaults to the template or org sender default.","uniqueKey":"steps.items.[INDEX].oneOf.7.reply_to_email","typeLabel":"string"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.7.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["send_webhook"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.8.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.8.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.8.label","typeLabel":"string"},"endpoint_url":{"type":"string","description":"Public HTTP(S) endpoint to call.","uniqueKey":"steps.items.[INDEX].oneOf.8.endpoint_url","typeLabel":"string"},"method":{"type":"string","enum":["post","put","get"],"default":"post","description":"HTTP method.","uniqueKey":"steps.items.[INDEX].oneOf.8.method","typeLabel":"enum\u003cstring>"},"auth_type":{"type":"string","enum":["none","jwt"],"description":"Authentication for the call.","uniqueKey":"steps.items.[INDEX].oneOf.8.auth_type","typeLabel":"enum\u003cstring>"},"token":{"type":"string","description":"JWT signing token (with `auth_type: jwt`).","uniqueKey":"steps.items.[INDEX].oneOf.8.token","typeLabel":"string"},"secret_arn":{"type":"string","description":"Secret reference for the JWT key (with `auth_type: jwt`).","uniqueKey":"steps.items.[INDEX].oneOf.8.secret_arn","typeLabel":"string"},"custom_fields":{"type":"object","additionalProperties":true,"description":"Extra fields merged into the webhook payload.","uniqueKey":"steps.items.[INDEX].oneOf.8.custom_fields","typeLabel":"object"},"next_step_id":{"type":"string","description":"Step to run next. Omit to end the flow after this step.","uniqueKey":"steps.items.[INDEX].oneOf.8.next_step_id","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","description":"A flow step. A flow may contain up to 100 steps. Steps link via `next_step_id` (or the branch fields on `condition_check`); omitting a link ends the flow.","required":["type","step_id"],"properties":{"type":{"type":"string","enum":["drop_from_flow"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.9.type","typeLabel":"enum\u003cstring>"},"step_id":{"type":"string","minLength":1,"maxLength":120,"description":"Unique step identifier within the flow (1–120 characters).","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.9.step_id","typeLabel":"string"},"label":{"type":"string","description":"Optional display label.","uniqueKey":"steps.items.[INDEX].oneOf.9.label","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.9","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"description":"Step graph.","uniqueKey":"steps","typeLabel":"object[]"},"disqualification_rules":{"oneOf":[{"type":"object","description":"Contacts matching these rules are dropped (evaluated continuously). `null` when unset.","required":["conditions"],"properties":{"conditions":{"type":"array","items":{"$circularRef":"9126c944-a0e2-4673-8656-0b35cdbabec9"},"description":"Child nodes. Groups nest up to 5 levels; a tree may contain at most 100 nodes.","isRequired":true,"uniqueKey":"disqualification_rules.oneOf.0.conditions","typeLabel":"array"},"kind":{"type":"string","enum":["group"],"description":"Set to `group` (default when `conditions` is present).","uniqueKey":"disqualification_rules.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"operator":{"type":"string","enum":["and","or"],"default":"and","description":"How child conditions combine.","uniqueKey":"disqualification_rules.oneOf.0.operator","typeLabel":"enum\u003cstring>"}},"uniqueKey":"disqualification_rules.oneOf.0","typeLabel":"object"},{"type":"object","description":"Contacts matching these rules are dropped (evaluated continuously). `null` when unset.","required":["operator"],"properties":{"operator":{"type":"string","description":"Comparison operator. Strings: `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`. Numbers/dates: `equals`, `not_equals`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`. Booleans: `is_true`, `is_false`. Any: `is_empty`, `is_not_empty`. Membership: `is_member`, `is_not_member`. Activity: `has_activity`, `has_no_activity`. Shorthand aliases (`eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `member_of`) are accepted.","isRequired":true,"uniqueKey":"disqualification_rules.oneOf.1.operator","typeLabel":"string"},"kind":{"type":"string","enum":["condition"],"description":"Set to `condition` (default when `operator` is present without `conditions`).","uniqueKey":"disqualification_rules.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["contact","custom_field","activity","list_membership","email_step"],"default":"contact","description":"What the condition tests.","uniqueKey":"disqualification_rules.oneOf.1.source","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Standard contact field in camelCase (e.g. `leadStatus`, `tentedScore`, `createdAt`). Used with `source: contact`.","uniqueKey":"disqualification_rules.oneOf.1.field","typeLabel":"string"},"fieldDefinitionId":{"type":"string","format":"uuid","description":"Active custom-field definition ID. Used with `source: custom_field`.","uniqueKey":"disqualification_rules.oneOf.1.fieldDefinitionId","typeLabel":"string\u003cuuid>"},"activityType":{"type":"string","description":"Activity type (e.g. `form_submission`). Used with `source: activity`.","uniqueKey":"disqualification_rules.oneOf.1.activityType","typeLabel":"string"},"listId":{"type":"string","format":"uuid","description":"Static list ID. Used with `source: list_membership`.","uniqueKey":"disqualification_rules.oneOf.1.listId","typeLabel":"string\u003cuuid>"},"nodeId":{"type":"string","description":"`step_id` of an earlier `send_email` step. Used with `source: email_step` (flows only).","uniqueKey":"disqualification_rules.oneOf.1.nodeId","typeLabel":"string"},"metric":{"type":"string","enum":["sent","delivered","opened","clicked","bounced","unsubscribed"],"description":"Email engagement metric. Used with `source: email_step`.","uniqueKey":"disqualification_rules.oneOf.1.metric","typeLabel":"enum\u003cstring>"},"value":{"description":"Comparison value, when the operator takes one.","uniqueKey":"disqualification_rules.oneOf.1.value","typeLabel":"any"},"timeWindow":{"type":"object","properties":{"amount":{"type":"integer","minimum":1,"maximum":1000,"description":"Window size.","uniqueKey":"disqualification_rules.oneOf.1.timeWindow.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["hour","day","week","month","year"],"description":"Window unit.","uniqueKey":"disqualification_rules.oneOf.1.timeWindow.unit","typeLabel":"enum\u003cstring>"}},"description":"Optional look-back window for activity conditions.","uniqueKey":"disqualification_rules.oneOf.1.timeWindow","typeLabel":"object"}},"uniqueKey":"disqualification_rules.oneOf.1","typeLabel":"object"}],"uniqueKey":"disqualification_rules","typeLabel":"object"},"reentry_policy":{"type":"string","enum":["allow","no_reentry"],"description":"Whether contacts may re-enter after exiting.","uniqueKey":"reentry_policy","typeLabel":"enum\u003cstring>"},"manual_membership_enabled":{"type":"boolean","description":"Whether contacts can be added via the API.","uniqueKey":"manual_membership_enabled","typeLabel":"boolean"},"settings":{"type":"object","additionalProperties":true,"description":"Free-form flow settings (max 16 KB).","uniqueKey":"settings","typeLabel":"object"},"details":{"type":"object","properties":{"total_entered":{"type":"integer","description":"Contacts that ever entered.","uniqueKey":"details.total_entered","typeLabel":"integer"},"active_count":{"type":"integer","description":"Currently active members.","uniqueKey":"details.active_count","typeLabel":"integer"},"waiting_count":{"type":"integer","description":"Members in a wait step.","uniqueKey":"details.waiting_count","typeLabel":"integer"},"completed_count":{"type":"integer","description":"Members that completed the flow.","uniqueKey":"details.completed_count","typeLabel":"integer"},"dropped_count":{"type":"integer","description":"Members dropped before completing.","uniqueKey":"details.dropped_count","typeLabel":"integer"},"most_recent_entry_at":{"oneOf":[{"type":"string","format":"date-time","description":"Most recent enrollment.","uniqueKey":"details.most_recent_entry_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Most recent enrollment.","uniqueKey":"details.most_recent_entry_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.most_recent_entry_at","typeLabel":"string\u003cdate-time> | null"}},"description":"Aggregate membership counters.","uniqueKey":"details","typeLabel":"object"},"archived_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the flow was archived.","uniqueKey":"archived_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the flow was archived.","uniqueKey":"archived_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"archived_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"Creation time.","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Last update.","uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"}},"required":["flow_id","type","name","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"flow_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"\u003cstring>","name":"\u003cstring>","status":"draft","description":"\u003cstring>","triggers":[{"type":"added_to_static_list","list_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}],"steps":[{"type":"send_email","step_id":"\u003cstring>","label":"\u003cstring>","email_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","operational":true,"email_source":"existing","create_email_step_id":"\u003cstring>","next_step_id":"\u003cstring>"}],"disqualification_rules":{"conditions":"\u003carray>","kind":"group","operator":"and"},"reentry_policy":"allow","manual_membership_enabled":true,"settings":{},"details":{"total_entered":123,"active_count":123,"waiting_count":123,"completed_count":123,"dropped_count":123,"most_recent_entry_at":"2023-11-07T05:31:56Z"},"archived_at":"2023-11-07T05:31:56Z","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"e686a4ba-af4c-4319-b272-1573b096dfa4":{"description":"Bad request — invalid parameters or request body. Validation failures include `details.issues` with per-field messages.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_code":{"type":"string","description":"Stable machine-readable error code (present on email, blast, flow, and related endpoints, e.g. `campaign_not_ready`, `generation_in_progress`).","uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","description":"Additional human-readable context (present on some tent endpoints).","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable code used by tent creation errors (e.g. `INVALID_PROMPT_INTENT`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Additional error context. Validation errors include `issues`: an array of `{ path, message }` objects.","uniqueKey":"details","typeLabel":"object"},"limit":{"type":"integer","description":"Plan limit that was hit (present on `429` publish-limit errors).","uniqueKey":"limit","typeLabel":"integer"},"current":{"type":"integer","description":"Current usage against the limit (present on `429` publish-limit errors).","uniqueKey":"current","typeLabel":"integer"}},"required":["error"],"description":"Error response. All errors include `error`; the other fields vary by endpoint group.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_code":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"current":123}}},"exampleType":"generated"}},"exampleType":"generated"},"763037d2-a57c-4e08-942a-1828ce707318":{"description":"Unauthorized — missing, malformed, revoked, or expired API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_code":{"type":"string","description":"Stable machine-readable error code (present on email, blast, flow, and related endpoints, e.g. `campaign_not_ready`, `generation_in_progress`).","uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","description":"Additional human-readable context (present on some tent endpoints).","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable code used by tent creation errors (e.g. `INVALID_PROMPT_INTENT`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Additional error context. Validation errors include `issues`: an array of `{ path, message }` objects.","uniqueKey":"details","typeLabel":"object"},"limit":{"type":"integer","description":"Plan limit that was hit (present on `429` publish-limit errors).","uniqueKey":"limit","typeLabel":"integer"},"current":{"type":"integer","description":"Current usage against the limit (present on `429` publish-limit errors).","uniqueKey":"current","typeLabel":"integer"}},"required":["error"],"description":"Error response. All errors include `error`; the other fields vary by endpoint group.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_code":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"current":123}}},"exampleType":"generated"}},"exampleType":"generated"},"2efb79dc-1e9b-4f83-91f8-2e0d8b37e16a":{"description":"Not found — the resource does not exist in the workspace tied to your API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_code":{"type":"string","description":"Stable machine-readable error code (present on email, blast, flow, and related endpoints, e.g. `campaign_not_ready`, `generation_in_progress`).","uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","description":"Additional human-readable context (present on some tent endpoints).","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable code used by tent creation errors (e.g. `INVALID_PROMPT_INTENT`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Additional error context. Validation errors include `issues`: an array of `{ path, message }` objects.","uniqueKey":"details","typeLabel":"object"},"limit":{"type":"integer","description":"Plan limit that was hit (present on `429` publish-limit errors).","uniqueKey":"limit","typeLabel":"integer"},"current":{"type":"integer","description":"Current usage against the limit (present on `429` publish-limit errors).","uniqueKey":"current","typeLabel":"integer"}},"required":["error"],"description":"Error response. All errors include `error`; the other fields vary by endpoint group.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_code":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"current":123}}},"exampleType":"generated"}},"exampleType":"generated"},"ed5bce51-5a3c-47f8-9b25-dc7fd82e6893":{"description":"Conflict — see `error_code` for the specific reason.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_code":{"type":"string","description":"Stable machine-readable error code (present on email, blast, flow, and related endpoints, e.g. `campaign_not_ready`, `generation_in_progress`).","uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","description":"Additional human-readable context (present on some tent endpoints).","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable code used by tent creation errors (e.g. `INVALID_PROMPT_INTENT`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Additional error context. Validation errors include `issues`: an array of `{ path, message }` objects.","uniqueKey":"details","typeLabel":"object"},"limit":{"type":"integer","description":"Plan limit that was hit (present on `429` publish-limit errors).","uniqueKey":"limit","typeLabel":"integer"},"current":{"type":"integer","description":"Current usage against the limit (present on `429` publish-limit errors).","uniqueKey":"current","typeLabel":"integer"}},"required":["error"],"description":"Error response. All errors include `error`; the other fields vary by endpoint group.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_code":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"current":123}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a69c8ab2-91e8-4370-bf83-42244b8a98bb":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Workspace API key, e.g. `Authorization: Bearer tented_...`. Create keys in Workspace Settings → API Keys.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"46d863a6-e43f-44d9-961b-cd303cc6f7c0":{"url":"https://api.tented.ai","description":"Production"}},"schemas":{"9126c944-a0e2-4673-8656-0b35cdbabec9":{"oneOf":[{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["conditions"],"properties":{"conditions":{"type":"array","items":{"$circularRef":"9126c944-a0e2-4673-8656-0b35cdbabec9"},"description":"Child nodes. Groups nest up to 5 levels; a tree may contain at most 100 nodes.","isRequired":true},"kind":{"type":"string","enum":["group"],"description":"Set to `group` (default when `conditions` is present)."},"operator":{"type":"string","enum":["and","or"],"default":"and","description":"How child conditions combine."}}},{"type":"object","description":"A rule tree node: either a group of nested conditions or a single condition. NOTE: rule trees use camelCase keys (`listId`, `fieldDefinitionId`, `timeWindow`), unlike the rest of the API.","required":["operator"],"properties":{"operator":{"type":"string","description":"Comparison operator. Strings: `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`. Numbers/dates: `equals`, `not_equals`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`. Booleans: `is_true`, `is_false`. Any: `is_empty`, `is_not_empty`. Membership: `is_member`, `is_not_member`. Activity: `has_activity`, `has_no_activity`. Shorthand aliases (`eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `member_of`) are accepted.","isRequired":true},"kind":{"type":"string","enum":["condition"],"description":"Set to `condition` (default when `operator` is present without `conditions`)."},"source":{"type":"string","enum":["contact","custom_field","activity","list_membership","email_step"],"default":"contact","description":"What the condition tests."},"field":{"type":"string","description":"Standard contact field in camelCase (e.g. `leadStatus`, `tentedScore`, `createdAt`). Used with `source: contact`."},"fieldDefinitionId":{"type":"string","format":"uuid","description":"Active custom-field definition ID. Used with `source: custom_field`."},"activityType":{"type":"string","description":"Activity type (e.g. `form_submission`). Used with `source: activity`."},"listId":{"type":"string","format":"uuid","description":"Static list ID. Used with `source: list_membership`."},"nodeId":{"type":"string","description":"`step_id` of an earlier `send_email` step. Used with `source: email_step` (flows only)."},"metric":{"type":"string","enum":["sent","delivered","opened","clicked","bounced","unsubscribed"],"description":"Email engagement metric. Used with `source: email_step`."},"value":{"description":"Comparison value, when the operator takes one."},"timeWindow":{"type":"object","properties":{"amount":{"type":"integer","minimum":1,"maximum":1000,"description":"Window size."},"unit":{"type":"string","enum":["hour","day","week","month","year"],"description":"Window unit."}},"description":"Optional look-back window for activity conditions."}}}]}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Workspace API key, e.g. `Authorization: Bearer tented_...`. Create keys in Workspace Settings → API Keys.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Workspace API key, e.g. `Authorization: Bearer tented_...`. Create keys in Workspace Settings → API Keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"tented","siteName":"Tented Help Center","title":"Set a step’s email - Tented Help Center","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T16:49:08.116Z","originalFileLocation":"api-reference/triggered-flows/set-a-step’s-email.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tented Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set a step’s email - Tented Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tented Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step’s-email\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tented.mintlify.site/_mintlify/api/og/v2?division=Triggered+Flows\u0026amp;title=Set+a+step%E2%80%99s+email\u0026amp;description=Attach+the+email+for+a+%60send_email%60+step+%E2%80%94+an+existing+email+or+one+created+inline+%28same+body+as+setting+a+blast%E2%80%99s+email%29.+Inline+emails+start+as+drafts+and+mus\u0026amp;theme=6f3de5c97857f534565ce1c7\u0026amp;signature=8cdafb5c91cbf2b1295578d7e08a0069a7d50123bea0954edc472b348ee5fa23\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Set a step’s email - Tented Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tented.mintlify.site/_mintlify/api/og/v2?division=Triggered+Flows\u0026amp;title=Set+a+step%E2%80%99s+email\u0026amp;description=Attach+the+email+for+a+%60send_email%60+step+%E2%80%94+an+existing+email+or+one+created+inline+%28same+body+as+setting+a+blast%E2%80%99s+email%29.+Inline+emails+start+as+drafts+and+mus\u0026amp;theme=6f3de5c97857f534565ce1c7\u0026amp;signature=8cdafb5c91cbf2b1295578d7e08a0069a7d50123bea0954edc472b348ee5fa23\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tented/Ot1teMsSMR0FZrqh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tented Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5A855B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step’s-email\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/triggered-flows/set-a-step%E2%80%99s-email.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tented.ai/#organization\",\"name\":\"Tented Help Center\",\"url\":\"https://docs.tented.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tented/ROcYOxFUIgiTHi6y/logo/tented-logo-dark-text.svg?fit=max\u0026auto=format\u0026n=ROcYOxFUIgiTHi6y\u0026q=85\u0026s=524f92cf5a25aeddb0118ecf3d7d8175\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tented.ai#website\",\"name\":\"Tented Help Center\",\"url\":\"https://docs.tented.ai\",\"publisher\":{\"@id\":\"https://docs.tented.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email#webpage\",\"url\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email\",\"name\":\"Set a step’s email\",\"description\":\"Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.\",\"dateModified\":\"2026-10-23T16:49:08.116Z\",\"isPartOf\":{\"@id\":\"https://docs.tented.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Triggered Flows\",\"item\":\"https://docs.tented.ai/api-reference/triggered-flows/list-flows\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Set a step’s email\",\"item\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email#apireference\",\"headline\":\"Set a step’s email\",\"name\":\"Set a step’s email\",\"description\":\"Attach the email for a send_email step — an existing email or one created inline (same body as setting a blast’s email). Inline emails start as drafts and must be approved before the flow can be activated. Fails with 400 campaign_flow_step_type_invalid on non-email steps.\",\"url\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tented.ai/api-reference/triggered-flows/set-a-step%E2%80%99s-email#webpage\"},\"dateModified\":\"2026-10-23T16:49:08.116Z\",\"publisher\":{\"@id\":\"https://docs.tented.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tented.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tented Help Center\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Tented Help Center\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/triggered-flows/set-a-step%E2%80%99s-email.md","siteName":"Tented Help Center","nav":{"global":{},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Docs","pages":[{"title":"API Docs","href":"/api-reference/introduction"}]},{"tab":"API Reference","groups":[{"group":"Tents","pages":[{"title":"Create a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents","href":"/api-reference/tents/create-a-tent"},{"title":"Get tent status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tents/{tentId}","href":"/api-reference/tents/get-tent-status"},{"title":"Edit a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/{tentId}/edit","href":"/api-reference/tents/edit-a-tent"},{"title":"List tent assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tents/{tentId}/assets","href":"/api-reference/tents/list-tent-assets"},{"title":"Upload an asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/{tentId}/assets","href":"/api-reference/tents/upload-an-asset"},{"title":"Publish a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/{tentId}/publish","href":"/api-reference/tents/publish-a-tent"},{"title":"Unpublish a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/{tentId}/unpublish","href":"/api-reference/tents/unpublish-a-tent"},{"title":"Delete a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tents/{identifier}","href":"/api-reference/tents/delete-a-tent"},{"title":"Create tents in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/bulk","href":"/api-reference/tents/create-tents-in-bulk"},{"title":"Get bulk job status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/bulk-jobs/{bulkJobId}","href":"/api-reference/tents/get-bulk-job-status"},{"title":"Get a tent asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tents/{tentId}/assets/{assetId}","href":"/api-reference/tents/get-a-tent-asset"},{"title":"Delete a tent asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tents/{tentId}/assets/{assetId}","href":"/api-reference/tents/delete-a-tent-asset"},{"title":"Clone a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tents/{tentId}/clone","href":"/api-reference/tents/clone-a-tent"}]},{"group":"Analytics","pages":[{"title":"Get tent analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tent","href":"/api-reference/analytics/get-tent-analytics"},{"title":"Get workspace analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/org","href":"/api-reference/analytics/get-workspace-analytics"}]},{"group":"Contacts","pages":[{"title":"List or look up contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts","href":"/api-reference/contacts/list-or-look-up-contacts"},{"title":"Create contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts","href":"/api-reference/contacts/create-contacts"},{"title":"Delete contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/contacts","href":"/api-reference/contacts/delete-contacts"},{"title":"Update contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/update","href":"/api-reference/contacts/update-contacts"},{"title":"Delete contacts (POST)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/delete","href":"/api-reference/contacts/delete-contacts-post"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts/{contactId}","href":"/api-reference/contacts/get-a-contact"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/contacts/{contactId}","href":"/api-reference/contacts/delete-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/contacts/{contactId}","href":"/api-reference/contacts/update-a-contact"},{"title":"Upsert contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/upsert","href":"/api-reference/contacts/upsert-contacts"},{"title":"Search contacts by rules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/search","href":"/api-reference/contacts/search-contacts-by-rules"},{"title":"List contact activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts/{contactId}/activities","href":"/api-reference/contacts/list-contact-activities"}]},{"group":"Emails","pages":[{"title":"List emails","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails","href":"/api-reference/emails/list-emails"},{"title":"Create an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails","href":"/api-reference/emails/create-an-email"},{"title":"Get an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}","href":"/api-reference/emails/get-an-email"},{"title":"Delete an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/emails/{emailId}","href":"/api-reference/emails/delete-an-email"},{"title":"Update email metadata","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/emails/{emailId}","href":"/api-reference/emails/update-email-metadata"},{"title":"Get email HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/content","href":"/api-reference/emails/get-email-html"},{"title":"Get plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/plain-text","href":"/api-reference/emails/get-plain-text"},{"title":"Override plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/emails/{emailId}/plain-text","href":"/api-reference/emails/override-plain-text"},{"title":"Reset plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/emails/{emailId}/plain-text","href":"/api-reference/emails/reset-plain-text"},{"title":"Iterate with AI","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/messages","href":"/api-reference/emails/iterate-with-ai"},{"title":"Save HTML directly","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/save-code","href":"/api-reference/emails/save-html-directly"},{"title":"Approve an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/approve","href":"/api-reference/emails/approve-an-email"},{"title":"Unapprove an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/unapprove","href":"/api-reference/emails/unapprove-an-email"},{"title":"Get generation status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/generations/{generationId}","href":"/api-reference/emails/get-generation-status"},{"title":"Get generation HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/generations/{generationId}/content","href":"/api-reference/emails/get-generation-html"},{"title":"Get generation plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/generations/{generationId}/plain-text","href":"/api-reference/emails/get-generation-plain-text"},{"title":"List email assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/assets","href":"/api-reference/emails/list-email-assets"},{"title":"Upload an email asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/assets","href":"/api-reference/emails/upload-an-email-asset"},{"title":"Get an email asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/emails/{emailId}/assets/{assetId}","href":"/api-reference/emails/get-an-email-asset"},{"title":"Delete an email asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/emails/{emailId}/assets/{assetId}","href":"/api-reference/emails/delete-an-email-asset"},{"title":"Clone an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/emails/{emailId}/clone","href":"/api-reference/emails/clone-an-email"}]},{"group":"Email Blasts","pages":[{"title":"List blasts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-blasts","href":"/api-reference/email-blasts/list-blasts"},{"title":"Create a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts","href":"/api-reference/email-blasts/create-a-blast"},{"title":"Get a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-blasts/{blastId}","href":"/api-reference/email-blasts/get-a-blast"},{"title":"Delete a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-blasts/{blastId}","href":"/api-reference/email-blasts/delete-a-blast"},{"title":"Rename a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email-blasts/{blastId}","href":"/api-reference/email-blasts/rename-a-blast"},{"title":"Set the audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-blasts/{blastId}/audience","href":"/api-reference/email-blasts/set-the-audience"},{"title":"Set the email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-blasts/{blastId}/email","href":"/api-reference/email-blasts/set-the-email"},{"title":"Schedule a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts/{blastId}/schedule","href":"/api-reference/email-blasts/schedule-a-blast"},{"title":"Send a blast now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts/{blastId}/send-now","href":"/api-reference/email-blasts/send-a-blast-now"},{"title":"Unschedule a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts/{blastId}/unschedule","href":"/api-reference/email-blasts/unschedule-a-blast"},{"title":"Archive a blast","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts/{blastId}/archive","href":"/api-reference/email-blasts/archive-a-blast"},{"title":"List recipients \u0026 engagement","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-blasts/{blastId}/contacts","href":"/api-reference/email-blasts/list-recipients-\u0026-engagement"},{"title":"Start a CSV export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-blasts/{blastId}/contacts/export","href":"/api-reference/email-blasts/start-a-csv-export"},{"title":"Get export status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-blasts/{blastId}/contacts/export/{exportId}","href":"/api-reference/email-blasts/get-export-status"}]},{"group":"Triggered Flows","pages":[{"title":"List flows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-flows","href":"/api-reference/triggered-flows/list-flows"},{"title":"Create a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows","href":"/api-reference/triggered-flows/create-a-flow"},{"title":"Get a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-flows/{flowId}","href":"/api-reference/triggered-flows/get-a-flow"},{"title":"Delete a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-flows/{flowId}","href":"/api-reference/triggered-flows/delete-a-flow"},{"title":"Update a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email-flows/{flowId}","href":"/api-reference/triggered-flows/update-a-flow"},{"title":"Replace triggers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-flows/{flowId}/triggers","href":"/api-reference/triggered-flows/replace-triggers"},{"title":"Replace steps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-flows/{flowId}/steps","href":"/api-reference/triggered-flows/replace-steps"},{"title":"Add a step","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/steps","href":"/api-reference/triggered-flows/add-a-step"},{"title":"Delete a step","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-flows/{flowId}/steps/{stepId}","href":"/api-reference/triggered-flows/delete-a-step"},{"title":"Update a step","description":"Merge a partial update into one step. Only provided fields change; `step_id` cannot be changed.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email-flows/{flowId}/steps/{stepId}","href":"/api-reference/triggered-flows/update-a-step"},{"title":"Set a step’s email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-flows/{flowId}/steps/{stepId}/email","href":"/api-reference/triggered-flows/set-a-step’s-email"},{"title":"Activate a flow","description":"Validate and activate the flow. Incomplete configuration (e.g. an unapproved email on a `send_email` step) fails with `400 campaign_flow_not_ready` and an `activation_readiness` breakdown. Triggers fire on new events only — no retroactive enrollment.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/activate","href":"/api-reference/triggered-flows/activate-a-flow"},{"title":"Pause a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/pause","href":"/api-reference/triggered-flows/pause-a-flow"},{"title":"Archive a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/archive","href":"/api-reference/triggered-flows/archive-a-flow"},{"title":"Add a contact to a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/contacts/{contactId}","href":"/api-reference/triggered-flows/add-a-contact-to-a-flow"},{"title":"Remove a contact from a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-flows/{flowId}/contacts/{contactId}","href":"/api-reference/triggered-flows/remove-a-contact-from-a-flow"},{"title":"List flow members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-flows/{flowId}/members","href":"/api-reference/triggered-flows/list-flow-members"},{"title":"Get a member run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-flows/{flowId}/members/{membershipId}","href":"/api-reference/triggered-flows/get-a-member-run"},{"title":"Trigger a flow for a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-flows/{flowId}/trigger","href":"/api-reference/triggered-flows/trigger-a-flow-for-a-contact"},{"title":"Add a contact to a flow (campaign alias)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-campaigns/{campaignId}/contacts/{contactId}","href":"/api-reference/triggered-flows/add-a-contact-to-a-flow-campaign-alias"},{"title":"Remove a contact from a flow (campaign alias)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-campaigns/{campaignId}/contacts/{contactId}","href":"/api-reference/triggered-flows/remove-a-contact-from-a-flow-campaign-alias"}]},{"group":"Contact Imports","pages":[{"title":"Start a contact import","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/imports","href":"/api-reference/contact-imports/start-a-contact-import"},{"title":"Preview an import","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/imports/{sessionId}/preview","href":"/api-reference/contact-imports/preview-an-import"},{"title":"Execute an import","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contacts/imports/{sessionId}/execute","href":"/api-reference/contact-imports/execute-an-import"},{"title":"Get an import run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts/imports/{importRunId}","href":"/api-reference/contact-imports/get-an-import-run"},{"title":"List per-row results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts/imports/{importRunId}/results","href":"/api-reference/contact-imports/list-per-row-results"},{"title":"Export results as CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contacts/imports/{importRunId}/export","href":"/api-reference/contact-imports/export-results-as-csv"}]},{"group":"Contact Fields","pages":[{"title":"List contact fields","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-fields","href":"/api-reference/contact-fields/list-contact-fields"},{"title":"Create custom fields","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contact-fields","href":"/api-reference/contact-fields/create-custom-fields"},{"title":"Update a custom field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/contact-fields/{fieldDefinitionId}","href":"/api-reference/contact-fields/update-a-custom-field"},{"title":"Get rule metadata","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-fields/rule-metadata","href":"/api-reference/contact-fields/get-rule-metadata"}]},{"group":"Contact Lists","pages":[{"title":"List contact lists","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-lists","href":"/api-reference/contact-lists/list-contact-lists"},{"title":"Create a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contact-lists","href":"/api-reference/contact-lists/create-a-contact-list"},{"title":"Get a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-lists/{listId}","href":"/api-reference/contact-lists/get-a-contact-list"},{"title":"Delete a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/contact-lists/{listId}","href":"/api-reference/contact-lists/delete-a-contact-list"},{"title":"Update a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/contact-lists/{listId}","href":"/api-reference/contact-lists/update-a-contact-list"},{"title":"List members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-lists/{listId}/contacts","href":"/api-reference/contact-lists/list-members"},{"title":"Add members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contact-lists/{listId}/contacts","href":"/api-reference/contact-lists/add-members"},{"title":"Remove members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/contact-lists/{listId}/contacts","href":"/api-reference/contact-lists/remove-members"},{"title":"Get live member counts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-lists/{listId}/member-count","href":"/api-reference/contact-lists/get-live-member-counts"},{"title":"Start a CSV export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/contact-lists/{listId}/export","href":"/api-reference/contact-lists/start-a-csv-export"},{"title":"Get export status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/contact-lists/{listId}/export/{exportId}","href":"/api-reference/contact-lists/get-export-status"}]},{"group":"Email Templates","pages":[{"title":"List email templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates","href":"/api-reference/email-templates/list-email-templates"},{"title":"Create an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates","href":"/api-reference/email-templates/create-an-email-template"},{"title":"Get an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}","href":"/api-reference/email-templates/get-an-email-template"},{"title":"Delete an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-templates/{templateId}","href":"/api-reference/email-templates/delete-an-email-template"},{"title":"Update template metadata","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email-templates/{templateId}","href":"/api-reference/email-templates/update-template-metadata"},{"title":"Get template HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/content","href":"/api-reference/email-templates/get-template-html"},{"title":"Get plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/plain-text","href":"/api-reference/email-templates/get-plain-text"},{"title":"Override plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/email-templates/{templateId}/plain-text","href":"/api-reference/email-templates/override-plain-text"},{"title":"Reset plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-templates/{templateId}/plain-text","href":"/api-reference/email-templates/reset-plain-text"},{"title":"Iterate with AI","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/messages","href":"/api-reference/email-templates/iterate-with-ai"},{"title":"Save HTML directly","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/save-code","href":"/api-reference/email-templates/save-html-directly"},{"title":"Approve an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/approve","href":"/api-reference/email-templates/approve-an-email-template"},{"title":"Unapprove an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/unapprove","href":"/api-reference/email-templates/unapprove-an-email-template"},{"title":"Get generation status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/generations/{generationId}","href":"/api-reference/email-templates/get-generation-status"},{"title":"Get generation HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/generations/{generationId}/content","href":"/api-reference/email-templates/get-generation-html"},{"title":"Get generation plain text","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/generations/{generationId}/plain-text","href":"/api-reference/email-templates/get-generation-plain-text"},{"title":"List template assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/assets","href":"/api-reference/email-templates/list-template-assets"},{"title":"Upload a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/assets","href":"/api-reference/email-templates/upload-a-template-asset"},{"title":"Get a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email-templates/{templateId}/assets/{assetId}","href":"/api-reference/email-templates/get-a-template-asset"},{"title":"Delete a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email-templates/{templateId}/assets/{assetId}","href":"/api-reference/email-templates/delete-a-template-asset"},{"title":"Clone an email template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email-templates/{templateId}/clone","href":"/api-reference/email-templates/clone-an-email-template"}]},{"group":"Tent Templates","pages":[{"title":"List tent templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates","href":"/api-reference/tent-templates/list-tent-templates"},{"title":"Create a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates","href":"/api-reference/tent-templates/create-a-tent-template"},{"title":"Create a tent template from a tent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/from-tent/{tentId}","href":"/api-reference/tent-templates/create-a-tent-template-from-a-tent"},{"title":"Get a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}","href":"/api-reference/tent-templates/get-a-tent-template"},{"title":"Delete a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tent-templates/{templateId}","href":"/api-reference/tent-templates/delete-a-tent-template"},{"title":"Get template HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}/content","href":"/api-reference/tent-templates/get-template-html"},{"title":"Iterate with AI","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/messages","href":"/api-reference/tent-templates/iterate-with-ai"},{"title":"Save HTML directly","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/save-code","href":"/api-reference/tent-templates/save-html-directly"},{"title":"Approve a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/approve","href":"/api-reference/tent-templates/approve-a-tent-template"},{"title":"Unapprove a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/unapprove","href":"/api-reference/tent-templates/unapprove-a-tent-template"},{"title":"Clone a tent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/clone","href":"/api-reference/tent-templates/clone-a-tent-template"},{"title":"Get generation status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}/generations/{generationId}","href":"/api-reference/tent-templates/get-generation-status"},{"title":"Get generation HTML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}/generations/{generationId}/content","href":"/api-reference/tent-templates/get-generation-html"},{"title":"List template assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}/assets","href":"/api-reference/tent-templates/list-template-assets"},{"title":"Upload a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tent-templates/{templateId}/assets","href":"/api-reference/tent-templates/upload-a-template-asset"},{"title":"Get a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tent-templates/{templateId}/assets/{assetId}","href":"/api-reference/tent-templates/get-a-template-asset"},{"title":"Delete a template asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tent-templates/{templateId}/assets/{assetId}","href":"/api-reference/tent-templates/delete-a-template-asset"}]}]}]},"basePath":"","title":"Set a step’s email - Tented Help Center","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}