List the team’s outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search.
Contract:
MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"GetSales","description":"REST API and MCP server of GetSales: tables of people and companies, enrichment columns, data sources, multichannel workflows, the team inbox with the AI SDR, website signals, billing and webhooks.","colors":{"primary":"#4B64FF","light":"#8E92FF","dark":"#4B64FF"},"logo":{"light":"https://mintcdn.com/getsales/um-g-UJLB97yTl7a/logo/light.svg?fit=max\u0026auto=format\u0026n=um-g-UJLB97yTl7a\u0026q=85\u0026s=428985b239f36914fa7e1e44f6211540","dark":"https://mintcdn.com/getsales/um-g-UJLB97yTl7a/logo/dark.svg?fit=max\u0026auto=format\u0026n=um-g-UJLB97yTl7a\u0026q=85\u0026s=5d6ddba134f76dc1a6fc235f12fd2477","href":"https://getsales.io"},"favicon":"https://mintcdn.com/getsales/um-g-UJLB97yTl7a/favicon.svg?fit=max\u0026auto=format\u0026n=um-g-UJLB97yTl7a\u0026q=85\u0026s=6750a85bc743ceebf9a7429797a7d21b","navbar":{"links":[{"href":"https://getsales.io/pricing/","label":"Pricing"},{"href":"https://help.getsales.io/","label":"Help centre"}],"primary":{"type":"button","label":"Start free","href":"https://beta.getsales.io/signup"}},"footer":{"socials":{"github":"https://github.com/getsales-io","website":"https://getsales.io"},"links":[{"header":"Product","items":[{"label":"Home","href":"https://getsales.io"},{"label":"Pricing","href":"https://getsales.io/pricing"},{"label":"Sign in","href":"https://beta.getsales.io/login"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://getsales.io/blog"},{"label":"Help centre","href":"https://help.getsales.io/"}]}]},"seo":{"metatags":{"canonical":"https://docs.getsales.io"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"getsales","hasAudioNarration":false,"actualSubdomain":"getsales","customDomains":[],"gitSource":{"type":"github","owner":"getsales-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6ae6c0b853ca202614c15e7c"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae6c9000339475b5aab52ec","collectionId":"850288c1-9e96-4253-bd95-144e66a0e4fa","liveDeploymentHistoryId":"6ae6c9000339475b5aab52ec","schemaVersion":"v3"},"entitlements":{},"buildId":"6ae6cd2bc01b8679a4aef318","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":412},{"language":"default","tag":"Playtables API","count":142},{"language":"default","tag":"Unibox API","count":125},{"language":"default","tag":"ID and Teams API","count":88},{"language":"default","tag":"sender_profiles","count":33},{"language":"default","tag":"Signals API","count":30},{"language":"default","tag":"Integrations API","count":26},{"language":"default","tag":"agents","count":14},{"language":"default","tag":"data_sources","count":13},{"language":"default","tag":"playtable_fields","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/playtables/workflows/search-workflows","slug":"/api-reference/playtables/workflows/search-workflows","pageMetadata":{"title":"Search workflows","description":"List the team's outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search.\n\nContract:\n- MCP tool `search_workflows`, registry package `mcp.playtables/workflows`, mount `playtables.workflows`.\n- Operation `search`, response envelope `search`.\n- Flags: read only.","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/search","href":"/api-reference/playtables/workflows/search-workflows","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"List the team’s outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Contract:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"MCP tool \", _jsx(_components.code, {\n children: \"search_workflows\"\n }), \", registry package \", _jsx(_components.code, {\n children: \"mcp.playtables/workflows\"\n }), \", mount \", _jsx(_components.code, {\n children: \"playtables.workflows\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Operation \", _jsx(_components.code, {\n children: \"search\"\n }), \", response envelope \", _jsx(_components.code, {\n children: \"search\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Flags: read only.\"\n }), \"\\n\"]\n })]\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":"Search workflows","description":"List the team's outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search.\n\nContract:\n- MCP tool `search_workflows`, registry package `mcp.playtables/workflows`, mount `playtables.workflows`.\n- Operation `search`, response envelope `search`.\n- Flags: read only.","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/search","href":"/api-reference/playtables/workflows/search-workflows","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"search_workflows","summary":"Search workflows","description":"List the team's outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search.\n\nContract:\n- MCP tool `search_workflows`, registry package `mcp.playtables/workflows`, mount `playtables.workflows`.\n- Operation `search`, response envelope `search`.\n- Flags: read only.","tags":["workflows"],"requestBody":"7b3132e3-3215-4c26-aa1a-e56fcbf4f442","responses":{"200":"e33b9178-3ea7-4fb9-bb2d-f59b982aba70","4XX":"d89393a3-528c-4bb9-b449-414e4a4d7fc3","5XX":"729827b0-78e5-4ab5-8ae6-8a180675d3f7"},"x-gs-mcp-tool":"search_workflows","x-gs-mcp-mount":"playtables.workflows","x-gs-entity":"workflows","x-gs-operation":"search","x-gs-envelope":"search","x-gs-availability":"ga","x-gs-dangerous":false,"x-gs-mass-action":false,"x-gs-step-eligible":false,"x-gs-schedule-required":false,"x-gs-tool-class":"typical","method":"post","type":"path","servers":["71624634-b298-4b81-ba22-a05986db64c0"],"security":["d3ab5cdd-2aa1-426f-93da-16562fad923f"],"path":"/api/workflows/search","baseUrlOptions":["https://beta.getsales.io/playtables/v1"],"title":"Search workflows","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","description":"Request body of `search_workflows`.","properties":{"filter":{"type":"object","properties":{"playtable_sid":{"type":"object","properties":{"eq":{"type":"string","minLength":18,"maxLength":18,"pattern":"^pt_tb_","uniqueKey":"filter.playtable_sid.eq","typeLabel":"string"},"in":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^pt_tb_","uniqueKey":"filter.playtable_sid.in.items.[INDEX]","typeLabel":"string"},"uniqueKey":"filter.playtable_sid.in","typeLabel":"string[]"}},"additionalProperties":false,"description":"The home playtable.","uniqueKey":"filter.playtable_sid","typeLabel":"object"},"sid":{"type":"object","properties":{"eq":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_wf_","description":"Workflow sid (wf_wf_…).","uniqueKey":"filter.sid.eq","typeLabel":"string"},"in":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_wf_","description":"Workflow sid (wf_wf_…).","uniqueKey":"filter.sid.in.items.[INDEX]","typeLabel":"string"},"uniqueKey":"filter.sid.in","typeLabel":"string[]"}},"additionalProperties":false,"description":"Prefix-validated wf_wf_ sid(s).","uniqueKey":"filter.sid","typeLabel":"object"},"status":{"type":"object","properties":{"eq":{"type":"string","enum":["draft","active","paused","archived"],"uniqueKey":"filter.status.eq","typeLabel":"enum\u003cstring>"},"ne":{"type":"string","enum":["draft","active","paused","archived"],"uniqueKey":"filter.status.ne","typeLabel":"enum\u003cstring>"},"in":{"type":"array","items":{"type":"string","enum":["draft","active","paused","archived"],"uniqueKey":"filter.status.in.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"filter.status.in","typeLabel":"enum\u003cstring>[]"},"nin":{"type":"array","items":{"type":"string","enum":["draft","active","paused","archived"],"uniqueKey":"filter.status.nin.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"filter.status.nin","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":false,"description":"Default UI scope excludes archived client-side.","uniqueKey":"filter.status","typeLabel":"object"},"published_version_sid":{"type":"object","properties":{"eq":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_vr_","uniqueKey":"filter.published_version_sid.eq","typeLabel":"string"},"is_null":{"type":"boolean","uniqueKey":"filter.published_version_sid.is_null","typeLabel":"boolean"}},"additionalProperties":false,"description":"is_null:true = never published.","uniqueKey":"filter.published_version_sid","typeLabel":"object"},"agent_sid":{"type":"object","properties":{"eq":{"type":"string","minLength":18,"maxLength":18,"pattern":"^ub_ag_","uniqueKey":"filter.agent_sid.eq","typeLabel":"string"},"in":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^ub_ag_","uniqueKey":"filter.agent_sid.in.items.[INDEX]","typeLabel":"string"},"uniqueKey":"filter.agent_sid.in","typeLabel":"string[]"},"is_null":{"type":"boolean","uniqueKey":"filter.agent_sid.is_null","typeLabel":"boolean"}},"additionalProperties":false,"description":"The AI SDR the workflow picked (ub_ag_…); is_null:true = the workflows on their table's pick.","uniqueKey":"filter.agent_sid","typeLabel":"object"},"q":{"type":"string","maxLength":128,"description":"Free text over name + description (MySQL LIKE, prefix/infix).","uniqueKey":"filter.q","typeLabel":"string"},"created_at":{"type":"object","properties":{"gte":{"type":"string","uniqueKey":"filter.created_at.gte","typeLabel":"string"},"lte":{"type":"string","uniqueKey":"filter.created_at.lte","typeLabel":"string"},"gt":{"type":"string","uniqueKey":"filter.created_at.gt","typeLabel":"string"},"lt":{"type":"string","uniqueKey":"filter.created_at.lt","typeLabel":"string"}},"additionalProperties":false,"description":"ISO 8601 range; combine bounds in one object.","uniqueKey":"filter.created_at","typeLabel":"object"},"updated_at":{"type":"object","properties":{"gte":{"type":"string","uniqueKey":"filter.updated_at.gte","typeLabel":"string"},"lte":{"type":"string","uniqueKey":"filter.updated_at.lte","typeLabel":"string"},"gt":{"type":"string","uniqueKey":"filter.updated_at.gt","typeLabel":"string"},"lt":{"type":"string","uniqueKey":"filter.updated_at.lt","typeLabel":"string"}},"additionalProperties":false,"description":"\"Recently edited\" scans; ISO 8601 range.","uniqueKey":"filter.updated_at","typeLabel":"object"},"deleted_at":{"type":"object","properties":{"gte":{"type":"string","uniqueKey":"filter.deleted_at.gte","typeLabel":"string"},"lte":{"type":"string","uniqueKey":"filter.deleted_at.lte","typeLabel":"string"},"is_null":{"type":"boolean","uniqueKey":"filter.deleted_at.is_null","typeLabel":"boolean"}},"additionalProperties":false,"description":"Default scope is { is_null: true } (live rows).","uniqueKey":"filter.deleted_at","typeLabel":"object"}},"description":"Field filters, ANDed: {field: {eq | ne | in | nin | gte | lte | gt | lt | is_null}}; q inside it is free text. Omit for every row.","uniqueKey":"filter","typeLabel":"object"},"include":{"type":"array","items":{"type":"string","enum":["published_version","sources","records_counts","step_stats","forecast"],"uniqueKey":"include.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Relations to attach to every item; omit for the bare rows.","uniqueKey":"include","typeLabel":"enum\u003cstring>[]"},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["created_at","updated_at","name"],"description":"The column to order by.","isRequired":true,"uniqueKey":"sort.field","typeLabel":"enum\u003cstring>"},"direction":{"type":"string","enum":["asc","desc"],"description":"asc or desc; default desc.","uniqueKey":"sort.direction","typeLabel":"enum\u003cstring>"}},"required":["field"],"description":"One column and its direction; omit for the default order.","uniqueKey":"sort","typeLabel":"object"},"page_size":{"type":"integer","minimum":0,"maximum":500,"description":"0..500, default 50; 0 = counts only, 1 = the first row.","uniqueKey":"page_size","typeLabel":"integer"},"cursor":{"oneOf":[{"type":"string","description":"pagination.next_cursor of the previous page.","uniqueKey":"cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"pagination.next_cursor of the previous page.","uniqueKey":"cursor.oneOf.1","typeLabel":"null"}],"uniqueKey":"cursor","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"filter":{"playtable_sid":{"eq":"\u003cstring>","in":["\u003cstring>"]},"sid":{"eq":"\u003cstring>","in":["\u003cstring>"]},"status":{"in":[],"nin":[]},"published_version_sid":{"eq":"\u003cstring>","is_null":true},"agent_sid":{"eq":"\u003cstring>","in":["\u003cstring>"],"is_null":true},"q":"\u003cstring>","created_at":{"gte":"\u003cstring>","lte":"\u003cstring>","gt":"\u003cstring>","lt":"\u003cstring>"},"updated_at":{"gte":"\u003cstring>","lte":"\u003cstring>","gt":"\u003cstring>","lt":"\u003cstring>"},"deleted_at":{"gte":"\u003cstring>","lte":"\u003cstring>","is_null":true}},"include":[],"page_size":250,"cursor":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"e33b9178-3ea7-4fb9-bb2d-f59b982aba70":{"description":"`search` success envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"operation":{"type":"string","enum":["search"],"isRequired":true,"uniqueKey":"operation","typeLabel":"enum\u003cstring>"},"items":{"type":"array","items":{"type":"object","properties":{"item":{"type":"object","properties":{"sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.sid","typeLabel":"string"},"team_sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.team_sid","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.description.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.description","typeLabel":"string | null"},"status":{"type":"string","enum":["draft","active","paused","archived"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.status","typeLabel":"enum\u003cstring>"},"published_version_sid":{"oneOf":[{"type":"string","description":"wf_vr_… [ro] - written ONLY by publish; null until first publish. Old versions are never repointed back to (no rollback verb - republish the old steps instead).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.published_version_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"wf_vr_… [ro] - written ONLY by publish; null until first publish. Old versions are never repointed back to (no rollback verb - republish the old steps instead).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.published_version_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.published_version_sid","typeLabel":"string | null"},"draft_steps":{"type":"array","items":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_send_connection_request"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.name","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.message.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.message","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_message"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":8000,"description":"Message template (same namespaces as all templates).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.message","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_inmail"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":8000,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.message","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.name","typeLabel":"string | null"},"subject":{"oneOf":[{"type":"string","maxLength":200,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.subject.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.subject","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_visit_profile"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","required":["type","skills_count"],"properties":{"type":{"type":"string","enum":["linkedin_endorse_skills"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"skills_count":{"type":"integer","minimum":1,"maximum":10,"description":"Endorse the person's top N listed skills, 1..10.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.skills_count","typeLabel":"integer"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_withdraw_connection_request"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_like_latest_post"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","required":["type","comment"],"properties":{"type":{"type":"string","enum":["linkedin_comment_latest_post"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.type","typeLabel":"enum\u003cstring>"},"comment":{"type":"string","minLength":1,"maxLength":1250,"description":"Comment template on the person's latest post, 1..1250 rendered; same namespaces as message templates.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.comment","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","required":["type","subject","body"],"properties":{"type":{"type":"string","enum":["email_send"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.type","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.subject","typeLabel":"string"},"body":{"type":"string","minLength":1,"maxLength":100000,"description":"HTML body template.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.body","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.required_fields","typeLabel":"object | null"},"email_field":{"oneOf":[{"type":"string","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.email_field.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.email_field.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.email_field","typeLabel":"string | null"},"cc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.cc.oneOf.0.items.[INDEX]","typeLabel":"string\u003cemail>"},"maxItems":5,"description":"Up to 5 literal copy addresses.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.cc.oneOf.0","typeLabel":"string\u003cemail>[]"},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal copy addresses.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.cc.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.cc","typeLabel":"string\u003cemail>[] | null"},"bcc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.bcc.oneOf.0.items.[INDEX]","typeLabel":"string\u003cemail>"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.bcc.oneOf.0","typeLabel":"string\u003cemail>[]"},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.bcc.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.bcc","typeLabel":"string\u003cemail>[] | null"},"attachments":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX].sid","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"required":["sid","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["sid","name"],"additionalProperties":false},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.attachments","typeLabel":"object[] | null"},"reply_in_thread":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.reply_in_thread.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.reply_in_thread.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.reply_in_thread","typeLabel":"boolean | null"},"track_opens":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_opens.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_opens.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_opens","typeLabel":"boolean | null"},"track_clicks":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_clicks.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_clicks.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.track_clicks","typeLabel":"boolean | null"},"unsubscribe_link":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.unsubscribe_link.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.unsubscribe_link.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8.unsubscribe_link","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","required":["type","for"],"properties":{"type":{"type":"string","enum":["wait"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.type","typeLabel":"enum\u003cstring>"},"for":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.for","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","required":["type","event","timeout"],"properties":{"type":{"type":"string","enum":["wait_for_event"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.type","typeLabel":"enum\u003cstring>"},"event":{"type":"string","enum":["linkedin_connection_request_accepted","email_opened","email_link_clicked"],"description":"Event observed via the activities ingest.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.event","typeLabel":"enum\u003cstring>"},"timeout":{"type":"object","properties":{"after":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.timeout.after","typeLabel":"string"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.timeout.steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.timeout.steps","typeLabel":"object"}},"required":["after","steps"],"additionalProperties":false,"description":"Required since 2026-10-11: a wait always has a time limit. Bundled: a timeout path cannot exist without a duration.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.timeout","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.10","typeLabel":"object"},{"type":"object","required":["type","branches","else"],"properties":{"type":{"type":"string","enum":["condition"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.type","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"when":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].when.additionalProperties","typeLabel":"any"},"description":"NON-nullable filter AST, LOOSE mode (predicate-only, never compiled to ES): leaf paths people.* / company.* / record.\u003cslug> / ai.\u003coutput_key> / api.\u003coutput_key>.\u003cpath>; a path missing from the record's playtable makes the leaf false.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].when","typeLabel":"object"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].steps","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new branches, carry on kept ones. The fired branch id lands on the condition task result.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].id","typeLabel":"integer"},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor caption.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label","typeLabel":"string | null"}},"required":["when","steps"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":9,"description":"1..9 branches, evaluated in order, first match wins.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.branches","typeLabel":"object[]"},"else":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.else.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.else","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.11","typeLabel":"object"},{"type":"object","required":["type","branches"],"properties":{"type":{"type":"string","enum":["ab_test"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.type","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"weight":{"type":"integer","minimum":1,"description":"Relative weight (int >= 1; need not sum to 100). Record assigned by crc32(record.sid) mod sum(weights) - see workflow_versions.md ab_test algorithm.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].weight","typeLabel":"integer"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].steps","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new arms, carry on kept ones. The assigned arm id lands on the ab_test task result.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].id","typeLabel":"integer"},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption (\"Variant A\").","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor caption (\"Variant A\").","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label","typeLabel":"string | null"}},"required":["weight","steps"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches.items.[INDEX]","typeLabel":"object"},"minItems":2,"maxItems":9,"description":"2..9 weighted arms; the record is assigned deterministically by hashing its sid into the weight distribution. No `else`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.branches","typeLabel":"object[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.12","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["end"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.13","typeLabel":"object"},{"type":"object","required":["type","method","url"],"properties":{"type":{"type":"string","enum":["api_call"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.type","typeLabel":"enum\u003cstring>"},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.method","typeLabel":"enum\u003cstring>"},"url":{"type":"string","minLength":1,"maxLength":2048,"description":"https-only (publish check); a template - variables may stand in the path and the query.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.url","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.name","typeLabel":"string | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":1024,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","maxLength":1024,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.headers.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.headers","typeLabel":"object | null"},"query":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.query.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.query.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.query.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.query.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.query","typeLabel":"object | null"},"body":{"oneOf":[{"type":"string","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.body.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.body","typeLabel":"string | null"},"provider_connection_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.provider_connection_sid.oneOf.0","typeLabel":"string"},{"type":"null","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.provider_connection_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.provider_connection_sid","typeLabel":"string | null"},"timeout_secs":{"oneOf":[{"type":"integer","minimum":1,"maximum":120,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.timeout_secs.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":120,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.timeout_secs.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.timeout_secs","typeLabel":"integer | null"},"retry_on_error":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.retry_on_error.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.retry_on_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.retry_on_error","typeLabel":"boolean | null"},"remove_empty_values":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.remove_empty_values.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.remove_empty_values.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.remove_empty_values","typeLabel":"boolean | null"},"output_key":{"oneOf":[{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.output_key.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.output_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14.output_key","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.14","typeLabel":"object"},{"type":"object","required":["type","prompt","output_key"],"properties":{"type":{"type":"string","enum":["ask_ai"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.type","typeLabel":"enum\u003cstring>"},"prompt":{"type":"string","minLength":1,"maxLength":8000,"description":"Same variable namespaces as message templates.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.prompt","typeLabel":"string"},"output_key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Slug, unique within the version (publish check) - later steps read {{ai.\u003coutput_key>}} / condition leaves on ai.\u003coutput_key>.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.output_key","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.name","typeLabel":"string | null"},"preset_sid":{"oneOf":[{"type":"string","description":"gtm-api preset for the AI call; null = team default.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.preset_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"gtm-api preset for the AI call; null = team default.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.preset_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15.preset_sid","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.15","typeLabel":"object"},{"type":"object","required":["type","title"],"properties":{"type":{"type":"string","enum":["manual_task"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.title","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.name","typeLabel":"string | null"},"instructions":{"oneOf":[{"type":"string","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.instructions.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16.instructions","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.16","typeLabel":"object"},{"type":"object","required":["type","target_workflow_sid"],"properties":{"type":{"type":"string","enum":["move_to_workflow"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.type","typeLabel":"enum\u003cstring>"},"target_workflow_sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_wf_","description":"Enroll the person into this campaign (wf_wf_…); reuses the existing record per the re-entry policy. THIS record then completes - terminal-for-this-record.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.target_workflow_sid","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.name","typeLabel":"string | null"},"mode":{"oneOf":[{"type":"string","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17.mode","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.17","typeLabel":"object"},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["add_tag"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.type","typeLabel":"enum\u003cstring>"},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.tag_sids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) attached to the person mid-flow, then falls through.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.tag_sids","typeLabel":"string[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.18","typeLabel":"object"},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["remove_tag"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.type","typeLabel":"enum\u003cstring>"},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.tag_sids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) detached from the person mid-flow, then falls through.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.tag_sids","typeLabel":"string[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.19","typeLabel":"object"},{"type":"object","required":["type","field_slug","value"],"properties":{"type":{"type":"string","enum":["set_field"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.type","typeLabel":"enum\u003cstring>"},"field_slug":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Playtable field slug to write (pipeline_stage is a scalar_select field).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.field_slug","typeLabel":"string"},"value":{"oneOf":[{"type":"string","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value.oneOf.0","typeLabel":"string"},{"type":"number","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value.oneOf.2","typeLabel":"boolean"},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value.oneOf.3","typeLabel":"any"},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value.oneOf.4","typeLabel":"any"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.value","typeLabel":"string · number · boolean · any · any"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.20","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["change_sender"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.name","typeLabel":"string | null"},"sender_profile_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.sender_profile_sid.oneOf.0","typeLabel":"string"},{"type":"null","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top.","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.sender_profile_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.sender_profile_sid","typeLabel":"string | null"},"rotation":{"oneOf":[{"type":"string","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check).","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.rotation.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check).","uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.rotation.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21.rotation","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX].oneOf.21","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].item.draft_steps.items.[INDEX]","typeLabel":"object"},"description":"Working copy of the step document (chain-and-blocks v2); step ids always present on read (server-assigned). Not executable until published. Max 100 steps incl. nested / 512 KB.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.draft_steps","typeLabel":"object[]"},"schedule":{"oneOf":[{"type":"object","properties":{"timeblocks":{"type":"array","items":{"type":"object","properties":{"dow":{"type":"integer","minimum":0,"maximum":6,"description":"Day of week, 0=Sunday … 6=Saturday (legacy Carbon dayOfWeek convention).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timeblocks.items.[INDEX].dow","typeLabel":"integer"},"start_minute":{"type":"integer","minimum":0,"maximum":1439,"description":"Minutes from local midnight (legacy key: min).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timeblocks.items.[INDEX].start_minute","typeLabel":"integer"},"end_minute":{"type":"integer","minimum":1,"maximum":1440,"description":"Minutes from local midnight; must be > start_minute (server-validated). Legacy key: max.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timeblocks.items.[INDEX].end_minute","typeLabel":"integer"}},"required":["dow","start_minute","end_minute"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timeblocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timeblocks","typeLabel":"object[]"},"timezone":{"type":"string","description":"IANA tz name - base timezone for the blocks.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.timezone","typeLabel":"string"},"use_people_timezone":{"type":"boolean","description":"Resolve blocks in the person's timezone when known, falling back to `timezone`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0.use_people_timezone","typeLabel":"boolean"}},"required":["timeblocks","timezone","use_people_timezone"],"description":"The campaign's sending windows, the one send-window gate: null = any time (gtm-api's per-account limits still pace the sends). A sender profile carries no window of its own (founder 2026-09-22).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"timeblocks":{"type":"array","items":{"type":"object","properties":{"dow":{"type":"integer","minimum":0,"maximum":6,"description":"Day of week, 0=Sunday … 6=Saturday (legacy Carbon dayOfWeek convention)."},"start_minute":{"type":"integer","minimum":0,"maximum":1439,"description":"Minutes from local midnight (legacy key: min)."},"end_minute":{"type":"integer","minimum":1,"maximum":1440,"description":"Minutes from local midnight; must be > start_minute (server-validated). Legacy key: max."}},"required":["dow","start_minute","end_minute"],"additionalProperties":false}},"timezone":{"type":"string","description":"IANA tz name - base timezone for the blocks."},"use_people_timezone":{"type":"boolean","description":"Resolve blocks in the person's timezone when known, falling back to `timezone`."}},"required":["timeblocks","timezone","use_people_timezone"],"description":"The campaign's sending windows, the one send-window gate: null = any time (gtm-api's per-account limits still pace the sends). A sender profile carries no window of its own (founder 2026-09-22).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.schedule","typeLabel":"object | null"},"on_reply":{"type":"string","enum":["autopilot","copilot","stop","continue"],"description":"What a reply does (default copilot): autopilot = the records pause and the AI SDR answers within its caps; copilot = the records pause and the AI SDR drafts for approval; stop = the records pause and the thread is the human's; continue = the records keep sending (nurture), the agent stays out. Reply scope = all the person's live records. Frozen onto each thread the workflow acts on as its automation_ref mode (autopilot | copilot | off).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.on_reply","typeLabel":"enum\u003cstring>"},"agent_sid":{"oneOf":[{"type":"string","description":"The AI SDR picked for this workflow (ub_ag_…, block 10 step 10.2): the agent that works the threads it starts, every setting on the agent itself (update_agent). Null = its home table's pick, else the team's default. The campaign's own setup of before (ai_sdr_setup, 2026-10-12 to 2026-10-30) became an agent of its own in step 10.3.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.agent_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The AI SDR picked for this workflow (ub_ag_…, block 10 step 10.2): the agent that works the threads it starts, every setting on the agent itself (update_agent). Null = its home table's pick, else the team's default. The campaign's own setup of before (ai_sdr_setup, 2026-10-12 to 2026-10-30) became an agent of its own in step 10.3.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.agent_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.agent_sid","typeLabel":"string | null"},"sender_profile_sids":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].item.sender_profile_sids.items.[INDEX]","typeLabel":"string"},"description":"ub_sp_… each - the sender pool; a record is pinned to ONE sender at enrollment by rotation_strategy.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.sender_profile_sids","typeLabel":"string[]"},"rotation_strategy":{"type":"string","enum":["fair","random","new_sender","prior_engagement"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.rotation_strategy","typeLabel":"enum\u003cstring>"},"priority":{"type":"integer","description":"1..3 (low / medium / high) - the workflow's SHARE of a sender profile it shares with other workflows (three actions of high for one of low), never a rank (see ./workflow_tasks.md).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.priority","typeLabel":"integer"},"created_by":{"type":"object","properties":{"actor_type":{"type":"string","enum":["user","support","api_key","system","agent"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.actor_type","typeLabel":"enum\u003cstring>"},"actor_sid":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.actor_sid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.actor_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.actor_sid","typeLabel":"string | null"},"team_sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.team_sid","typeLabel":"string"},"permissions":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.created_by.permissions.additionalProperties","typeLabel":"any"},"description":"Internal audit context: the grant set the actor held at write time. Not a contract.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by.permissions","typeLabel":"object"},"actor_name":{"oneOf":[{"type":"string","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job.","uniqueKey":"\\items.items.[INDEX].item.created_by.actor_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job.","uniqueKey":"\\items.items.[INDEX].item.created_by.actor_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.created_by.actor_name","typeLabel":"string | null"},"oauth_client_sid":{"oneOf":[{"type":"string","description":"The acting OAuth client (id_oc_*); null off the OAuth path.","uniqueKey":"\\items.items.[INDEX].item.created_by.oauth_client_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The acting OAuth client (id_oc_*); null off the OAuth path.","uniqueKey":"\\items.items.[INDEX].item.created_by.oauth_client_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.created_by.oauth_client_sid","typeLabel":"string | null"},"reason":{"oneOf":[{"type":"string","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise.","uniqueKey":"\\items.items.[INDEX].item.created_by.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise.","uniqueKey":"\\items.items.[INDEX].item.created_by.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.created_by.reason","typeLabel":"string | null"},"cluster_id":{"oneOf":[{"type":"integer","description":"Internal audit context: the cluster that served the write.","uniqueKey":"\\items.items.[INDEX].item.created_by.cluster_id.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Internal audit context: the cluster that served the write.","uniqueKey":"\\items.items.[INDEX].item.created_by.cluster_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.created_by.cluster_id","typeLabel":"integer | null"},"trace_id":{"oneOf":[{"type":"string","description":"Internal audit context: the trace id of the request that wrote the row.","uniqueKey":"\\items.items.[INDEX].item.created_by.trace_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Internal audit context: the trace id of the request that wrote the row.","uniqueKey":"\\items.items.[INDEX].item.created_by.trace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.created_by.trace_id","typeLabel":"string | null"}},"required":["actor_type","actor_sid","team_sid","permissions"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_by","typeLabel":"object"},"deleted_by":{"oneOf":[{"type":"object","properties":{"actor_type":{"type":"string","enum":["user","support","api_key","system","agent"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_type","typeLabel":"enum\u003cstring>"},"actor_sid":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_sid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_sid","typeLabel":"string | null"},"team_sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.team_sid","typeLabel":"string"},"permissions":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.permissions.additionalProperties","typeLabel":"any"},"description":"Internal audit context: the grant set the actor held at write time. Not a contract.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.permissions","typeLabel":"object"},"actor_name":{"oneOf":[{"type":"string","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.actor_name","typeLabel":"string | null"},"oauth_client_sid":{"oneOf":[{"type":"string","description":"The acting OAuth client (id_oc_*); null off the OAuth path.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.oauth_client_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The acting OAuth client (id_oc_*); null off the OAuth path.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.oauth_client_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.oauth_client_sid","typeLabel":"string | null"},"reason":{"oneOf":[{"type":"string","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.reason","typeLabel":"string | null"},"cluster_id":{"oneOf":[{"type":"integer","description":"Internal audit context: the cluster that served the write.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.cluster_id.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Internal audit context: the cluster that served the write.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.cluster_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.cluster_id","typeLabel":"integer | null"},"trace_id":{"oneOf":[{"type":"string","description":"Internal audit context: the trace id of the request that wrote the row.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.trace_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Internal audit context: the trace id of the request that wrote the row.","uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.trace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0.trace_id","typeLabel":"string | null"}},"required":["actor_type","actor_sid","team_sid","permissions"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"actor_type":{"type":"string","enum":["user","support","api_key","system","agent"]},"actor_sid":{"oneOf":[{"type":"string"},{"type":"null"}]},"team_sid":{"type":"string"},"actor_name":{"oneOf":[{"type":"string","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job."},{"type":"null","description":"The OAuth client that acted (\"Claude\", \"n8n\"); null for a user, an API key or a system job."}]},"oauth_client_sid":{"oneOf":[{"type":"string","description":"The acting OAuth client (id_oc_*); null off the OAuth path."},{"type":"null","description":"The acting OAuth client (id_oc_*); null off the OAuth path."}]},"reason":{"oneOf":[{"type":"string","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise."},{"type":"null","description":"Why a system actor wrote the row (snapshot_capture_job, ...); null otherwise."}]},"permissions":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"Internal audit context: the grant set the actor held at write time. Not a contract."},"cluster_id":{"oneOf":[{"type":"integer","description":"Internal audit context: the cluster that served the write."},{"type":"null","description":"Internal audit context: the cluster that served the write."}]},"trace_id":{"oneOf":[{"type":"string","description":"Internal audit context: the trace id of the request that wrote the row."},{"type":"null","description":"Internal audit context: the trace id of the request that wrote the row."}]}},"required":["actor_type","actor_sid","team_sid","permissions"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_by","typeLabel":"object | null"},"created_at":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.created_at","typeLabel":"string"},"updated_at":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.updated_at","typeLabel":"string"},"deleted_at":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_at.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item.deleted_at","typeLabel":"string | null"}},"required":["sid","team_sid","name","description","status","published_version_sid","draft_steps","schedule","on_reply","agent_sid","sender_profile_sids","rotation_strategy","priority","created_by","deleted_by","created_at","updated_at","deleted_at"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].item","typeLabel":"object"},"included":{"type":"object","properties":{"published_version":{"oneOf":[{"type":"object","properties":{"sid":{"type":"string","description":"wf_vr_….","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.sid","typeLabel":"string"},"workflow_sid":{"type":"string","description":"wf_wf_… parent.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.workflow_sid","typeLabel":"string"},"version":{"type":"integer","description":"Per-workflow sequence, >=1 (max+1 at publish).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.version","typeLabel":"integer"},"steps":{"type":"array","items":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_send_connection_request"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.name","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.message.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.message","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_message"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":8000,"description":"Message template (same namespaces as all templates).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.message","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_inmail"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":8000,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.message","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.name","typeLabel":"string | null"},"subject":{"oneOf":[{"type":"string","maxLength":200,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.subject.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.subject.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.subject","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_visit_profile"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","required":["type","skills_count"],"properties":{"type":{"type":"string","enum":["linkedin_endorse_skills"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"skills_count":{"type":"integer","minimum":1,"maximum":10,"description":"Endorse the person's top N listed skills, 1..10.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.skills_count","typeLabel":"integer"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_withdraw_connection_request"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_like_latest_post"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","required":["type","comment"],"properties":{"type":{"type":"string","enum":["linkedin_comment_latest_post"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.type","typeLabel":"enum\u003cstring>"},"comment":{"type":"string","minLength":1,"maxLength":1250,"description":"Comment template on the person's latest post, 1..1250 rendered; same namespaces as message templates.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.comment","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7.required_fields","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","required":["type","subject","body"],"properties":{"type":{"type":"string","enum":["email_send"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.type","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.subject","typeLabel":"string"},"body":{"type":"string","minLength":1,"maxLength":100000,"description":"HTML body template.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.body","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.name","typeLabel":"string | null"},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.refs.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.refs","typeLabel":"string[]"},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields.oneOf.0.on_missing","typeLabel":"enum\u003cstring>"}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.required_fields","typeLabel":"object | null"},"email_field":{"oneOf":[{"type":"string","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.email_field.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.email_field.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.email_field","typeLabel":"string | null"},"cc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.cc.oneOf.0.items.[INDEX]","typeLabel":"string\u003cemail>"},"maxItems":5,"description":"Up to 5 literal copy addresses.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.cc.oneOf.0","typeLabel":"string\u003cemail>[]"},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal copy addresses.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.cc.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.cc","typeLabel":"string\u003cemail>[] | null"},"bcc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.bcc.oneOf.0.items.[INDEX]","typeLabel":"string\u003cemail>"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.bcc.oneOf.0","typeLabel":"string\u003cemail>[]"},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.bcc.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.bcc","typeLabel":"string\u003cemail>[] | null"},"attachments":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX].sid","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"required":["sid","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["sid","name"],"additionalProperties":false},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.attachments","typeLabel":"object[] | null"},"reply_in_thread":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.reply_in_thread.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.reply_in_thread.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.reply_in_thread","typeLabel":"boolean | null"},"track_opens":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_opens.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_opens.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_opens","typeLabel":"boolean | null"},"track_clicks":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_clicks.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_clicks.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.track_clicks","typeLabel":"boolean | null"},"unsubscribe_link":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.unsubscribe_link.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.unsubscribe_link.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8.unsubscribe_link","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","required":["type","for"],"properties":{"type":{"type":"string","enum":["wait"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.type","typeLabel":"enum\u003cstring>"},"for":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.for","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","required":["type","event","timeout"],"properties":{"type":{"type":"string","enum":["wait_for_event"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.type","typeLabel":"enum\u003cstring>"},"event":{"type":"string","enum":["linkedin_connection_request_accepted","email_opened","email_link_clicked"],"description":"Event observed via the activities ingest.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.event","typeLabel":"enum\u003cstring>"},"timeout":{"type":"object","properties":{"after":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.timeout.after","typeLabel":"string"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.timeout.steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.timeout.steps","typeLabel":"object"}},"required":["after","steps"],"additionalProperties":false,"description":"Required since 2026-10-11: a wait always has a time limit. Bundled: a timeout path cannot exist without a duration.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.timeout","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.10","typeLabel":"object"},{"type":"object","required":["type","branches","else"],"properties":{"type":{"type":"string","enum":["condition"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.type","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"when":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].when.additionalProperties","typeLabel":"any"},"description":"NON-nullable filter AST, LOOSE mode (predicate-only, never compiled to ES): leaf paths people.* / company.* / record.\u003cslug> / ai.\u003coutput_key> / api.\u003coutput_key>.\u003cpath>; a path missing from the record's playtable makes the leaf false.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].when","typeLabel":"object"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].steps","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new branches, carry on kept ones. The fired branch id lands on the condition task result.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].id","typeLabel":"integer"},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor caption.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX].label","typeLabel":"string | null"}},"required":["when","steps"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":9,"description":"1..9 branches, evaluated in order, first match wins.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.branches","typeLabel":"object[]"},"else":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.else.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.else","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.11","typeLabel":"object"},{"type":"object","required":["type","branches"],"properties":{"type":{"type":"string","enum":["ab_test"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.type","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"weight":{"type":"integer","minimum":1,"description":"Relative weight (int >= 1; need not sum to 100). Record assigned by crc32(record.sid) mod sum(weights) - see workflow_versions.md ab_test algorithm.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].weight","typeLabel":"integer"},"steps":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].steps.additionalProperties","typeLabel":"any"},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].steps","typeLabel":"object"},"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new arms, carry on kept ones. The assigned arm id lands on the ab_test task result.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].id","typeLabel":"integer"},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption (\"Variant A\").","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor caption (\"Variant A\").","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX].label","typeLabel":"string | null"}},"required":["weight","steps"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches.items.[INDEX]","typeLabel":"object"},"minItems":2,"maxItems":9,"description":"2..9 weighted arms; the record is assigned deterministically by hashing its sid into the weight distribution. No `else`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.branches","typeLabel":"object[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.12","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["end"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.13","typeLabel":"object"},{"type":"object","required":["type","method","url"],"properties":{"type":{"type":"string","enum":["api_call"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.type","typeLabel":"enum\u003cstring>"},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.method","typeLabel":"enum\u003cstring>"},"url":{"type":"string","minLength":1,"maxLength":2048,"description":"https-only (publish check); a template - variables may stand in the path and the query.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.url","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.name","typeLabel":"string | null"},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":1024,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.headers.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","maxLength":1024,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.headers.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.headers","typeLabel":"object | null"},"query":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.query.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.query.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.query.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.query.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.query","typeLabel":"object | null"},"body":{"oneOf":[{"type":"string","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.body.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.body","typeLabel":"string | null"},"provider_connection_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.provider_connection_sid.oneOf.0","typeLabel":"string"},{"type":"null","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.provider_connection_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.provider_connection_sid","typeLabel":"string | null"},"timeout_secs":{"oneOf":[{"type":"integer","minimum":1,"maximum":120,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.timeout_secs.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":120,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.timeout_secs.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.timeout_secs","typeLabel":"integer | null"},"retry_on_error":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.retry_on_error.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.retry_on_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.retry_on_error","typeLabel":"boolean | null"},"remove_empty_values":{"oneOf":[{"type":"boolean","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.remove_empty_values.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.remove_empty_values.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.remove_empty_values","typeLabel":"boolean | null"},"output_key":{"oneOf":[{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.output_key.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.output_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14.output_key","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.14","typeLabel":"object"},{"type":"object","required":["type","prompt","output_key"],"properties":{"type":{"type":"string","enum":["ask_ai"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.type","typeLabel":"enum\u003cstring>"},"prompt":{"type":"string","minLength":1,"maxLength":8000,"description":"Same variable namespaces as message templates.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.prompt","typeLabel":"string"},"output_key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Slug, unique within the version (publish check) - later steps read {{ai.\u003coutput_key>}} / condition leaves on ai.\u003coutput_key>.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.output_key","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.name","typeLabel":"string | null"},"preset_sid":{"oneOf":[{"type":"string","description":"gtm-api preset for the AI call; null = team default.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.preset_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"gtm-api preset for the AI call; null = team default.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.preset_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15.preset_sid","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.15","typeLabel":"object"},{"type":"object","required":["type","title"],"properties":{"type":{"type":"string","enum":["manual_task"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.title","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.name","typeLabel":"string | null"},"instructions":{"oneOf":[{"type":"string","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.instructions.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16.instructions","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.16","typeLabel":"object"},{"type":"object","required":["type","target_workflow_sid"],"properties":{"type":{"type":"string","enum":["move_to_workflow"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.type","typeLabel":"enum\u003cstring>"},"target_workflow_sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_wf_","description":"Enroll the person into this campaign (wf_wf_…); reuses the existing record per the re-entry policy. THIS record then completes - terminal-for-this-record.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.target_workflow_sid","typeLabel":"string"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.name","typeLabel":"string | null"},"mode":{"oneOf":[{"type":"string","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17.mode","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.17","typeLabel":"object"},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["add_tag"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.type","typeLabel":"enum\u003cstring>"},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.tag_sids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) attached to the person mid-flow, then falls through.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.tag_sids","typeLabel":"string[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.18","typeLabel":"object"},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["remove_tag"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.type","typeLabel":"enum\u003cstring>"},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.tag_sids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) detached from the person mid-flow, then falls through.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.tag_sids","typeLabel":"string[]"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.19","typeLabel":"object"},{"type":"object","required":["type","field_slug","value"],"properties":{"type":{"type":"string","enum":["set_field"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.type","typeLabel":"enum\u003cstring>"},"field_slug":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Playtable field slug to write (pipeline_stage is a scalar_select field).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.field_slug","typeLabel":"string"},"value":{"oneOf":[{"type":"string","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value.oneOf.0","typeLabel":"string"},{"type":"number","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value.oneOf.2","typeLabel":"boolean"},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value.oneOf.3","typeLabel":"any"},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value.oneOf.4","typeLabel":"any"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.value","typeLabel":"string · number · boolean · any · any"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20.name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.20","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["change_sender"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.type","typeLabel":"enum\u003cstring>"},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.id","typeLabel":"integer"},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Editor label.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.name","typeLabel":"string | null"},"sender_profile_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.sender_profile_sid.oneOf.0","typeLabel":"string"},{"type":"null","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.sender_profile_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.sender_profile_sid","typeLabel":"string | null"},"rotation":{"oneOf":[{"type":"string","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check).","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.rotation.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check).","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.rotation.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21.rotation","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX].oneOf.21","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps.items.[INDEX]","typeLabel":"object"},"description":"Immutable snapshot of the step document at publish.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps","typeLabel":"object[]"},"steps_count":{"type":"integer","description":"Denormalized total step count (incl. nested).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.steps_count","typeLabel":"integer"},"entry_step_id":{"type":"integer","description":"= steps[0].id - enrollment starts here.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.entry_step_id","typeLabel":"integer"},"created_at":{"type":"string","description":"ISO 8601 UTC - publish moment.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0.created_at","typeLabel":"string"}},"required":["sid","workflow_sid","version","steps","steps_count","entry_step_id","created_at"],"description":"WorkflowVersionDomain (1:1 via published_version_sid; heavy - full steps JSON) - see ./workflow_versions.md.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"sid":{"type":"string","description":"wf_vr_…."},"workflow_sid":{"type":"string","description":"wf_wf_… parent."},"version":{"type":"integer","description":"Per-workflow sequence, >=1 (max+1 at publish)."},"steps":{"type":"array","items":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_send_connection_request"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"message":{"oneOf":[{"type":"string","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}."},{"type":"null","description":"Invite note - max 300 RENDERED chars (server-checked); null/omitted = blank invite. Template namespaces: {{people.*}} {{company.*}} {{record.\u003cslug>}} {{ai.\u003ckey>}}; per-variable fallback {{record.slug|text}}."}]},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_message"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"message":{"type":"string","minLength":1,"maxLength":8000,"description":"Message template (same namespaces as all templates)."},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["linkedin_send_inmail"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"subject":{"oneOf":[{"type":"string","maxLength":200},{"type":"null","maxLength":200}]},"message":{"type":"string","minLength":1,"maxLength":8000},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_visit_profile"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]}},"additionalProperties":false},{"type":"object","required":["type","skills_count"],"properties":{"type":{"type":"string","enum":["linkedin_endorse_skills"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"skills_count":{"type":"integer","minimum":1,"maximum":10,"description":"Endorse the person's top N listed skills, 1..10."}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_withdraw_connection_request"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["linkedin_like_latest_post"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]}},"additionalProperties":false},{"type":"object","required":["type","comment"],"properties":{"type":{"type":"string","enum":["linkedin_comment_latest_post"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"comment":{"type":"string","minLength":1,"maxLength":1250,"description":"Comment template on the person's latest post, 1..1250 rendered; same namespaces as message templates."},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false}]}},"additionalProperties":false},{"type":"object","required":["type","subject","body"],"properties":{"type":{"type":"string","enum":["email_send"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"subject":{"type":"string","minLength":1,"maxLength":255},"body":{"type":"string","minLength":1,"maxLength":100000,"description":"HTML body template."},"required_fields":{"oneOf":[{"type":"object","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false},{"type":"null","properties":{"refs":{"type":"array","items":{"type":"string","maxLength":160,"pattern":"^(people|company|record|ai|api)\\.[a-z][a-z0-9_]*(\\.[a-z0-9_]+)*$"},"maxItems":20,"description":"0..20 bare template refs required on top of the text's own variables (people.first_name, company.name, record.\u003cslug>, company.record.\u003cslug>, ai.\u003ckey>)."},"on_missing":{"type":"string","enum":["fail","skip"],"description":"fail | skip - what to do when a value the text needs is empty at task time; no policy (null) sends the text as it renders."}},"required":["refs","on_missing"],"additionalProperties":false}]},"email_field":{"oneOf":[{"type":"string","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one."},{"type":"null","description":"Which address the send uses: any | work_email | personal_email; omitted or any = the best one."}]},"cc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal copy addresses."},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal copy addresses."}]},"bcc":{"oneOf":[{"type":"array","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses."},{"type":"null","items":{"type":"string","maxLength":320,"format":"email"},"maxItems":5,"description":"Up to 5 literal blind-copy addresses."}]},"attachments":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["sid","name"],"additionalProperties":false},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email."},{"type":"null","items":{"type":"object","properties":{"sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_at_"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["sid","name"],"additionalProperties":false},"maxItems":5,"description":"Up to 5 library files ({sid: wf_at_…, name}) sent with the email."}]},"reply_in_thread":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"track_opens":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"track_clicks":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"unsubscribe_link":{"oneOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false},{"type":"object","required":["type","for"],"properties":{"type":{"type":"string","enum":["wait"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"for":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d."}},"additionalProperties":false},{"type":"object","required":["type","event","timeout"],"properties":{"type":{"type":"string","enum":["wait_for_event"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"event":{"type":"string","enum":["linkedin_connection_request_accepted","email_opened","email_link_clicked"],"description":"Event observed via the activities ingest."},"timeout":{"type":"object","properties":{"after":{"type":"string","pattern":"^[1-9][0-9]*[mhd]$","description":"Duration string: ^[1-9][0-9]*(m|h|d)$ - e.g. \"45m\", \"12h\", \"14d\". Publish lints the range 1m..365d."},"steps":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object."}},"required":["after","steps"],"additionalProperties":false,"description":"Required since 2026-10-11: a wait always has a time limit. Bundled: a timeout path cannot exist without a duration."}},"additionalProperties":false},{"type":"object","required":["type","branches","else"],"properties":{"type":{"type":"string","enum":["condition"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"branches":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new branches, carry on kept ones. The fired branch id lands on the condition task result."},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption."},{"type":"null","maxLength":255,"description":"Editor caption."}]},"when":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"NON-nullable filter AST, LOOSE mode (predicate-only, never compiled to ES): leaf paths people.* / company.* / record.\u003cslug> / ai.\u003coutput_key> / api.\u003coutput_key>.\u003cpath>; a path missing from the record's playtable makes the leaf false."},"steps":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object."}},"required":["when","steps"],"additionalProperties":false},"minItems":1,"maxItems":9,"description":"1..9 branches, evaluated in order, first match wins."},"else":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object."}},"additionalProperties":false},{"type":"object","required":["type","branches"],"properties":{"type":{"type":"string","enum":["ab_test"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"branches":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Server-assigned - SAME id-space as step ids; omit on new arms, carry on kept ones. The assigned arm id lands on the ab_test task result."},"label":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor caption (\"Variant A\")."},{"type":"null","maxLength":255,"description":"Editor caption (\"Variant A\")."}]},"weight":{"type":"integer","minimum":1,"description":"Relative weight (int >= 1; need not sum to 100). Record assigned by crc32(record.sid) mod sum(weights) - see workflow_versions.md ab_test algorithm."},"steps":{"type":"object","additionalProperties":{"oneOf":[{}]},"description":"Recursive node: the same object shape repeats here. A static OpenAPI document cannot express the cycle, so this level is documented as an open object."}},"required":["weight","steps"],"additionalProperties":false},"minItems":2,"maxItems":9,"description":"2..9 weighted arms; the record is assigned deterministically by hashing its sid into the weight distribution. No `else`."}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["end"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]}},"additionalProperties":false},{"type":"object","required":["type","method","url"],"properties":{"type":{"type":"string","enum":["api_call"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"]},"url":{"type":"string","minLength":1,"maxLength":2048,"description":"https-only (publish check); a template - variables may stand in the path and the query."},"headers":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":1024}},{"type":"null","additionalProperties":{"type":"string","maxLength":1024}}]},"query":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","maxLength":2048}},{"type":"null","additionalProperties":{"type":"string","maxLength":2048}}]},"body":{"oneOf":[{"type":"string","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE."},{"type":"null","maxLength":16000,"description":"JSON body template, variables inside quotes; null = the fixed payload; must be null on GET / DELETE."}]},"provider_connection_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth."},{"type":"null","minLength":18,"maxLength":18,"pattern":"^in_cn_","description":"A `custom` provider connection whose auth the integration platform injects at call time; null = no auth."}]},"timeout_secs":{"oneOf":[{"type":"integer","minimum":1,"maximum":120},{"type":"null","minimum":1,"maximum":120}]},"retry_on_error":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"remove_empty_values":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"output_key":{"oneOf":[{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept."},{"type":"null","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The answer's name for later steps (2026-10-11): a slug, unique within the version with the ask_ai keys; later steps read {{api.\u003coutput_key>.\u003cpath>}} and condition leaves filter on api.\u003coutput_key>.\u003cpath>; null = the answer is not kept."}]}},"additionalProperties":false},{"type":"object","required":["type","prompt","output_key"],"properties":{"type":{"type":"string","enum":["ask_ai"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"prompt":{"type":"string","minLength":1,"maxLength":8000,"description":"Same variable namespaces as message templates."},"output_key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Slug, unique within the version (publish check) - later steps read {{ai.\u003coutput_key>}} / condition leaves on ai.\u003coutput_key>."},"preset_sid":{"oneOf":[{"type":"string","description":"gtm-api preset for the AI call; null = team default."},{"type":"null","description":"gtm-api preset for the AI call; null = team default."}]}},"additionalProperties":false},{"type":"object","required":["type","title"],"properties":{"type":{"type":"string","enum":["manual_task"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"title":{"type":"string","minLength":1,"maxLength":255},"instructions":{"oneOf":[{"type":"string","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed."},{"type":"null","maxLength":4000,"description":"Rendered into the human todo; the journey waits until the task is completed."}]}},"additionalProperties":false},{"type":"object","required":["type","target_workflow_sid"],"properties":{"type":{"type":"string","enum":["move_to_workflow"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"target_workflow_sid":{"type":"string","minLength":18,"maxLength":18,"pattern":"^wf_wf_","description":"Enroll the person into this campaign (wf_wf_…); reuses the existing record per the re-entry policy. THIS record then completes - terminal-for-this-record."},"mode":{"oneOf":[{"type":"string","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10."},{"type":"null","enum":["from_start","from_current"],"description":"Re-entry mode when the person is ALREADY in the target (workflow_records.md, Re-entry): from_start (default; reset to the entry step) | from_current (resume the pinned step, else the entry step). A re-entry is loop-guarded at re_entered_count 10."}]}},"additionalProperties":false},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["add_tag"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) attached to the person mid-flow, then falls through."}},"additionalProperties":false},{"type":"object","required":["type","tag_sids"],"properties":{"type":{"type":"string","enum":["remove_tag"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"tag_sids":{"type":"array","items":{"type":"string","minLength":18,"maxLength":18,"pattern":"^cr_tg_"},"minItems":1,"maxItems":20,"description":"1..20 CRM tags (cr_tg_…) detached from the person mid-flow, then falls through."}},"additionalProperties":false},{"type":"object","required":["type","field_slug","value"],"properties":{"type":{"type":"string","enum":["set_field"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"field_slug":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Playtable field slug to write (pipeline_stage is a scalar_select field)."},"value":{"oneOf":[{"type":"string","description":"Scalar cell value (one cell; no arrays/objects); null clears the field."},{"type":"number","description":"Scalar cell value (one cell; no arrays/objects); null clears the field."},{"type":"boolean","description":"Scalar cell value (one cell; no arrays/objects); null clears the field."},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field."},{"description":"Scalar cell value (one cell; no arrays/objects); null clears the field."}]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["change_sender"]},"id":{"type":"integer","minimum":1,"description":"Server-assigned (workflows.step_id_seq). OMIT on new steps, CARRY verbatim on kept steps; always present on read."},"name":{"oneOf":[{"type":"string","maxLength":255,"description":"Editor label."},{"type":"null","maxLength":255,"description":"Editor label."}]},"sender_profile_sid":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top."},{"type":"null","minLength":18,"maxLength":18,"pattern":"^ub_sp_","description":"Explicit forward-only re-pin (ub_sp_…). Exactly one of sender_profile_sid / rotation (publish check). NOT a restart-from-top."}]},"rotation":{"oneOf":[{"type":"string","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check)."},{"type":"null","enum":["fair","random","new_sender","prior_engagement"],"description":"Re-pick the sender from the workflow pool by this strategy instead of a fixed sid. Exactly one of sender_profile_sid / rotation (publish check)."}]}},"additionalProperties":false}]},"description":"Immutable snapshot of the step document at publish."},"steps_count":{"type":"integer","description":"Denormalized total step count (incl. nested)."},"entry_step_id":{"type":"integer","description":"= steps[0].id - enrollment starts here."},"created_at":{"type":"string","description":"ISO 8601 UTC - publish moment."}},"required":["sid","workflow_sid","version","steps","steps_count","entry_step_id","created_at"],"description":"WorkflowVersionDomain (1:1 via published_version_sid; heavy - full steps JSON) - see ./workflow_versions.md.","uniqueKey":"\\items.items.[INDEX].included.published_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.published_version","typeLabel":"object | null"},"sources":{"type":"array","items":{"type":"object","properties":{"sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.sources.items.[INDEX].sid","typeLabel":"string"}},"required":["sid"],"uniqueKey":"\\items.items.[INDEX].included.sources.items.[INDEX]","typeLabel":"object"},"description":"WorkflowSourceDomain audience feeds (1:N, default 50, created_at ASC) - see ./workflow_sources.md.","uniqueKey":"\\items.items.[INDEX].included.sources","typeLabel":"object[]"},"records_counts":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.records_counts.total_count","typeLabel":"integer"},"groups":{"type":"object","properties":{"status":{"oneOf":[{"type":"object","description":"Journey funnel by WorkflowRecordStatusEnum: waiting_limit / blocked / active / waiting / paused_on_reply / paused_manual / paused_blocked / failed / completed / exited.","additionalProperties":{"type":"number","uniqueKey":"\\items.items.[INDEX].included.records_counts.groups.status.oneOf.0.additionalProperties","typeLabel":"number"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.records_counts.groups.status.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].included.records_counts.groups.status.oneOf.1.items.[INDEX]","typeLabel":"any"},"description":"Journey funnel by WorkflowRecordStatusEnum: waiting_limit / blocked / active / waiting / paused_on_reply / paused_manual / paused_blocked / failed / completed / exited.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.records_counts.groups.status.oneOf.1","typeLabel":"any[]"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.records_counts.groups.status","typeLabel":"object | any[]"}},"required":["status"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.records_counts.groups","typeLabel":"object"}},"required":["total_count","groups"],"description":"WorkflowRecordCounts over { workflow_sid: parent.sid } - the full-scope enrolled/active/replied/done snapshot for the editor header (§4.17a) - see ./workflow_records.md.","uniqueKey":"\\items.items.[INDEX].included.records_counts","typeLabel":"object"},"forecast":{"oneOf":[{"type":"object","properties":{"scheduled_count":{"type":"integer","minimum":0,"description":"Send-class tasks scheduled on a sender profile.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.scheduled_count","typeLabel":"integer"},"sender_profiles_count":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.sender_profiles_count","typeLabel":"integer"},"days_to_drain":{"oneOf":[{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Days from today until the last planned send leaves (1 = everything today); null when nothing is planned.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.days_to_drain.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"exclusiveMinimum":true,"description":"Days from today until the last planned send leaves (1 = everything today); null when nothing is planned.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.days_to_drain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.days_to_drain","typeLabel":"integer | null"},"drains_on":{"oneOf":[{"type":"string","description":"YYYY-MM-DD (UTC) of the last send; null past the horizon.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.drains_on.oneOf.0","typeLabel":"string"},{"type":"null","description":"YYYY-MM-DD (UTC) of the last send; null past the horizon.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.drains_on.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.drains_on","typeLabel":"string | null"},"over_horizon":{"type":"boolean","description":"The walk stopped at a year: read \"over a year\".","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.over_horizon","typeLabel":"boolean"},"buckets":{"type":"array","items":{"type":"object","properties":{"sender_profile_sid":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].sender_profile_sid","typeLabel":"string"},"type":{"type":"string","description":"The send-class task type.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].type","typeLabel":"string"},"scheduled_count":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].scheduled_count","typeLabel":"integer"},"daily_share":{"type":"integer","minimum":0,"description":"This workflow's share of the (sender profile, type) daily cap, by priority (the sender profile pick's split).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].daily_share","typeLabel":"integer"},"days_to_drain":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].days_to_drain","typeLabel":"integer"},"over_horizon":{"type":"boolean","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX].over_horizon","typeLabel":"boolean"}},"required":["sender_profile_sid","type","scheduled_count","daily_share","days_to_drain","over_horizon"],"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.buckets","typeLabel":"object[]"},"timeline":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD, UTC.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline.items.[INDEX].day","typeLabel":"string"},"planned":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline.items.[INDEX].planned","typeLabel":"integer"},"by_type":{"type":"object","additionalProperties":{"type":"integer","minimum":0,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline.items.[INDEX].by_type.additionalProperties","typeLabel":"integer"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline.items.[INDEX].by_type","typeLabel":"object"}},"required":["day","planned","by_type"],"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline.items.[INDEX]","typeLabel":"object"},"description":"The first 60 days; every bucket added up per day.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0.timeline","typeLabel":"object[]"}},"required":["scheduled_count","sender_profiles_count","days_to_drain","drains_on","over_horizon","buckets","timeline"],"description":"How long the planned sends take at the current limits (TASK_EXECUTION_ARCHITECTURE.md §6.5, D41): the scheduled tasks per (sender profile, type) laid over the days ahead at the workflow's priority share of the sender profile's daily cap, closed days skipped. Computed on read from counts, never stored; rows held at the door are not in it.","uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"scheduled_count":{"type":"integer","minimum":0,"description":"Send-class tasks scheduled on a sender profile."},"sender_profiles_count":{"type":"integer","minimum":0},"days_to_drain":{"oneOf":[{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Days from today until the last planned send leaves (1 = everything today); null when nothing is planned."},{"type":"null","minimum":0,"exclusiveMinimum":true,"description":"Days from today until the last planned send leaves (1 = everything today); null when nothing is planned."}]},"drains_on":{"oneOf":[{"type":"string","description":"YYYY-MM-DD (UTC) of the last send; null past the horizon."},{"type":"null","description":"YYYY-MM-DD (UTC) of the last send; null past the horizon."}]},"over_horizon":{"type":"boolean","description":"The walk stopped at a year: read \"over a year\"."},"buckets":{"type":"array","items":{"type":"object","properties":{"sender_profile_sid":{"type":"string"},"type":{"type":"string","description":"The send-class task type."},"scheduled_count":{"type":"integer","minimum":0},"daily_share":{"type":"integer","minimum":0,"description":"This workflow's share of the (sender profile, type) daily cap, by priority (the sender profile pick's split)."},"days_to_drain":{"type":"integer","minimum":0},"over_horizon":{"type":"boolean"}},"required":["sender_profile_sid","type","scheduled_count","daily_share","days_to_drain","over_horizon"]}},"timeline":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD, UTC."},"planned":{"type":"integer","minimum":0},"by_type":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}},"required":["day","planned","by_type"]},"description":"The first 60 days; every bucket added up per day."}},"required":["scheduled_count","sender_profiles_count","days_to_drain","drains_on","over_horizon","buckets","timeline"],"description":"How long the planned sends take at the current limits (TASK_EXECUTION_ARCHITECTURE.md §6.5, D41): the scheduled tasks per (sender profile, type) laid over the days ahead at the workflow's priority share of the sender profile's daily cap, closed days skipped. Computed on read from counts, never stored; rows held at the door are not in it.","uniqueKey":"\\items.items.[INDEX].included.forecast.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].included.forecast","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].included","typeLabel":"object"}},"required":["item","included"],"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"pagination":{"type":"object","properties":{"next_cursor":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"pagination.next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"pagination.next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pagination.next_cursor","typeLabel":"string | null"},"has_more":{"type":"boolean","isRequired":true,"uniqueKey":"pagination.has_more","typeLabel":"boolean"},"total_count":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"pagination.total_count.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"pagination.total_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pagination.total_count","typeLabel":"integer | null"}},"required":["next_cursor","has_more","total_count"],"isRequired":true,"uniqueKey":"pagination","typeLabel":"object"},"applied_filters":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"applied_filters.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"applied_filters","typeLabel":"object"},"includes":{"type":"array","items":{"type":"string","uniqueKey":"includes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"includes","typeLabel":"string[]"},"meta":{"type":"object","properties":{"trace_id":{"type":"string","description":"UUID v7; same 128-bit value as the X-Trace-Id header.","isRequired":true,"uniqueKey":"meta.trace_id","typeLabel":"string"},"span_id":{"type":"string","pattern":"^[0-9a-f]{16}$","description":"16 hex chars, root span of this request.","isRequired":true,"uniqueKey":"meta.span_id","typeLabel":"string"},"timestamp":{"type":"string","description":"ISO 8601 UTC (Y-m-dTH:i:sZ), response time.","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string"},"duration_ms":{"type":"integer","minimum":0,"description":"Server-side wall clock.","isRequired":true,"uniqueKey":"meta.duration_ms","typeLabel":"integer"},"team_sid":{"oneOf":[{"type":"string","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.team_sid","typeLabel":"string | null"},"actor_type":{"oneOf":[{"type":"string","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.actor_type","typeLabel":"string | null"}},"required":["trace_id","span_id","timestamp","duration_ms"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"},"counts":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0,"description":"Workflow rows matching the filter scope.","isRequired":true,"uniqueKey":"counts.total_count","typeLabel":"integer"},"groups":{"type":"object","properties":{"status":{"oneOf":[{"type":"object","description":"Campaign distribution by status (feeds list badges); absent key = zero (PHP empty map serialises as []).","properties":{"draft":{"type":"integer","minimum":0,"uniqueKey":"counts.groups.status.oneOf.0.draft","typeLabel":"integer"},"active":{"type":"integer","minimum":0,"uniqueKey":"counts.groups.status.oneOf.0.active","typeLabel":"integer"},"paused":{"type":"integer","minimum":0,"uniqueKey":"counts.groups.status.oneOf.0.paused","typeLabel":"integer"},"archived":{"type":"integer","minimum":0,"uniqueKey":"counts.groups.status.oneOf.0.archived","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"counts.groups.status.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"counts.groups.status.oneOf.1.items.[INDEX]","typeLabel":"any"},"description":"Campaign distribution by status (feeds list badges); absent key = zero (PHP empty map serialises as []).","isRequired":true,"uniqueKey":"counts.groups.status.oneOf.1","typeLabel":"any[]"}],"isRequired":true,"uniqueKey":"counts.groups.status","typeLabel":"object | any[]"}},"required":["status"],"isRequired":true,"uniqueKey":"counts.groups","typeLabel":"object"}},"required":["total_count","groups"],"uniqueKey":"counts","typeLabel":"object"}},"required":["success","operation","items","pagination","applied_filters","includes","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"operation":"search","items":[{"item":{"sid":"\u003cstring>","team_sid":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","status":"draft","published_version_sid":"\u003cstring>","draft_steps":[{"type":"linkedin_send_connection_request","id":2,"name":"\u003cstring>","message":"\u003cstring>","required_fields":{"refs":["\u003cstring>"],"on_missing":"fail"}}],"schedule":{"timeblocks":[{"dow":3,"start_minute":719,"end_minute":720}],"timezone":"\u003cstring>","use_people_timezone":true},"on_reply":"autopilot","agent_sid":"\u003cstring>","sender_profile_sids":["\u003cstring>"],"rotation_strategy":"fair","priority":123,"created_by":{"actor_type":"user","actor_sid":"\u003cstring>","team_sid":"\u003cstring>","permissions":{},"actor_name":"\u003cstring>","oauth_client_sid":"\u003cstring>","reason":"\u003cstring>","cluster_id":123,"trace_id":"\u003cstring>"},"deleted_by":{"actor_type":"user","actor_sid":"\u003cstring>","team_sid":"\u003cstring>","permissions":{},"actor_name":"\u003cstring>","oauth_client_sid":"\u003cstring>","reason":"\u003cstring>","cluster_id":123,"trace_id":"\u003cstring>"},"created_at":"\u003cstring>","updated_at":"\u003cstring>","deleted_at":"\u003cstring>"},"included":{"published_version":{"sid":"\u003cstring>","workflow_sid":"\u003cstring>","version":123,"steps":[{"type":"linkedin_send_connection_request","id":2,"name":"\u003cstring>","message":"\u003cstring>","required_fields":{"refs":["\u003cstring>"],"on_missing":"fail"}}],"steps_count":123,"entry_step_id":123,"created_at":"\u003cstring>"},"sources":[{"sid":"\u003cstring>"}],"records_counts":{"total_count":1,"groups":{"status":{}}},"forecast":{"scheduled_count":1,"sender_profiles_count":1,"days_to_drain":1,"drains_on":"\u003cstring>","over_horizon":true,"buckets":[{"sender_profile_sid":"\u003cstring>","type":"\u003cstring>","scheduled_count":1,"daily_share":1,"days_to_drain":1,"over_horizon":true}],"timeline":[{"day":"\u003cstring>","planned":1,"by_type":{}}]}}}],"pagination":{"next_cursor":"\u003cstring>","has_more":true,"total_count":123},"applied_filters":{},"includes":["\u003cstring>"],"meta":{"trace_id":"\u003cstring>","span_id":"\u003cstring>","timestamp":"\u003cstring>","duration_ms":1,"team_sid":"\u003cstring>","actor_type":"\u003cstring>"},"counts":{"total_count":1,"groups":{"status":{"draft":1,"active":1,"paused":1,"archived":1}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d89393a3-528c-4bb9-b449-414e4a4d7fc3":{"description":"MCP error envelope. `error.code` is one of validation_failed, nothing_to_update, not_found, relation_not_found, invalid_transition, limit_exceeded, payment_required, duplicate_rejected, conflict, delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["validation_failed","nothing_to_update","not_found","relation_not_found","invalid_transition","limit_exceeded","payment_required","duplicate_rejected","conflict","delete_blocked","unauthorized","forbidden","rate_limited","internal_error","service_unavailable","not_implemented"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"recoverable":{"type":"boolean","isRequired":true,"uniqueKey":"error.recoverable","typeLabel":"boolean"},"suggestion":{"type":"string","uniqueKey":"error.suggestion","typeLabel":"string"},"field_errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","isRequired":true,"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX].rule","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX].message","typeLabel":"string"}},"required":["rule","message"],"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.field_errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"error.field_errors","typeLabel":"object"},"blockers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Machine-readable blocker type (active_flow, pending_tasks, …).","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].type","typeLabel":"string"},"severity":{"type":"string","enum":["hard","soft"],"description":"hard = external action required; soft = acknowledge is enough.","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"description":{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].description","typeLabel":"string"},"entity_sid":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid","typeLabel":"string | null"},"resolution":{"type":"string","description":"Hard: tool name to call. Soft: code for acknowledge[].","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].resolution","typeLabel":"string"},"resolution_hint":{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].resolution_hint","typeLabel":"string"},"count":{"type":"integer","uniqueKey":"error.blockers.items.[INDEX].count","typeLabel":"integer"}},"required":["type","severity","description","entity_sid","resolution","resolution_hint"],"uniqueKey":"error.blockers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.blockers","typeLabel":"object[]"},"context":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.context.additionalProperties","typeLabel":"any"},"uniqueKey":"error.context","typeLabel":"object"}},"required":["code","message","recoverable"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"trace_id":{"type":"string","description":"UUID v7; same 128-bit value as the X-Trace-Id header.","isRequired":true,"uniqueKey":"meta.trace_id","typeLabel":"string"},"span_id":{"type":"string","pattern":"^[0-9a-f]{16}$","description":"16 hex chars, root span of this request.","isRequired":true,"uniqueKey":"meta.span_id","typeLabel":"string"},"timestamp":{"type":"string","description":"ISO 8601 UTC (Y-m-dTH:i:sZ), response time.","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string"},"duration_ms":{"type":"integer","minimum":0,"description":"Server-side wall clock.","isRequired":true,"uniqueKey":"meta.duration_ms","typeLabel":"integer"},"team_sid":{"oneOf":[{"type":"string","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.team_sid","typeLabel":"string | null"},"actor_type":{"oneOf":[{"type":"string","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.actor_type","typeLabel":"string | null"}},"required":["trace_id","span_id","timestamp","duration_ms"],"uniqueKey":"meta","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"validation_failed","message":"\u003cstring>","recoverable":true,"suggestion":"\u003cstring>","field_errors":{},"blockers":[{"type":"\u003cstring>","severity":"hard","description":"\u003cstring>","entity_sid":"\u003cstring>","resolution":"\u003cstring>","resolution_hint":"\u003cstring>","count":123}],"context":{}},"meta":{"trace_id":"\u003cstring>","span_id":"\u003cstring>","timestamp":"\u003cstring>","duration_ms":1,"team_sid":"\u003cstring>","actor_type":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"729827b0-78e5-4ab5-8ae6-8a180675d3f7":{"description":"MCP error envelope with `error.code` internal_error or service_unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","enum":["validation_failed","nothing_to_update","not_found","relation_not_found","invalid_transition","limit_exceeded","payment_required","duplicate_rejected","conflict","delete_blocked","unauthorized","forbidden","rate_limited","internal_error","service_unavailable","not_implemented"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"recoverable":{"type":"boolean","isRequired":true,"uniqueKey":"error.recoverable","typeLabel":"boolean"},"suggestion":{"type":"string","uniqueKey":"error.suggestion","typeLabel":"string"},"field_errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","isRequired":true,"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX].rule","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX].message","typeLabel":"string"}},"required":["rule","message"],"uniqueKey":"error.field_errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.field_errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"error.field_errors","typeLabel":"object"},"blockers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Machine-readable blocker type (active_flow, pending_tasks, …).","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].type","typeLabel":"string"},"severity":{"type":"string","enum":["hard","soft"],"description":"hard = external action required; soft = acknowledge is enough.","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"description":{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].description","typeLabel":"string"},"entity_sid":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].entity_sid","typeLabel":"string | null"},"resolution":{"type":"string","description":"Hard: tool name to call. Soft: code for acknowledge[].","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].resolution","typeLabel":"string"},"resolution_hint":{"type":"string","isRequired":true,"uniqueKey":"error.blockers.items.[INDEX].resolution_hint","typeLabel":"string"},"count":{"type":"integer","uniqueKey":"error.blockers.items.[INDEX].count","typeLabel":"integer"}},"required":["type","severity","description","entity_sid","resolution","resolution_hint"],"uniqueKey":"error.blockers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.blockers","typeLabel":"object[]"},"context":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.context.additionalProperties","typeLabel":"any"},"uniqueKey":"error.context","typeLabel":"object"}},"required":["code","message","recoverable"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"trace_id":{"type":"string","description":"UUID v7; same 128-bit value as the X-Trace-Id header.","isRequired":true,"uniqueKey":"meta.trace_id","typeLabel":"string"},"span_id":{"type":"string","pattern":"^[0-9a-f]{16}$","description":"16 hex chars, root span of this request.","isRequired":true,"uniqueKey":"meta.span_id","typeLabel":"string"},"timestamp":{"type":"string","description":"ISO 8601 UTC (Y-m-dTH:i:sZ), response time.","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string"},"duration_ms":{"type":"integer","minimum":0,"description":"Server-side wall clock.","isRequired":true,"uniqueKey":"meta.duration_ms","typeLabel":"integer"},"team_sid":{"oneOf":[{"type":"string","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.0","typeLabel":"string"},{"type":"null","description":"The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.team_sid.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.team_sid","typeLabel":"string | null"},"actor_type":{"oneOf":[{"type":"string","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.","uniqueKey":"meta.actor_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.actor_type","typeLabel":"string | null"}},"required":["trace_id","span_id","timestamp","duration_ms"],"uniqueKey":"meta","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"validation_failed","message":"\u003cstring>","recoverable":true,"suggestion":"\u003cstring>","field_errors":{},"blockers":[{"type":"\u003cstring>","severity":"hard","description":"\u003cstring>","entity_sid":"\u003cstring>","resolution":"\u003cstring>","resolution_hint":"\u003cstring>","count":123}],"context":{}},"meta":{"trace_id":"\u003cstring>","span_id":"\u003cstring>","timestamp":"\u003cstring>","duration_ms":1,"team_sid":"\u003cstring>","actor_type":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d3ab5cdd-2aa1-426f-93da-16562fad923f":{"BearerJwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token issued by gs.service.id. Its `access_identity` claim carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is authoritative.","scopes":[],"schemeName":"BearerJwt"},"TeamSid":{"type":"apiKey","in":"header","name":"Team-SID","description":"Team scope for tokens that do not carry one. Ignored when the token already names a team.","scopes":[],"schemeName":"TeamSid"}}},"servers":{"71624634-b298-4b81-ba22-a05986db64c0":{"url":"https://beta.getsales.io/playtables/v1","description":"Production (the gateway path on the beta ring; the origin is provisioned per DEPLOY_MAP.md)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token issued by gs.service.id. Its `access_identity` claim carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is authoritative.","scopes":[],"schemeName":"BearerJwt"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Access token issued by gs.service.id. Its `access_identity` claim carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is authoritative.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerJwt","name":"Authorization"},{"scheme":{"type":"apiKey","in":"header","name":"Team-SID","description":"Team scope for tokens that do not carry one. Ignored when the token already names a team.","scopes":[],"schemeName":"TeamSid"},"schema":{"title":"Team-SID","type":"string","description":"Team scope for tokens that do not carry one. Ignored when the token already names a team.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"TeamSid","name":"Team-SID"}],"title":"BearerJwt \u0026 TeamSid"}]},"originalFileLocation":"api-reference/playtables/openapi.yaml"},"subdomain":"getsales","siteName":"GetSales","title":"Search workflows - GetSales","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T05:07:41.564Z","originalFileLocation":"api-reference/playtables/workflows/search-workflows.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=\"List the team\u0026#x27;s outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search. Contract: - MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows. - Operation search, response envelope search. - Flags: read only.\">\u003cmeta data-mint-head name=\"application-name\" content=\"GetSales\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_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/getsales/Xk1sYTgBQiFOp0cW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Search workflows - GetSales\">\u003cmeta data-mint-head property=\"og:description\" content=\"List the team\u0026#x27;s outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search. Contract: - MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows. - Operation search, response envelope search. - Flags: read only.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"GetSales\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://getsales.mintlify.app/_mintlify/api/og/v2?division=workflows\u0026amp;title=Search+workflows\u0026amp;description=List+the+team%27s+outreach+campaigns+-+multichannel+LinkedIn+%2B+email+sequence+containers.+Filter+by+status%3B+q+%3D+LIKE+over+name+%2B+description%3B+include+records_coun\u0026amp;theme=2557d625acdab73e379ce8c9\u0026amp;signature=f84fc84bf1835fe476ff1c5f3e9956efef2e34f77e3d57f9a5b7fb5d1da1db41\">\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=\"Search workflows - GetSales\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"List the team\u0026#x27;s outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search. Contract: - MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows. - Operation search, response envelope search. - Flags: read only.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://getsales.mintlify.app/_mintlify/api/og/v2?division=workflows\u0026amp;title=Search+workflows\u0026amp;description=List+the+team%27s+outreach+campaigns+-+multichannel+LinkedIn+%2B+email+sequence+containers.+Filter+by+status%3B+q+%3D+LIKE+over+name+%2B+description%3B+include+records_coun\u0026amp;theme=2557d625acdab73e379ce8c9\u0026amp;signature=f84fc84bf1835fe476ff1c5f3e9956efef2e34f77e3d57f9a5b7fb5d1da1db41\">\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/getsales/Xk1sYTgBQiFOp0cW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"GetSales\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4B64FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/playtables/workflows/search-workflows.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getsales.io/#organization\",\"name\":\"GetSales\",\"url\":\"https://docs.getsales.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/getsales/um-g-UJLB97yTl7a/logo/light.svg?fit=max\u0026auto=format\u0026n=um-g-UJLB97yTl7a\u0026q=85\u0026s=428985b239f36914fa7e1e44f6211540\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getsales.io#website\",\"name\":\"GetSales\",\"url\":\"https://docs.getsales.io\",\"publisher\":{\"@id\":\"https://docs.getsales.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows#webpage\",\"url\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows\",\"name\":\"Search workflows\",\"description\":\"List the team's outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search. Contract: - MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows. - Operation search, response envelope search. - Flags: read only.\",\"dateModified\":\"2026-11-01T05:07:41.564Z\",\"isPartOf\":{\"@id\":\"https://docs.getsales.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Playtables API\",\"item\":\"https://docs.getsales.io/api-reference/playtables/activities/activities-metrics\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"workflows\",\"item\":\"https://docs.getsales.io/api-reference/playtables/workflows/create-workflow\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Search workflows\",\"item\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows#apireference\",\"headline\":\"Search workflows\",\"name\":\"Search workflows\",\"description\":\"List the team's outreach campaigns - multichannel LinkedIn + email sequence containers. Filter by status; q = LIKE over name + description; include records_counts for the per-campaign enrolled/active funnel, sources for audiences, published_version for the live step graph (heavy - full steps JSON). counts.groups.status rides every response; page_size:0 = status dashboard. Default UI scope excludes archived (client-side). Who is enrolled / stuck where → workflow-records search. Contract: - MCP tool search_workflows, registry package mcp.playtables/workflows, mount playtables.workflows. - Operation search, response envelope search. - Flags: read only.\",\"url\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getsales.io/api-reference/playtables/workflows/search-workflows#webpage\"},\"dateModified\":\"2026-11-01T05:07:41.564Z\",\"publisher\":{\"@id\":\"https://docs.getsales.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getsales.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"GetSales\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"GetSales","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference overview","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"Playtables API","pages":[{"group":"activities","pages":[{"title":"Activities metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/activities/metrics","href":"/api-reference/playtables/activities/activities-metrics"},{"title":"Search activities","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/activities/search","href":"/api-reference/playtables/activities/search-activities"},{"title":"Act on activity","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/activities/{sid}/act","href":"/api-reference/playtables/activities/act-on-activity"},{"title":"Draft for activity","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/activities/{sid}/draft","href":"/api-reference/playtables/activities/draft-for-activity"}]},{"group":"activity_objects","pages":[{"title":"Search activity objects","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/activity-objects/search","href":"/api-reference/playtables/activity_objects/search-activity-objects"}]},{"group":"companies","pages":[{"title":"Create company","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies","href":"/api-reference/playtables/companies/create-company"},{"title":"Companies metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/metrics","href":"/api-reference/playtables/companies/companies-metrics"},{"title":"Read LinkedIn company","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/read-linkedin","href":"/api-reference/playtables/companies/read-linkedin-company"},{"title":"Search companies","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/search","href":"/api-reference/playtables/companies/search-companies"},{"title":"Suggest company filter values","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/suggest","href":"/api-reference/playtables/companies/suggest-company-filter-values"},{"title":"Get company","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/companies/{sid}","href":"/api-reference/playtables/companies/get-company"},{"title":"Delete company","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/companies/{sid}","href":"/api-reference/playtables/companies/delete-company"},{"title":"Update company","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/companies/{sid}","href":"/api-reference/playtables/companies/update-company"},{"title":"Detach company from playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/{sid}/detach","href":"/api-reference/playtables/companies/detach-company-from-playtable"},{"title":"Make company primary","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/{sid}/make-primary","href":"/api-reference/playtables/companies/make-company-primary"},{"title":"Merge companies","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/companies/{sid}/merge","href":"/api-reference/playtables/companies/merge-companies"}]},{"group":"credit_ledger_entries","pages":[{"title":"Credit ledger entries metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/credit-ledger-entries/metrics","href":"/api-reference/playtables/credit_ledger_entries/credit-ledger-entries-metrics"},{"title":"Search credit ledger entries","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/credit-ledger-entries/search","href":"/api-reference/playtables/credit_ledger_entries/search-credit-ledger-entries"}]},{"group":"data_source_items","pages":[{"title":"Move data source duplicates","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-source-items/move","href":"/api-reference/playtables/data_source_items/move-data-source-duplicates"},{"title":"Search data source items","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-source-items/search","href":"/api-reference/playtables/data_source_items/search-data-source-items"}]},{"group":"data_sources","pages":[{"title":"Create data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources","href":"/api-reference/playtables/data_sources/create-data-source"},{"title":"Plan data source filters","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/ai-plan","href":"/api-reference/playtables/data_sources/plan-data-source-filters"},{"title":"Suggest data source filter values","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/filter-typeahead","href":"/api-reference/playtables/data_sources/suggest-data-source-filter-values"},{"title":"Data sources metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/metrics","href":"/api-reference/playtables/data_sources/data-sources-metrics"},{"title":"Preview post engagement","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/post-engagement-preview","href":"/api-reference/playtables/data_sources/preview-post-engagement"},{"title":"Search data sources","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/search","href":"/api-reference/playtables/data_sources/search-data-sources"},{"title":"Create data source upload URL","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/upload-url","href":"/api-reference/playtables/data_sources/create-data-source-upload-url"},{"title":"Get data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/data-sources/{sid}","href":"/api-reference/playtables/data_sources/get-data-source"},{"title":"Delete data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/data-sources/{sid}","href":"/api-reference/playtables/data_sources/delete-data-source"},{"title":"Update data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/data-sources/{sid}","href":"/api-reference/playtables/data_sources/update-data-source"},{"title":"Add companies to data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/{sid}/add-companies","href":"/api-reference/playtables/data_sources/add-companies-to-data-source"},{"title":"Import data source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/{sid}/import","href":"/api-reference/playtables/data_sources/import-data-source"},{"title":"Rotate data source ingest key","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/data-sources/{sid}/rotate-ingest-key","href":"/api-reference/playtables/data_sources/rotate-data-source-ingest-key"}]},{"group":"notes","pages":[{"title":"Create note","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/notes","href":"/api-reference/playtables/notes/create-note"},{"title":"Search notes","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/notes/search","href":"/api-reference/playtables/notes/search-notes"},{"title":"Delete note","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/notes/{sid}","href":"/api-reference/playtables/notes/delete-note"},{"title":"Update note","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/notes/{sid}","href":"/api-reference/playtables/notes/update-note"}]},{"group":"people","pages":[{"title":"Create person","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people","href":"/api-reference/playtables/people/create-person"},{"title":"People metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people/metrics","href":"/api-reference/playtables/people/people-metrics"},{"title":"Read LinkedIn person","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people/read-linkedin","href":"/api-reference/playtables/people/read-linkedin-person"},{"title":"Search people","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people/search","href":"/api-reference/playtables/people/search-people"},{"title":"Suggest person filter values","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people/suggest","href":"/api-reference/playtables/people/suggest-person-filter-values"},{"title":"Get person","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/people/{sid}","href":"/api-reference/playtables/people/get-person"},{"title":"Delete person","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/people/{sid}","href":"/api-reference/playtables/people/delete-person"},{"title":"Update person","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/people/{sid}","href":"/api-reference/playtables/people/update-person"},{"title":"Make person primary","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/people/{sid}/make-primary","href":"/api-reference/playtables/people/make-person-primary"}]},{"group":"pipeline_stages","pages":[{"title":"Create pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/pipeline-stages","href":"/api-reference/playtables/pipeline_stages/create-pipeline-stage"},{"title":"Pipeline stages metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/pipeline-stages/metrics","href":"/api-reference/playtables/pipeline_stages/pipeline-stages-metrics"},{"title":"Reset company stage derivation","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/pipeline-stages/reset-derivation","href":"/api-reference/playtables/pipeline_stages/reset-company-stage-derivation"},{"title":"Search pipeline stages","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/pipeline-stages/search","href":"/api-reference/playtables/pipeline_stages/search-pipeline-stages"},{"title":"Delete pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/pipeline-stages/{sid}","href":"/api-reference/playtables/pipeline_stages/delete-pipeline-stage"},{"title":"Update pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/pipeline-stages/{sid}","href":"/api-reference/playtables/pipeline_stages/update-pipeline-stage"},{"title":"Move objects into a pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/pipeline-stages/{sid}/move","href":"/api-reference/playtables/pipeline_stages/move-objects-into-a-pipeline-stage"}]},{"group":"plays","pages":[{"title":"Create play","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/plays","href":"/api-reference/playtables/plays/create-play"},{"title":"List play catalog","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/plays/catalog","href":"/api-reference/playtables/plays/list-play-catalog"},{"title":"Search plays","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/plays/search","href":"/api-reference/playtables/plays/search-plays"},{"title":"Delete play","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/plays/{sid}","href":"/api-reference/playtables/plays/delete-play"},{"title":"Update play","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/plays/{sid}","href":"/api-reference/playtables/plays/update-play"},{"title":"Estimate play","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/plays/{sid}/estimate","href":"/api-reference/playtables/plays/estimate-play"},{"title":"Run play","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/plays/{sid}/run","href":"/api-reference/playtables/plays/run-play"}]},{"group":"playtable_field_values","pages":[{"title":"Search playtable field values","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-field-values/search","href":"/api-reference/playtables/playtable_field_values/search-playtable-field-values"},{"title":"Write playtable field value","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-field-values/write","href":"/api-reference/playtables/playtable_field_values/write-playtable-field-value"},{"title":"Get playtable field value","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/playtable-field-values/{sid}","href":"/api-reference/playtables/playtable_field_values/get-playtable-field-value"},{"title":"Update playtable field value","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/playtable-field-values/{sid}","href":"/api-reference/playtables/playtable_field_values/update-playtable-field-value"},{"title":"Reset playtable field value","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-field-values/{sid}/reset","href":"/api-reference/playtables/playtable_field_values/reset-playtable-field-value"}]},{"group":"playtable_fields","pages":[{"title":"Create playtable field","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields","href":"/api-reference/playtables/playtable_fields/create-playtable-field"},{"title":"Estimate playtable field AI cost","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/estimate-ai-cost","href":"/api-reference/playtables/playtable_fields/estimate-playtable-field-ai-cost"},{"title":"Estimate playtable field backfill","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/estimate-backfill","href":"/api-reference/playtables/playtable_fields/estimate-playtable-field-backfill"},{"title":"Generate playtable field condition","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/generate-condition","href":"/api-reference/playtables/playtable_fields/generate-playtable-field-condition"},{"title":"Preview playtable field condition","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/preview-condition","href":"/api-reference/playtables/playtable_fields/preview-playtable-field-condition"},{"title":"Preview playtable field run","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/preview-run","href":"/api-reference/playtables/playtable_fields/preview-playtable-field-run"},{"title":"Search playtable fields","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/search","href":"/api-reference/playtables/playtable_fields/search-playtable-fields"},{"title":"Get playtable field","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/playtable-fields/{sid}","href":"/api-reference/playtables/playtable_fields/get-playtable-field"},{"title":"Delete playtable field","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/playtable-fields/{sid}","href":"/api-reference/playtables/playtable_fields/delete-playtable-field"},{"title":"Update playtable field","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/playtable-fields/{sid}","href":"/api-reference/playtables/playtable_fields/update-playtable-field"},{"title":"Fill playtable field again","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/{sid}/backfill","href":"/api-reference/playtables/playtable_fields/fill-playtable-field-again"},{"title":"Stop the runs on a playtable field","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/{sid}/cancel-runs","href":"/api-reference/playtables/playtable_fields/stop-the-runs-on-a-playtable-field"},{"title":"Estimate semantic index cost","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-fields/{sid}/estimate-semantic-index","href":"/api-reference/playtables/playtable_fields/estimate-semantic-index-cost"}]},{"group":"playtable_runs","pages":[{"title":"Create playtable run","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-runs","href":"/api-reference/playtables/playtable_runs/create-playtable-run"},{"title":"Estimate playtable run cost","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-runs/estimate","href":"/api-reference/playtables/playtable_runs/estimate-playtable-run-cost"},{"title":"Search playtable runs","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-runs/search","href":"/api-reference/playtables/playtable_runs/search-playtable-runs"},{"title":"Get playtable run","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/playtable-runs/{sid}","href":"/api-reference/playtables/playtable_runs/get-playtable-run"},{"title":"Cancel playtable run","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-runs/{sid}/cancel","href":"/api-reference/playtables/playtable_runs/cancel-playtable-run"}]},{"group":"playtable_views","pages":[{"title":"Create playtable view","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-views","href":"/api-reference/playtables/playtable_views/create-playtable-view"},{"title":"Search playtable views","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtable-views/search","href":"/api-reference/playtables/playtable_views/search-playtable-views"},{"title":"Get playtable view","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/playtable-views/{sid}","href":"/api-reference/playtables/playtable_views/get-playtable-view"},{"title":"Delete playtable view","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/playtable-views/{sid}","href":"/api-reference/playtables/playtable_views/delete-playtable-view"},{"title":"Update playtable view","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/playtable-views/{sid}","href":"/api-reference/playtables/playtable_views/update-playtable-view"}]},{"group":"playtables","pages":[{"title":"Create playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables","href":"/api-reference/playtables/playtables/create-playtable"},{"title":"Playtables metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/metrics","href":"/api-reference/playtables/playtables/playtables-metrics"},{"title":"Search playtables","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/search","href":"/api-reference/playtables/playtables/search-playtables"},{"title":"Workspace performance","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/workspace-performance","href":"/api-reference/playtables/playtables/workspace-performance"},{"title":"Get playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/playtables/{sid}","href":"/api-reference/playtables/playtables/get-playtable"},{"title":"Delete playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/playtables/{sid}","href":"/api-reference/playtables/playtables/delete-playtable"},{"title":"Update playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/playtables/{sid}","href":"/api-reference/playtables/playtables/update-playtable"},{"title":"Stop the runs of a playtable","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/{sid}/cancel-runs","href":"/api-reference/playtables/playtables/stop-the-runs-of-a-playtable"},{"title":"Preview playtable delete","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/{sid}/delete-preview","href":"/api-reference/playtables/playtables/preview-playtable-delete"},{"title":"Playtable performance","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/playtables/{sid}/performance","href":"/api-reference/playtables/playtables/playtable-performance"}]},{"group":"result_pages","pages":[{"title":"Search result pages","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/result-pages/search","href":"/api-reference/playtables/result_pages/search-result-pages"},{"title":"Delete result page","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/result-pages/{sid}","href":"/api-reference/playtables/result_pages/delete-result-page"}]},{"group":"sender_profiles","pages":[{"title":"Sender profile stats","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/sender-profiles/stats","href":"/api-reference/playtables/sender_profiles/sender-profile-stats"},{"title":"Sender profile performance","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/sender-profiles/{sid}/performance","href":"/api-reference/playtables/sender_profiles/sender-profile-performance"}]},{"group":"stoplist_entries","pages":[{"title":"Create stoplist entries","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/stoplist-entries","href":"/api-reference/playtables/stoplist_entries/create-stoplist-entries"},{"title":"Search stoplist entries","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/stoplist-entries/search","href":"/api-reference/playtables/stoplist_entries/search-stoplist-entries"},{"title":"Delete stoplist entry","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/stoplist-entries/{sid}","href":"/api-reference/playtables/stoplist_entries/delete-stoplist-entry"}]},{"group":"tags","pages":[{"title":"Create tag","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/tags","href":"/api-reference/playtables/tags/create-tag"},{"title":"Search tags","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/tags/search","href":"/api-reference/playtables/tags/search-tags"},{"title":"Delete tag","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/tags/{sid}","href":"/api-reference/playtables/tags/delete-tag"},{"title":"Update tag","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/tags/{sid}","href":"/api-reference/playtables/tags/update-tag"}]},{"group":"workflow_attachments","pages":[{"title":"Search workflow attachments","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-attachments/search","href":"/api-reference/playtables/workflow_attachments/search-workflow-attachments"},{"title":"Create workflow attachment upload URL","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-attachments/upload-url","href":"/api-reference/playtables/workflow_attachments/create-workflow-attachment-upload-url"},{"title":"Delete workflow attachment","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/workflow-attachments/{sid}","href":"/api-reference/playtables/workflow_attachments/delete-workflow-attachment"}]},{"group":"workflow_records","pages":[{"title":"Workflow records metrics","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/metrics","href":"/api-reference/playtables/workflow_records/workflow-records-metrics"},{"title":"Search workflow records","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/search","href":"/api-reference/playtables/workflow_records/search-workflow-records"},{"title":"Exit workflow record","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/{sid}/exit","href":"/api-reference/playtables/workflow_records/exit-workflow-record"},{"title":"Pause workflow record","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/{sid}/pause","href":"/api-reference/playtables/workflow_records/pause-workflow-record"},{"title":"Restart workflow record from top","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/{sid}/restart","href":"/api-reference/playtables/workflow_records/restart-workflow-record-from-top"},{"title":"Resume workflow record","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-records/{sid}/resume","href":"/api-reference/playtables/workflow_records/resume-workflow-record"}]},{"group":"workflow_sources","pages":[{"title":"Create workflow source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-sources","href":"/api-reference/playtables/workflow_sources/create-workflow-source"},{"title":"Search workflow sources","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-sources/search","href":"/api-reference/playtables/workflow_sources/search-workflow-sources"},{"title":"Delete workflow source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/workflow-sources/{sid}","href":"/api-reference/playtables/workflow_sources/delete-workflow-source"},{"title":"Update workflow source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/workflow-sources/{sid}","href":"/api-reference/playtables/workflow_sources/update-workflow-source"},{"title":"Add people to workflow source","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-sources/{sid}/add-people","href":"/api-reference/playtables/workflow_sources/add-people-to-workflow-source"}]},{"group":"workflow_tasks","pages":[{"title":"Search workflow tasks","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-tasks/search","href":"/api-reference/playtables/workflow_tasks/search-workflow-tasks"},{"title":"Update workflow task","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/workflow-tasks/{sid}","href":"/api-reference/playtables/workflow_tasks/update-workflow-task"},{"title":"Approve workflow task","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-tasks/{sid}/approve","href":"/api-reference/playtables/workflow_tasks/approve-workflow-task"},{"title":"Cancel workflow task","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-tasks/{sid}/cancel","href":"/api-reference/playtables/workflow_tasks/cancel-workflow-task"},{"title":"Complete workflow task","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-tasks/{sid}/complete","href":"/api-reference/playtables/workflow_tasks/complete-workflow-task"},{"title":"Retry workflow task","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-tasks/{sid}/retry","href":"/api-reference/playtables/workflow_tasks/retry-workflow-task"}]},{"group":"workflow_versions","pages":[{"title":"Search workflow versions","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflow-versions/search","href":"/api-reference/playtables/workflow_versions/search-workflow-versions"},{"title":"Get workflow version","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/workflow-versions/{sid}","href":"/api-reference/playtables/workflow_versions/get-workflow-version"}]},{"group":"workflows","pages":[{"title":"Create workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows","href":"/api-reference/playtables/workflows/create-workflow"},{"title":"Workflows metrics","description":"Campaign funnel over the filtered workflows: enrolled_in_period / replied_in_period / completed_in_period count record clocks (enrollment / reply / completion) inside half-open [from,to) - NOT workflows.created_at; active_records_now is point-in-time. aggregated.counts = free workflow-row counts by status. group_by:\"status\" adds groups[] with counts + metrics per value. Per-step funnel → workflow-records metrics with group_by:current_step_id.\n\nContract:\n- MCP tool `get_workflows_metrics`, registry package `mcp.playtables/workflows`, mount `playtables.workflows`.\n- Operation `metrics`, response envelope `metrics`.\n- Flags: read only.","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/metrics","href":"/api-reference/playtables/workflows/workflows-metrics"},{"title":"Search workflows","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/search","href":"/api-reference/playtables/workflows/search-workflows"},{"title":"Test an API call step","description":"Fire ONE api_call step for ONE real person of the team, for real, and return both halves: result.request = the wire request as it went out (method, URL with the variables rendered and the query appended, headers, body; before the connection's auth was injected) and result.status / http_status / response / error_code / error_message = what the target answered. The step is the draft node verbatim (ids optional, nothing saved); {{ai.\u003ckey>}} has no record to read and renders empty (or its fallback). A refusing target is status failed in a 200, never an error envelope; the error envelope is reserved for an incomplete node (422, keyed step.\u003cfield>) or an unknown person (404). Throttled 10/min. Use it before publish to see exactly what a journey would send.\n\nContract:\n- MCP tool `test_api_call_workflow`, registry package `mcp.playtables/workflows`, mount `playtables.workflows`.\n- Operation `action`, response envelope `action`.\n- Flags: none.","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/test-api-call","href":"/api-reference/playtables/workflows/test-an-api-call-step"},{"title":"Validate workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/validate","href":"/api-reference/playtables/workflows/validate-workflow"},{"title":"Get workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml get /api/workflows/{sid}","href":"/api-reference/playtables/workflows/get-workflow"},{"title":"Delete workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml delete /api/workflows/{sid}","href":"/api-reference/playtables/workflows/delete-workflow"},{"title":"Update workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml patch /api/workflows/{sid}","href":"/api-reference/playtables/workflows/update-workflow"},{"title":"Pause workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/{sid}/pause","href":"/api-reference/playtables/workflows/pause-workflow"},{"title":"Publish workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/{sid}/publish","href":"/api-reference/playtables/workflows/publish-workflow"},{"title":"Resume workflow","deprecated":null,"version":null,"openapi":"/api-reference/playtables/openapi.yaml post /api/workflows/{sid}/resume","href":"/api-reference/playtables/workflows/resume-workflow"}]}]},{"group":"Unibox API","pages":[{"group":"agent_answers","pages":[{"title":"Add a Knowledge answer","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-answers","href":"/api-reference/unibox/agent_answers/add-a-knowledge-answer"},{"title":"Ask the Knowledge answers","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-answers/ask","href":"/api-reference/unibox/agent_answers/ask-the-knowledge-answers"},{"title":"Search Knowledge answers","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-answers/search","href":"/api-reference/unibox/agent_answers/search-knowledge-answers"},{"title":"Delete a Knowledge answer","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/agent-answers/{sid}","href":"/api-reference/unibox/agent_answers/delete-a-knowledge-answer"},{"title":"Update a Knowledge answer","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agent-answers/{sid}","href":"/api-reference/unibox/agent_answers/update-a-knowledge-answer"}]},{"group":"agent_conversation_uploads","pages":[{"title":"Upload conversations","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-conversation-uploads","href":"/api-reference/unibox/agent_conversation_uploads/upload-conversations"},{"title":"Get a conversations upload","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-conversation-uploads/{sid}","href":"/api-reference/unibox/agent_conversation_uploads/get-a-conversations-upload"},{"title":"Keep dialogues from an upload","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-conversation-uploads/{sid}/apply","href":"/api-reference/unibox/agent_conversation_uploads/keep-dialogues-from-an-upload"},{"title":"Discard a conversations upload","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-conversation-uploads/{sid}/discard","href":"/api-reference/unibox/agent_conversation_uploads/discard-a-conversations-upload"}]},{"group":"agent_examples","pages":[{"title":"Add to the golden set","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-examples","href":"/api-reference/unibox/agent_examples/add-to-the-golden-set"},{"title":"Forget golden set rows","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-examples/forget","href":"/api-reference/unibox/agent_examples/forget-golden-set-rows"},{"title":"Search the golden set","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-examples/search","href":"/api-reference/unibox/agent_examples/search-the-golden-set"},{"title":"Get golden set row","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-examples/{sid}","href":"/api-reference/unibox/agent_examples/get-golden-set-row"},{"title":"Forget golden set row","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/agent-examples/{sid}","href":"/api-reference/unibox/agent_examples/forget-golden-set-row"},{"title":"Update golden set row","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agent-examples/{sid}","href":"/api-reference/unibox/agent_examples/update-golden-set-row"}]},{"group":"agent_hints","pages":[{"title":"Search the hints","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-hints/search","href":"/api-reference/unibox/agent_hints/search-the-hints"},{"title":"Dismiss a hint","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-hints/{sid}/dismiss","href":"/api-reference/unibox/agent_hints/dismiss-a-hint"},{"title":"Resolve a hint","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-hints/{sid}/resolve","href":"/api-reference/unibox/agent_hints/resolve-a-hint"}]},{"group":"agent_plans","pages":[{"title":"Create agent plan","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-plans","href":"/api-reference/unibox/agent_plans/create-agent-plan"},{"title":"Draft follow-ups","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-plans/draft-followups","href":"/api-reference/unibox/agent_plans/draft-follow-ups"},{"title":"Schedule follow-ups","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-plans/schedule-followups","href":"/api-reference/unibox/agent_plans/schedule-follow-ups"},{"title":"Search agent plans","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-plans/search","href":"/api-reference/unibox/agent_plans/search-agent-plans"},{"title":"Update agent plan","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agent-plans/{sid}","href":"/api-reference/unibox/agent_plans/update-agent-plan"},{"title":"Steer agent plan","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-plans/{sid}/steer","href":"/api-reference/unibox/agent_plans/steer-agent-plan"}]},{"group":"agent_runs","pages":[{"title":"Search agent runs","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-runs/search","href":"/api-reference/unibox/agent_runs/search-agent-runs"},{"title":"Get agent run","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-runs/{sid}","href":"/api-reference/unibox/agent_runs/get-agent-run"},{"title":"Add agent reply fix","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-runs/{sid}/apply-fix","href":"/api-reference/unibox/agent_runs/add-agent-reply-fix"},{"title":"Rewrite agent reply as a test","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-runs/{sid}/rewrite","href":"/api-reference/unibox/agent_runs/rewrite-agent-reply-as-a-test"},{"title":"Route agent reply fix","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-runs/{sid}/route-fix","href":"/api-reference/unibox/agent_runs/route-agent-reply-fix"}]},{"group":"agent_scenarios","pages":[{"title":"Create agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-scenarios","href":"/api-reference/unibox/agent_scenarios/create-agent-scenario"},{"title":"Compose agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-scenarios/compose","href":"/api-reference/unibox/agent_scenarios/compose-agent-scenario"},{"title":"Search agent scenarios","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-scenarios/search","href":"/api-reference/unibox/agent_scenarios/search-agent-scenarios"},{"title":"Get agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-scenarios/{sid}","href":"/api-reference/unibox/agent_scenarios/get-agent-scenario"},{"title":"Delete agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/agent-scenarios/{sid}","href":"/api-reference/unibox/agent_scenarios/delete-agent-scenario"},{"title":"Update agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agent-scenarios/{sid}","href":"/api-reference/unibox/agent_scenarios/update-agent-scenario"},{"title":"Reset agent scenario","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-scenarios/{sid}/reset","href":"/api-reference/unibox/agent_scenarios/reset-agent-scenario"}]},{"group":"agent_source_parses","pages":[{"title":"Get a parse record","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-source-parses/{sid}","href":"/api-reference/unibox/agent_source_parses/get-a-parse-record"},{"title":"Take the answers found into Knowledge","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-source-parses/{sid}/apply","href":"/api-reference/unibox/agent_source_parses/take-the-answers-found-into-knowledge"},{"title":"Discard a parse","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-source-parses/{sid}/discard","href":"/api-reference/unibox/agent_source_parses/discard-a-parse"}]},{"group":"agent_sources","pages":[{"title":"Add a website to the Knowledge","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-sources","href":"/api-reference/unibox/agent_sources/add-a-website-to-the-knowledge"},{"title":"Search Knowledge documents","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-sources/search","href":"/api-reference/unibox/agent_sources/search-knowledge-documents"},{"title":"Get Knowledge document","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-sources/{sid}","href":"/api-reference/unibox/agent_sources/get-knowledge-document"},{"title":"Delete Knowledge document","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/agent-sources/{sid}","href":"/api-reference/unibox/agent_sources/delete-knowledge-document"},{"title":"Update Knowledge document","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agent-sources/{sid}","href":"/api-reference/unibox/agent_sources/update-knowledge-document"},{"title":"Get a Knowledge file link","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-sources/{sid}/file-link","href":"/api-reference/unibox/agent_sources/get-a-knowledge-file-link"},{"title":"Parse a document into answers","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-sources/{sid}/parse","href":"/api-reference/unibox/agent_sources/parse-a-document-into-answers"},{"title":"Read a document again","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-sources/{sid}/read-again","href":"/api-reference/unibox/agent_sources/read-a-document-again"},{"title":"Suggest how to read a document","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-sources/{sid}/suggest-instruction","href":"/api-reference/unibox/agent_sources/suggest-how-to-read-a-document"}]},{"group":"agent_tests","pages":[{"title":"Test the AI SDR on a reply","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-tests","href":"/api-reference/unibox/agent_tests/test-the-ai-sdr-on-a-reply"},{"title":"Search tests","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agent-tests/search","href":"/api-reference/unibox/agent_tests/search-tests"},{"title":"Get a test","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agent-tests/{sid}","href":"/api-reference/unibox/agent_tests/get-a-test"}]},{"group":"agents","pages":[{"title":"Create agent","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents","href":"/api-reference/unibox/agents/create-agent"},{"title":"Search agents","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents/search","href":"/api-reference/unibox/agents/search-agents"},{"title":"Probe website","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents/website-probe","href":"/api-reference/unibox/agents/probe-website"},{"title":"Read website text","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents/website-text","href":"/api-reference/unibox/agents/read-website-text"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agents/{sid}","href":"/api-reference/unibox/agents/get-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/agents/{sid}","href":"/api-reference/unibox/agents/delete-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agents/{sid}","href":"/api-reference/unibox/agents/update-agent"},{"title":"Compose agent brief","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents/{sid}/compose-brief","href":"/api-reference/unibox/agents/compose-agent-brief"},{"title":"Update agent hosts","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agents/{sid}/hosts","href":"/api-reference/unibox/agents/update-agent-hosts"},{"title":"Get agent overview","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agents/{sid}/overview","href":"/api-reference/unibox/agents/get-agent-overview"},{"title":"Read agent website","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/agents/{sid}/read-website","href":"/api-reference/unibox/agents/read-agent-website"},{"title":"Get agent rules","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/agents/{sid}/rules","href":"/api-reference/unibox/agents/get-agent-rules"},{"title":"Update agent rules","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agents/{sid}/rules","href":"/api-reference/unibox/agents/update-agent-rules"},{"title":"Set a voice line","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/agents/{sid}/voice","href":"/api-reference/unibox/agents/set-a-voice-line"}]},{"group":"conversation_events","pages":[{"title":"Search conversation events","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversation-events/search","href":"/api-reference/unibox/conversation_events/search-conversation-events"}]},{"group":"conversations","pages":[{"title":"Resolve conversation counterpart","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/resolve-counterpart","href":"/api-reference/unibox/conversations/resolve-conversation-counterpart"},{"title":"Search conversations","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/search","href":"/api-reference/unibox/conversations/search-conversations"},{"title":"Get conversation","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/conversations/{sid}","href":"/api-reference/unibox/conversations/get-conversation"},{"title":"Update conversation","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/conversations/{sid}","href":"/api-reference/unibox/conversations/update-conversation"},{"title":"Add participants to a group conversation","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/add-participants","href":"/api-reference/unibox/conversations/add-participants-to-a-group-conversation"},{"title":"Hand a conversation over to a teammate","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/hand-over","href":"/api-reference/unibox/conversations/hand-a-conversation-over-to-a-teammate"},{"title":"Link conversation person","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/link-person","href":"/api-reference/unibox/conversations/link-conversation-person"},{"title":"Get conversation LLM context","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/conversations/{sid}/llm-context","href":"/api-reference/unibox/conversations/get-conversation-llm-context"},{"title":"Merge conversation","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/merge","href":"/api-reference/unibox/conversations/merge-conversation"},{"title":"Ask the AI SDR to try again on a conversation","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/retry-agent","href":"/api-reference/unibox/conversations/ask-the-ai-sdr-to-try-again-on-a-conversation"},{"title":"Return conversation to orchestration","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/return-to-orchestration","href":"/api-reference/unibox/conversations/return-conversation-to-orchestration"},{"title":"Stoplist conversation counterpart","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/stoplist","href":"/api-reference/unibox/conversations/stoplist-conversation-counterpart"},{"title":"Unlink conversation person","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/conversations/{sid}/unlink-person","href":"/api-reference/unibox/conversations/unlink-conversation-person"}]},{"group":"messages","pages":[{"title":"Approve message drafts","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/approve","href":"/api-reference/unibox/messages/approve-message-drafts"},{"title":"Cancel messages that have not gone out","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/cancel","href":"/api-reference/unibox/messages/cancel-messages-that-have-not-gone-out"},{"title":"Dismiss message drafts","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/dismiss","href":"/api-reference/unibox/messages/dismiss-message-drafts"},{"title":"Send failed messages again","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/retry","href":"/api-reference/unibox/messages/send-failed-messages-again"},{"title":"Search messages","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/search","href":"/api-reference/unibox/messages/search-messages"},{"title":"Send message","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/send","href":"/api-reference/unibox/messages/send-message"},{"title":"Update message draft","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/messages/{sid}","href":"/api-reference/unibox/messages/update-message-draft"},{"title":"Get a link to a message file","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml get /api/messages/{sid}/attachment-link","href":"/api-reference/unibox/messages/get-a-link-to-a-message-file"},{"title":"Delete a LinkedIn message for everyone","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/{sid}/delete-on-linkedin","href":"/api-reference/unibox/messages/delete-a-linkedin-message-for-everyone"},{"title":"React to message","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/{sid}/react","href":"/api-reference/unibox/messages/react-to-message"},{"title":"Regenerate message draft","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/messages/{sid}/regenerate","href":"/api-reference/unibox/messages/regenerate-message-draft"}]},{"group":"sender_profiles","pages":[{"title":"Create sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles","href":"/api-reference/unibox/sender_profiles/create-sender-profile"},{"title":"List available channel accounts","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/available-accounts","href":"/api-reference/unibox/sender_profiles/list-available-channel-accounts"},{"title":"Check a LinkedIn proxy","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/linkedin/check-proxy","href":"/api-reference/unibox/sender_profiles/check-a-linkedin-proxy"},{"title":"List LinkedIn proxy countries","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/linkedin/proxy-countries","href":"/api-reference/unibox/sender_profiles/list-linkedin-proxy-countries"},{"title":"Search sender profiles","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/search","href":"/api-reference/unibox/sender_profiles/search-sender-profiles"},{"title":"Start a mailbox connect for a new sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/start-email-connect","href":"/api-reference/unibox/sender_profiles/start-a-mailbox-connect-for-a-new-sender-profile"},{"title":"Start a LinkedIn connect for a new sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/start-linkedin-connect","href":"/api-reference/unibox/sender_profiles/start-a-linkedin-connect-for-a-new-sender-profile"},{"title":"Delete sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml delete /api/sender-profiles/{sid}","href":"/api-reference/unibox/sender_profiles/delete-sender-profile"},{"title":"Update sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/sender-profiles/{sid}","href":"/api-reference/unibox/sender_profiles/update-sender-profile"},{"title":"Read sender profile limits","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/limits","href":"/api-reference/unibox/sender_profiles/read-sender-profile-limits"},{"title":"Set sender profile smart limits","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/limits/linkedin/smart-limits","href":"/api-reference/unibox/sender_profiles/set-sender-profile-smart-limits"},{"title":"Update a sender profile LinkedIn limit","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/sender-profiles/{sid}/limits/linkedin/{smartLimitSid}","href":"/api-reference/unibox/sender_profiles/update-a-sender-profile-linkedin-limit"},{"title":"Attach a LinkedIn account to a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/attach","href":"/api-reference/unibox/sender_profiles/attach-a-linkedin-account-to-a-sender-profile"},{"title":"Check a sender profile's LinkedIn connect","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/connect-status","href":"/api-reference/unibox/sender_profiles/check-a-sender-profiles-linkedin-connect"},{"title":"Detach the LinkedIn account from a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/detach","href":"/api-reference/unibox/sender_profiles/detach-the-linkedin-account-from-a-sender-profile"},{"title":"Read sender profile LinkedIn limit history","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/limit-history","href":"/api-reference/unibox/sender_profiles/read-sender-profile-linkedin-limit-history"},{"title":"Start a LinkedIn connect for a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/start-connect","href":"/api-reference/unibox/sender_profiles/start-a-linkedin-connect-for-a-sender-profile"},{"title":"Read sender profile LinkedIn sync settings","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/linkedin/sync","href":"/api-reference/unibox/sender_profiles/read-sender-profile-linkedin-sync-settings"},{"title":"Update sender profile LinkedIn sync settings","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/sender-profiles/{sid}/linkedin/sync","href":"/api-reference/unibox/sender_profiles/update-sender-profile-linkedin-sync-settings"},{"title":"Attach a mailbox to a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/attach","href":"/api-reference/unibox/sender_profiles/attach-a-mailbox-to-a-sender-profile"},{"title":"Connect an IMAP mailbox to a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/connect-imap","href":"/api-reference/unibox/sender_profiles/connect-an-imap-mailbox-to-a-sender-profile"},{"title":"Start a mailbox connect for a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/start-connect","href":"/api-reference/unibox/sender_profiles/start-a-mailbox-connect-for-a-sender-profile"},{"title":"Update a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}","href":"/api-reference/unibox/sender_profiles/update-a-sender-profile-mailbox"},{"title":"Detach a mailbox from a sender profile","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/detach","href":"/api-reference/unibox/sender_profiles/detach-a-mailbox-from-a-sender-profile"},{"title":"Disconnect a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/disconnect","href":"/api-reference/unibox/sender_profiles/disconnect-a-sender-profile-mailbox"},{"title":"Pause sending from a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/pause-sending","href":"/api-reference/unibox/sender_profiles/pause-sending-from-a-sender-profile-mailbox"},{"title":"Reconnect a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/reconnect","href":"/api-reference/unibox/sender_profiles/reconnect-a-sender-profile-mailbox"},{"title":"Resume sending from a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/resume-sending","href":"/api-reference/unibox/sender_profiles/resume-sending-from-a-sender-profile-mailbox"},{"title":"Sync a sender profile mailbox","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/sync","href":"/api-reference/unibox/sender_profiles/sync-a-sender-profile-mailbox"},{"title":"List a sender profile mailbox tracking domains","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/mailboxes/{emailAccountSid}/tracking-domains","href":"/api-reference/unibox/sender_profiles/list-a-sender-profile-mailbox-tracking-domains"},{"title":"Sync sender profile history","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/sender-profiles/{sid}/sync-history","href":"/api-reference/unibox/sender_profiles/sync-sender-profile-history"}]},{"group":"tasks","pages":[{"title":"Create task","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/tasks","href":"/api-reference/unibox/tasks/create-task"},{"title":"Search tasks","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/tasks/search","href":"/api-reference/unibox/tasks/search-tasks"},{"title":"Update task","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml patch /api/tasks/{sid}","href":"/api-reference/unibox/tasks/update-task"}]},{"group":"timeline","pages":[{"title":"Search timeline","deprecated":null,"version":null,"openapi":"/api-reference/unibox/openapi.yaml post /api/timeline/search","href":"/api-reference/unibox/timeline/search-timeline"}]}]},{"group":"Signals API","pages":[{"group":"profile_view_sightings","pages":[{"title":"Search profile view sightings","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/profile-view-sightings/search","href":"/api-reference/signals/profile_view_sightings/search-profile-view-sightings"},{"title":"Get profile view sighting","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/profile-view-sightings/{sid}","href":"/api-reference/signals/profile_view_sightings/get-profile-view-sighting"}]},{"group":"signal_preferences","pages":[{"title":"Get signal preferences","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/signal-preferences","href":"/api-reference/signals/signal_preferences/get-signal-preferences"},{"title":"Update signal preferences","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml patch /api/signal-preferences","href":"/api-reference/signals/signal_preferences/update-signal-preferences"},{"title":"Mark signals seen","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/signal-preferences/mark-seen","href":"/api-reference/signals/signal_preferences/mark-signals-seen"}]},{"group":"signal_settings","pages":[{"title":"Get signal settings","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/signal-settings","href":"/api-reference/signals/signal_settings/get-signal-settings"},{"title":"Update signal settings","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml patch /api/signal-settings","href":"/api-reference/signals/signal_settings/update-signal-settings"}]},{"group":"website_key_pages","pages":[{"title":"Create website key page","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-key-pages","href":"/api-reference/signals/website_key_pages/create-website-key-page"},{"title":"Search website key pages","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-key-pages/search","href":"/api-reference/signals/website_key_pages/search-website-key-pages"},{"title":"Delete website key page","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml delete /api/website-key-pages/{sid}","href":"/api-reference/signals/website_key_pages/delete-website-key-page"},{"title":"Update website key page","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml patch /api/website-key-pages/{sid}","href":"/api-reference/signals/website_key_pages/update-website-key-page"}]},{"group":"website_session_owners","pages":[{"title":"Search website session owners","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-session-owners/search","href":"/api-reference/signals/website_session_owners/search-website-session-owners"}]},{"group":"website_sessions","pages":[{"title":"Search website sessions","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-sessions/search","href":"/api-reference/signals/website_sessions/search-website-sessions"},{"title":"Get website session","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/website-sessions/{sid}","href":"/api-reference/signals/website_sessions/get-website-session"}]},{"group":"website_sites","pages":[{"title":"Create website site","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-sites","href":"/api-reference/signals/website_sites/create-website-site"},{"title":"Search website sites","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-sites/search","href":"/api-reference/signals/website_sites/search-website-sites"},{"title":"Get website site","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/website-sites/{sid}","href":"/api-reference/signals/website_sites/get-website-site"},{"title":"Delete website site","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml delete /api/website-sites/{sid}","href":"/api-reference/signals/website_sites/delete-website-site"},{"title":"Update website site","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml patch /api/website-sites/{sid}","href":"/api-reference/signals/website_sites/update-website-site"},{"title":"Rotate website site key","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-sites/{sid}/rotate-key","href":"/api-reference/signals/website_sites/rotate-website-site-key"},{"title":"Verify website site","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-sites/{sid}/verify","href":"/api-reference/signals/website_sites/verify-website-site"}]},{"group":"website_tracked_events","pages":[{"title":"Create website tracked event","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-tracked-events","href":"/api-reference/signals/website_tracked_events/create-website-tracked-event"},{"title":"Search website tracked events","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-tracked-events/search","href":"/api-reference/signals/website_tracked_events/search-website-tracked-events"},{"title":"Delete website tracked event","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml delete /api/website-tracked-events/{sid}","href":"/api-reference/signals/website_tracked_events/delete-website-tracked-event"},{"title":"Update website tracked event","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml patch /api/website-tracked-events/{sid}","href":"/api-reference/signals/website_tracked_events/update-website-tracked-event"}]},{"group":"website_visitors","pages":[{"title":"Identify website visitor by email","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-visitors/identify","href":"/api-reference/signals/website_visitors/identify-website-visitor-by-email"},{"title":"Search website visitors","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-visitors/search","href":"/api-reference/signals/website_visitors/search-website-visitors"},{"title":"Get website visitor","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml get /api/website-visitors/{sid}","href":"/api-reference/signals/website_visitors/get-website-visitor"},{"title":"Identify website visitor","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-visitors/{sid}/identify","href":"/api-reference/signals/website_visitors/identify-website-visitor"},{"title":"Unlink website visitor","deprecated":null,"version":null,"openapi":"/api-reference/signals/openapi.yaml post /api/website-visitors/{sid}/unlink","href":"/api-reference/signals/website_visitors/unlink-website-visitor"}]}]},{"group":"Integrations API","pages":[{"group":"custom_tools","pages":[{"title":"Create custom tool","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/custom-tools","href":"/api-reference/integrations/custom_tools/create-custom-tool"},{"title":"Search custom tools","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/custom-tools/search","href":"/api-reference/integrations/custom_tools/search-custom-tools"},{"title":"Delete custom tool","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml delete /api/custom-tools/{sid}","href":"/api-reference/integrations/custom_tools/delete-custom-tool"},{"title":"Update custom tool","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml patch /api/custom-tools/{sid}","href":"/api-reference/integrations/custom_tools/update-custom-tool"},{"title":"Test custom tool","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/custom-tools/{sid}/test","href":"/api-reference/integrations/custom_tools/test-custom-tool"}]},{"group":"provider_calls","pages":[{"title":"Provider calls metrics","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-calls/metrics","href":"/api-reference/integrations/provider_calls/provider-calls-metrics"},{"title":"Search provider calls","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-calls/search","href":"/api-reference/integrations/provider_calls/search-provider-calls"},{"title":"Get provider call","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml get /api/provider-calls/{sid}","href":"/api-reference/integrations/provider_calls/get-provider-call"},{"title":"List provider catalog","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml get /api/provider-catalog","href":"/api-reference/integrations/provider_calls/list-provider-catalog"}]},{"group":"provider_connections","pages":[{"title":"Create provider connection","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-connections","href":"/api-reference/integrations/provider_connections/create-provider-connection"},{"title":"Start provider OAuth connect","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-connections/oauth/authorize","href":"/api-reference/integrations/provider_connections/start-provider-oauth-connect"},{"title":"Complete provider OAuth connect","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-connections/oauth/complete","href":"/api-reference/integrations/provider_connections/complete-provider-oauth-connect"},{"title":"Search provider connections","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-connections/search","href":"/api-reference/integrations/provider_connections/search-provider-connections"},{"title":"Delete provider connection","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml delete /api/provider-connections/{sid}","href":"/api-reference/integrations/provider_connections/delete-provider-connection"},{"title":"Update provider connection","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml patch /api/provider-connections/{sid}","href":"/api-reference/integrations/provider_connections/update-provider-connection"},{"title":"Test provider connection","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/provider-connections/{sid}/test","href":"/api-reference/integrations/provider_connections/test-provider-connection"}]},{"group":"webhook_logs","pages":[{"title":"Webhook logs metrics","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhook-logs/metrics","href":"/api-reference/integrations/webhook_logs/webhook-logs-metrics"},{"title":"Search webhook logs","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhook-logs/search","href":"/api-reference/integrations/webhook_logs/search-webhook-logs"},{"title":"Cancel webhook delivery","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhook-logs/{sid}/cancel","href":"/api-reference/integrations/webhook_logs/cancel-webhook-delivery"},{"title":"Retry webhook delivery","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhook-logs/{sid}/retry","href":"/api-reference/integrations/webhook_logs/retry-webhook-delivery"}]},{"group":"webhooks","pages":[{"title":"Create webhook","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhooks","href":"/api-reference/integrations/webhooks/create-webhook"},{"title":"Search webhooks","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhooks/search","href":"/api-reference/integrations/webhooks/search-webhooks"},{"title":"Get webhook","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml get /api/webhooks/{sid}","href":"/api-reference/integrations/webhooks/get-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml delete /api/webhooks/{sid}","href":"/api-reference/integrations/webhooks/delete-webhook"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml patch /api/webhooks/{sid}","href":"/api-reference/integrations/webhooks/update-webhook"},{"title":"Test webhook","deprecated":null,"version":null,"openapi":"/api-reference/integrations/openapi.yaml post /api/webhooks/{sid}/test","href":"/api-reference/integrations/webhooks/test-webhook"}]}]},{"group":"ID and Teams API","pages":[{"group":"api_keys","pages":[{"title":"Create API key","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/api-keys","href":"/api-reference/id/api_keys/create-api-key"},{"title":"API key metrics","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/api-keys/metrics","href":"/api-reference/id/api_keys/api-key-metrics"},{"title":"Search API keys","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/api-keys/search","href":"/api-reference/id/api_keys/search-api-keys"},{"title":"Get API key","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/api-keys/{sid}","href":"/api-reference/id/api_keys/get-api-key"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/api-keys/{sid}","href":"/api-reference/id/api_keys/revoke-api-key"},{"title":"Update API key","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/api-keys/{sid}","href":"/api-reference/id/api_keys/update-api-key"},{"title":"Rotate API key","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/api-keys/{sid}/rotate","href":"/api-reference/id/api_keys/rotate-api-key"}]},{"group":"billing_payment_methods","pages":[{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/billing-payment-methods","href":"/api-reference/id/billing_payment_methods/list-payment-methods"},{"title":"Get add-card link","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-payment-methods/get-add-link","href":"/api-reference/id/billing_payment_methods/get-add-card-link"},{"title":"Delete payment method","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/billing-payment-methods/{sid}","href":"/api-reference/id/billing_payment_methods/delete-payment-method"}]},{"group":"billing_products","pages":[{"title":"Search billing products","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-products/search","href":"/api-reference/id/billing_products/search-billing-products"}]},{"group":"billing_subscriptions","pages":[{"title":"Create subscription checkout","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/create-checkout","href":"/api-reference/id/billing_subscriptions/create-subscription-checkout"},{"title":"Quote a billing order","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/quote","href":"/api-reference/id/billing_subscriptions/quote-a-billing-order"},{"title":"Search billing subscriptions","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/search","href":"/api-reference/id/billing_subscriptions/search-billing-subscriptions"},{"title":"Get billing subscription","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/billing-subscriptions/{sid}","href":"/api-reference/id/billing_subscriptions/get-billing-subscription"},{"title":"Cancel subscription","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/cancel","href":"/api-reference/id/billing_subscriptions/cancel-subscription"},{"title":"Change subscription","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/change","href":"/api-reference/id/billing_subscriptions/change-subscription"},{"title":"Get update-payment-method link","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/get-update-payment-method-link","href":"/api-reference/id/billing_subscriptions/get-update-payment-method-link"},{"title":"Pause subscription","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/pause","href":"/api-reference/id/billing_subscriptions/pause-subscription"},{"title":"Preview subscription change","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/preview-change","href":"/api-reference/id/billing_subscriptions/preview-subscription-change"},{"title":"Resume subscription","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/resume","href":"/api-reference/id/billing_subscriptions/resume-subscription"},{"title":"Undo scheduled cancel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-subscriptions/{sid}/undo-cancel","href":"/api-reference/id/billing_subscriptions/undo-scheduled-cancel"}]},{"group":"billing_transactions","pages":[{"title":"Billing transaction metrics","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-transactions/metrics","href":"/api-reference/id/billing_transactions/billing-transaction-metrics"},{"title":"Search billing transactions","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-transactions/search","href":"/api-reference/id/billing_transactions/search-billing-transactions"},{"title":"Get billing transaction","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/billing-transactions/{sid}","href":"/api-reference/id/billing_transactions/get-billing-transaction"},{"title":"Get transaction invoice","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/billing-transactions/{sid}/get-invoice","href":"/api-reference/id/billing_transactions/get-transaction-invoice"}]},{"group":"credit_lots","pages":[{"title":"Credit wallet balance","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/credit-lots/metrics","href":"/api-reference/id/credit_lots/credit-wallet-balance"}]},{"group":"credit_transactions","pages":[{"title":"Credit spend by day","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/credit-transactions/metrics","href":"/api-reference/id/credit_transactions/credit-spend-by-day"}]},{"group":"gtm_connections","pages":[{"title":"Complete gtm workspace link","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/gtm-connections/complete-link","href":"/api-reference/id/gtm_connections/complete-gtm-workspace-link"},{"title":"Search gtm connections","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/gtm-connections/search","href":"/api-reference/id/gtm_connections/search-gtm-connections"},{"title":"Start gtm workspace link","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/gtm-connections/start-link","href":"/api-reference/id/gtm_connections/start-gtm-workspace-link"},{"title":"Revoke gtm connection","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/gtm-connections/{sid}/revoke","href":"/api-reference/id/gtm_connections/revoke-gtm-connection"}]},{"group":"notifications","pages":[{"title":"Mark all notifications read","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/notifications/mark-all-read","href":"/api-reference/id/notifications/mark-all-notifications-read"},{"title":"Search notifications","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/notifications/search","href":"/api-reference/id/notifications/search-notifications"},{"title":"Get notification","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/notifications/{sid}","href":"/api-reference/id/notifications/get-notification"},{"title":"Dismiss notification","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/notifications/{sid}","href":"/api-reference/id/notifications/dismiss-notification"},{"title":"Mark notification read","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/notifications/{sid}/mark-read","href":"/api-reference/id/notifications/mark-notification-read"}]},{"group":"oauth_authorizations","pages":[{"title":"Search connected apps","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-authorizations/search","href":"/api-reference/id/oauth_authorizations/search-connected-apps"},{"title":"Edit connected app","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/oauth-authorizations/{sid}","href":"/api-reference/id/oauth_authorizations/edit-connected-app"},{"title":"Disconnect app (revoke grant)","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-authorizations/{sid}/revoke","href":"/api-reference/id/oauth_authorizations/disconnect-app-revoke-grant"}]},{"group":"oauth_clients","pages":[{"title":"Create OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-clients","href":"/api-reference/id/oauth_clients/create-oauth-client"},{"title":"Search OAuth clients","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-clients/search","href":"/api-reference/id/oauth_clients/search-oauth-clients"},{"title":"Get OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/oauth-clients/{sid}","href":"/api-reference/id/oauth_clients/get-oauth-client"},{"title":"Delete OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/oauth-clients/{sid}","href":"/api-reference/id/oauth_clients/delete-oauth-client"},{"title":"Update OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/oauth-clients/{sid}","href":"/api-reference/id/oauth_clients/update-oauth-client"},{"title":"Disable OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-clients/{sid}/disable","href":"/api-reference/id/oauth_clients/disable-oauth-client"},{"title":"Enable OAuth client","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/oauth-clients/{sid}/enable","href":"/api-reference/id/oauth_clients/enable-oauth-client"}]},{"group":"sessions","pages":[{"title":"Search sessions","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/sessions/search","href":"/api-reference/id/sessions/search-sessions"},{"title":"Revoke session","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/sessions/{sid}/revoke","href":"/api-reference/id/sessions/revoke-session"}]},{"group":"ssl_certificates","pages":[{"title":"Search SSL certificates","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/ssl-certificates/search","href":"/api-reference/id/ssl_certificates/search-ssl-certificates"},{"title":"Get SSL certificate","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/ssl-certificates/{sid}","href":"/api-reference/id/ssl_certificates/get-ssl-certificate"},{"title":"Delete SSL certificate","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/ssl-certificates/{sid}","href":"/api-reference/id/ssl_certificates/delete-ssl-certificate"},{"title":"Issue SSL certificate","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/ssl-certificates/{sid}/issue","href":"/api-reference/id/ssl_certificates/issue-ssl-certificate"},{"title":"Renew SSL certificate","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/ssl-certificates/{sid}/renew","href":"/api-reference/id/ssl_certificates/renew-ssl-certificate"}]},{"group":"subscription_allocations","pages":[{"title":"Create subscription allocation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/subscription-allocations","href":"/api-reference/id/subscription_allocations/create-subscription-allocation"},{"title":"Search subscription allocations","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/subscription-allocations/search","href":"/api-reference/id/subscription_allocations/search-subscription-allocations"},{"title":"Get subscription allocation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/subscription-allocations/{sid}","href":"/api-reference/id/subscription_allocations/get-subscription-allocation"},{"title":"Delete subscription allocation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/subscription-allocations/{sid}","href":"/api-reference/id/subscription_allocations/delete-subscription-allocation"},{"title":"Update subscription allocation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/subscription-allocations/{sid}","href":"/api-reference/id/subscription_allocations/update-subscription-allocation"}]},{"group":"team_members","pages":[{"title":"Invite team member","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/team-members","href":"/api-reference/id/team_members/invite-team-member"},{"title":"Accept team member invitation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/team-members/accept-invitation","href":"/api-reference/id/team_members/accept-team-member-invitation"},{"title":"Search team members","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/team-members/search","href":"/api-reference/id/team_members/search-team-members"},{"title":"Remove team member","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/team-members/{sid}","href":"/api-reference/id/team_members/remove-team-member"},{"title":"Update team member","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/team-members/{sid}","href":"/api-reference/id/team_members/update-team-member"},{"title":"Resend team member invitation","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/team-members/{sid}/resend-invitation","href":"/api-reference/id/team_members/resend-team-member-invitation"}]},{"group":"teams","pages":[{"title":"Create team","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/teams","href":"/api-reference/id/teams/create-team"},{"title":"Search teams","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/teams/search","href":"/api-reference/id/teams/search-teams"},{"title":"Get team","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/teams/{sid}","href":"/api-reference/id/teams/get-team"},{"title":"Delete team","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/teams/{sid}","href":"/api-reference/id/teams/delete-team"},{"title":"Update team","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/teams/{sid}","href":"/api-reference/id/teams/update-team"},{"title":"Transfer team ownership","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/teams/{sid}/transfer-ownership","href":"/api-reference/id/teams/transfer-team-ownership"}]},{"group":"user_profiles","pages":[{"title":"Get user profile","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/user-profile","href":"/api-reference/id/user_profiles/get-user-profile"},{"title":"Update user profile","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/user-profile","href":"/api-reference/id/user_profiles/update-user-profile"}]},{"group":"users","pages":[{"title":"Get current user","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/users/current","href":"/api-reference/id/users/get-current-user"},{"title":"Update current user","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/users/current","href":"/api-reference/id/users/update-current-user"}]},{"group":"whitelabel_clients","pages":[{"title":"Search whitelabel clients","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabel-clients/search","href":"/api-reference/id/whitelabel_clients/search-whitelabel-clients"}]},{"group":"whitelabels","pages":[{"title":"Create whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels","href":"/api-reference/id/whitelabels/create-whitelabel"},{"title":"Search whitelabels","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/search","href":"/api-reference/id/whitelabels/search-whitelabels"},{"title":"Get whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/whitelabels/{sid}","href":"/api-reference/id/whitelabels/get-whitelabel"},{"title":"Delete whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml delete /api/whitelabels/{sid}","href":"/api-reference/id/whitelabels/delete-whitelabel"},{"title":"Update whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/whitelabels/{sid}","href":"/api-reference/id/whitelabels/update-whitelabel"},{"title":"Activate whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/{sid}/activate","href":"/api-reference/id/whitelabels/activate-whitelabel"},{"title":"Open whitelabel client workspace","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/{sid}/clients/{teamSid}/open","href":"/api-reference/id/whitelabels/open-whitelabel-client-workspace"},{"title":"Disable whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/{sid}/disable","href":"/api-reference/id/whitelabels/disable-whitelabel"},{"title":"Enable whitelabel","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/{sid}/enable","href":"/api-reference/id/whitelabels/enable-whitelabel"},{"title":"Verify whitelabel email domain","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml post /api/whitelabels/{sid}/verify-email-domain","href":"/api-reference/id/whitelabels/verify-whitelabel-email-domain"}]},{"group":"workspace_profiles","pages":[{"title":"Get workspace profile","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml get /api/workspace-profile","href":"/api-reference/id/workspace_profiles/get-workspace-profile"},{"title":"Update workspace profile","deprecated":null,"version":null,"openapi":"/api-reference/id/openapi.yaml patch /api/workspace-profile","href":"/api-reference/id/workspace_profiles/update-workspace-profile"}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Search workflows - GetSales","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}