Enroll a lead into an automated journey. If the lead isn’t on file yet, it’s created from record and enrolled. If it’s already on file, it’s enrolled as-is.
POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update & Send to Workflow (PATCH).
Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone.
Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID.
POST vs. PATCH
Lead not on file
Lead already on file
POST
Created from record, then enrolled
Enrolled with the data on file. record is ignored.
Lead data. The lead is matched by phone. If no match is found, a new lead is created from these fields. If a match is found, these fields are ignored and the existing lead is enrolled unchanged. Provide this OR lead_id, not both.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Documentation","colors":{"primary":"#2971FF","light":"#2971FF","dark":"#2971FF"},"logo":{"light":"https://mintcdn.com/plura/XLlqx_VmOPSu1NMQ/logo/light.svg?fit=max\u0026auto=format\u0026n=XLlqx_VmOPSu1NMQ\u0026q=85\u0026s=d502921f8008df1f393074e6a3c6c935","dark":"https://mintcdn.com/plura/XLlqx_VmOPSu1NMQ/logo/dark.svg?fit=max\u0026auto=format\u0026n=XLlqx_VmOPSu1NMQ\u0026q=85\u0026s=97d17b8e413c9c97bd0adfd90c931280"},"favicon":"https://mintcdn.com/plura/XLlqx_VmOPSu1NMQ/favicon.svg?fit=max\u0026auto=format\u0026n=XLlqx_VmOPSu1NMQ\u0026q=85\u0026s=8a63ceb5cde07ac5b857409e9c513406","navbar":{"links":[{"href":"mailto:hi@plura.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.plura.ai"}},"footer":{"socials":{"x":"https://x.com/plura","github":"https://github.com/plura","linkedin":"https://www.linkedin.com/company/plura"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/PcxWWwX9jN"},{"anchor":"Blog","icon":"newspaper","href":"https://plura.ai/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"plura","hasAudioNarration":false,"actualSubdomain":"plura","customDomains":["docs.plura.ai"],"gitSource":{"type":"github","owner":"plura-ai","repo":"plura-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ace5d5cee36b517d482d56d","collectionId":"e1933d73-4f72-42f6-94f8-391ce80eb579","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ace5d5cee36b517d482d56d"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ace5d5cee36b517d482d56d","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Documentation","count":77},{"language":"default","tag":"The Platform","count":75},{"language":"default","tag":"Integrations","count":55},{"language":"default","tag":"API Reference","count":19},{"language":"default","tag":"Workflows","count":14},{"language":"default","tag":"Automations","count":9},{"language":"default","tag":"CRM","count":9},{"language":"default","tag":"Nodes","count":8},{"language":"default","tag":"AI Agents","count":7},{"language":"default","tag":"Data","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/workflows/send-to-workflow","slug":"/api-reference/workflows/send-to-workflow","pageMetadata":{"title":"Send to Workflow","openapi":"POST /lead/sendtoworkflow","description":"Enroll a lead into an automated journey. If the lead isn't on file yet, it's created from `record` and enrolled. If it's already on file, it's enrolled **as-is**.\n\n**POST never modifies an existing lead.** When a lead matching `lead_id` or `record.phone` already exists, every other field in `record` is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use [Update \u0026 Send to Workflow](/api-reference/workflows/update-and-send-to-workflow) (`PATCH`).\n\n**Note:** Provide either `record` or `lead_id`, never both. When you send `record`, the lead is matched by `phone`.\n\n**Finding your Journey ID:** Extract it from your workspace URL: `app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]`. The Journey ID is the UUID after `/journey/`. Use the Journey ID, not the Flow ID.\n\n**POST vs. PATCH**\n\n| | Lead not on file | Lead already on file |\n|---|---|---|\n| `POST` | Created from `record`, then enrolled | Enrolled with the data on file. `record` is ignored. |\n| `PATCH` | Created from `record`, then enrolled | Fields you send are updated, then enrolled |\n","href":"/api-reference/workflows/send-to-workflow"},"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 a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Enroll a lead into an automated journey. If the lead isn’t on file yet, it’s created from \", _jsx(_components.code, {\n children: \"record\"\n }), \" and enrolled. If it’s already on file, it’s enrolled \", _jsx(_components.strong, {\n children: \"as-is\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"POST never modifies an existing lead.\"\n }), \" When a lead matching \", _jsx(_components.code, {\n children: \"lead_id\"\n }), \" or \", _jsx(_components.code, {\n children: \"record.phone\"\n }), \" already exists, every other field in \", _jsx(_components.code, {\n children: \"record\"\n }), \" is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use \", _jsx(_components.a, {\n href: \"/api-reference/workflows/update-and-send-to-workflow\",\n children: \"Update \u0026 Send to Workflow\"\n }), \" (\", _jsx(_components.code, {\n children: \"PATCH\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Note:\"\n }), \" Provide either \", _jsx(_components.code, {\n children: \"record\"\n }), \" or \", _jsx(_components.code, {\n children: \"lead_id\"\n }), \", never both. When you send \", _jsx(_components.code, {\n children: \"record\"\n }), \", the lead is matched by \", _jsx(_components.code, {\n children: \"phone\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Finding your Journey ID:\"\n }), \" Extract it from your workspace URL: \", _jsx(_components.code, {\n children: \"app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]\"\n }), \". The Journey ID is the UUID after \", _jsx(_components.code, {\n children: \"/journey/\"\n }), \". Use the Journey ID, not the Flow ID.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"POST vs. PATCH\"\n })\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {}), _jsx(_components.th, {\n children: \"Lead not on file\"\n }), _jsx(_components.th, {\n children: \"Lead already on file\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"POST\"\n })\n }), _jsxs(_components.td, {\n children: [\"Created from \", _jsx(_components.code, {\n children: \"record\"\n }), \", then enrolled\"]\n }), _jsxs(_components.td, {\n children: [\"Enrolled with the data on file. \", _jsx(_components.code, {\n children: \"record\"\n }), \" is ignored.\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"PATCH\"\n })\n }), _jsxs(_components.td, {\n children: [\"Created from \", _jsx(_components.code, {\n children: \"record\"\n }), \", then enrolled\"]\n }), _jsx(_components.td, {\n children: \"Fields you send are updated, then enrolled\"\n })]\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":"Send to Workflow","openapi":"POST /lead/sendtoworkflow","description":"Enroll a lead into an automated journey. If the lead isn't on file yet, it's created from `record` and enrolled. If it's already on file, it's enrolled **as-is**.\n\n**POST never modifies an existing lead.** When a lead matching `lead_id` or `record.phone` already exists, every other field in `record` is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use [Update \u0026 Send to Workflow](/api-reference/workflows/update-and-send-to-workflow) (`PATCH`).\n\n**Note:** Provide either `record` or `lead_id`, never both. When you send `record`, the lead is matched by `phone`.\n\n**Finding your Journey ID:** Extract it from your workspace URL: `app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]`. The Journey ID is the UUID after `/journey/`. Use the Journey ID, not the Flow ID.\n\n**POST vs. PATCH**\n\n| | Lead not on file | Lead already on file |\n|---|---|---|\n| `POST` | Created from `record`, then enrolled | Enrolled with the data on file. `record` is ignored. |\n| `PATCH` | Created from `record`, then enrolled | Fields you send are updated, then enrolled |\n","href":"/api-reference/workflows/send-to-workflow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Workflows"],"summary":"Send to Workflow","description":"Enroll a lead into an automated journey. If the lead isn't on file yet, it's created from `record` and enrolled. If it's already on file, it's enrolled **as-is**.\n\n**POST never modifies an existing lead.** When a lead matching `lead_id` or `record.phone` already exists, every other field in `record` is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use [Update \u0026 Send to Workflow](/api-reference/workflows/update-and-send-to-workflow) (`PATCH`).\n\n**Note:** Provide either `record` or `lead_id`, never both. When you send `record`, the lead is matched by `phone`.\n\n**Finding your Journey ID:** Extract it from your workspace URL: `app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]`. The Journey ID is the UUID after `/journey/`. Use the Journey ID, not the Flow ID.\n\n**POST vs. PATCH**\n\n| | Lead not on file | Lead already on file |\n|---|---|---|\n| `POST` | Created from `record`, then enrolled | Enrolled with the data on file. `record` is ignored. |\n| `PATCH` | Created from `record`, then enrolled | Fields you send are updated, then enrolled |\n","operationId":"sendToWorkflow","requestBody":"19b9e113-8abb-4184-b26f-016478f5407f","responses":{"200":"6f52718c-902d-45c7-8d62-4ed152924bc8","400":"d457de0f-0d3f-42f5-ad6d-52f3232aa65b","401":"13fd360a-f5d2-47ee-830e-2c62ece35cb9","404":"a8a6c347-7db8-4770-adf5-b44cc6641d89"},"method":"post","type":"path","servers":["d85b90f8-3e13-48f3-bafd-d168d39b6d9a"],"security":["79f8660d-5a15-4635-abc2-0a37b3ce6eea"],"path":"/lead/sendtoworkflow","baseUrlOptions":["https://api.plura.ai/v1"],"title":"Send to Workflow","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workflow_id"],"properties":{"workflow_id":{"type":"string","description":"Journey ID from your workspace URL (not the Flow ID)","example":"98249779-79ae-462f-a0cf-7ce5129cc093","isRequired":true,"uniqueKey":"workflow_id","typeLabel":"string"},"record":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"Phone number in E.164 format (digits only, with country code)","example":"17145551234","isRequired":true,"uniqueKey":"record.phone","typeLabel":"string"},"first_name":{"type":"string","example":"John","uniqueKey":"record.first_name","typeLabel":"string"},"last_name":{"type":"string","example":"Smith","uniqueKey":"record.last_name","typeLabel":"string"},"email":{"type":"string","format":"email","example":"johnsmith@mail.com","uniqueKey":"record.email","typeLabel":"string\u003cemail>"},"company":{"type":"string","example":"Acme Corp","uniqueKey":"record.company","typeLabel":"string"}},"description":"Lead data. The lead is matched by `phone`. If no match is found, a new lead is created from these fields. If a match is found, these fields are ignored and the existing lead is enrolled unchanged. Provide this OR lead_id, not both.","uniqueKey":"record","typeLabel":"object"},"lead_id":{"type":"string","description":"Existing lead UUID. Provide this OR record, not both.","example":"307fc241-8398-4740-8122-cf6a59f3b86e","uniqueKey":"lead_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"new_lead":{"title":"new_lead","value":{"workflow_id":"98249779-79ae-462f-a0cf-7ce5129cc093","record":{"phone":"17145551234","first_name":"John","last_name":"Smith","email":"johnsmith@mail.com","company":"Acme Corp"}}},"existing_lead":{"title":"existing_lead","value":{"workflow_id":"98249779-79ae-462f-a0cf-7ce5129cc093","lead_id":"307fc241-8398-4740-8122-cf6a59f3b86e"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"6f52718c-902d-45c7-8d62-4ed152924bc8":{"description":"Lead enrolled successfully","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success","uniqueKey":"status","typeLabel":"string"},"lead_id":{"type":"string","example":"307fc241-8398-4740-8122-cf6a59f3b86e","uniqueKey":"lead_id","typeLabel":"string"},"workflow_assigned":{"type":"boolean","example":true,"uniqueKey":"workflow_assigned","typeLabel":"boolean"},"message":{"type":"string","example":"Lead successfully added to workflow","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"success","lead_id":"307fc241-8398-4740-8122-cf6a59f3b86e","workflow_assigned":true,"message":"Lead successfully added to workflow"}}},"exampleType":"generated"}},"exampleType":"generated"},"d457de0f-0d3f-42f5-ad6d-52f3232aa65b":{"description":"Bad request. Check JSON format and required fields.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"failed","uniqueKey":"status","typeLabel":"string"},"message":{"type":"string","example":"Human-readable error description","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"failed","message":"Could not find or create lead, please try again!"},"examples":{"Example":{"title":"Example","value":{"status":"failed","message":"Could not find or create lead, please try again!"}}},"exampleType":"examples"}},"exampleType":"examples"},"13fd360a-f5d2-47ee-830e-2c62ece35cb9":{"description":"Unauthorized. Verify your API key.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"failed","uniqueKey":"status","typeLabel":"string"},"message":{"type":"string","example":"Human-readable error description","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"failed","message":"Human-readable error description"}}},"exampleType":"generated"}},"exampleType":"generated"},"a8a6c347-7db8-4770-adf5-b44cc6641d89":{"description":"Journey not found. Check your workflow_id.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"failed","uniqueKey":"status","typeLabel":"string"},"message":{"type":"string","example":"Human-readable error description","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"failed","message":"Human-readable error description"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"79f8660d-5a15-4635-abc2-0a37b3ce6eea":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from Settings → API Keys in your workspace","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"d85b90f8-3e13-48f3-bafd-d168d39b6d9a":{"url":"https://api.plura.ai/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key from Settings → API Keys in your workspace","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key from Settings → API Keys in your workspace","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"plura","siteName":"Documentation","title":"Send to Workflow - Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T23:56:47.655Z","originalFileLocation":"api-reference/workflows/send-to-workflow.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=\"Enroll a lead into an automated journey. If the lead isn\u0026#x27;t on file yet, it\u0026#x27;s created from record and enrolled. If it\u0026#x27;s already on file, it\u0026#x27;s enrolled as-is. POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update \u0026amp; Send to Workflow (PATCH). Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone. Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID. POST vs. PATCH | | Lead not on file | Lead already on file | |---|---|---| | POST | Created from record, then enrolled | Enrolled with the data on file. record is ignored. | | PATCH | Created from record, then enrolled | Fields you send are updated, then enrolled |\">\u003cmeta data-mint-head name=\"application-name\" content=\"Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_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/plura/mDYpPkLF-4EnikHN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send to Workflow - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Enroll a lead into an automated journey. If the lead isn\u0026#x27;t on file yet, it\u0026#x27;s created from record and enrolled. If it\u0026#x27;s already on file, it\u0026#x27;s enrolled as-is. POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update \u0026amp; Send to Workflow (PATCH). Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone. Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID. POST vs. PATCH | | Lead not on file | Lead already on file | |---|---|---| | POST | Created from record, then enrolled | Enrolled with the data on file. record is ignored. | | PATCH | Created from record, then enrolled | Fields you send are updated, then enrolled |\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.plura.ai/api-reference/workflows/send-to-workflow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://plura.mintlify.app/_mintlify/api/og/v2?division=Workflows\u0026amp;title=Send+to+Workflow\u0026amp;description=Enroll+a+lead+into+an+automated+journey.+If+the+lead+isn%27t+on+file+yet%2C+it%27s+created+from+%60record%60+and+enrolled.+If+it%27s+already+on+file%2C+it%27s+enrolled+**as-is*\u0026amp;theme=da110fb1f05817b48cf004ff\u0026amp;signature=1d570ee763f9974c2116d959ca61606243069378fe6c67b4818151dcd618826f\">\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=\"Send to Workflow - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Enroll a lead into an automated journey. If the lead isn\u0026#x27;t on file yet, it\u0026#x27;s created from record and enrolled. If it\u0026#x27;s already on file, it\u0026#x27;s enrolled as-is. POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update \u0026amp; Send to Workflow (PATCH). Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone. Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID. POST vs. PATCH | | Lead not on file | Lead already on file | |---|---|---| | POST | Created from record, then enrolled | Enrolled with the data on file. record is ignored. | | PATCH | Created from record, then enrolled | Fields you send are updated, then enrolled |\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://plura.mintlify.app/_mintlify/api/og/v2?division=Workflows\u0026amp;title=Send+to+Workflow\u0026amp;description=Enroll+a+lead+into+an+automated+journey.+If+the+lead+isn%27t+on+file+yet%2C+it%27s+created+from+%60record%60+and+enrolled.+If+it%27s+already+on+file%2C+it%27s+enrolled+**as-is*\u0026amp;theme=da110fb1f05817b48cf004ff\u0026amp;signature=1d570ee763f9974c2116d959ca61606243069378fe6c67b4818151dcd618826f\">\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/plura/mDYpPkLF-4EnikHN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2971FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.plura.ai/api-reference/workflows/send-to-workflow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/workflows/send-to-workflow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.plura.ai/#organization\",\"name\":\"Documentation\",\"url\":\"https://docs.plura.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/plura/XLlqx_VmOPSu1NMQ/logo/light.svg?fit=max\u0026auto=format\u0026n=XLlqx_VmOPSu1NMQ\u0026q=85\u0026s=d502921f8008df1f393074e6a3c6c935\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.plura.ai#website\",\"name\":\"Documentation\",\"url\":\"https://docs.plura.ai\",\"publisher\":{\"@id\":\"https://docs.plura.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow#webpage\",\"url\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow\",\"name\":\"Send to Workflow\",\"description\":\"Enroll a lead into an automated journey. If the lead isn't on file yet, it's created from record and enrolled. If it's already on file, it's enrolled as-is. POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update \u0026 Send to Workflow (PATCH). Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone. Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID. POST vs. PATCH | | Lead not on file | Lead already on file | |---|---|---| | POST | Created from record, then enrolled | Enrolled with the data on file. record is ignored. | | PATCH | Created from record, then enrolled | Fields you send are updated, then enrolled |\",\"dateModified\":\"2026-10-08T23:56:47.655Z\",\"isPartOf\":{\"@id\":\"https://docs.plura.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https://docs.plura.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Send to Workflow\",\"item\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow#apireference\",\"headline\":\"Send to Workflow\",\"name\":\"Send to Workflow\",\"description\":\"Enroll a lead into an automated journey. If the lead isn't on file yet, it's created from record and enrolled. If it's already on file, it's enrolled as-is. POST never modifies an existing lead. When a lead matching lead_id or record.phone already exists, every other field in record is ignored and the journey runs with the data already on file. To update the lead before enrolling it, use Update \u0026 Send to Workflow (PATCH). Note: Provide either record or lead_id, never both. When you send record, the lead is matched by phone. Finding your Journey ID: Extract it from your workspace URL: app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]. The Journey ID is the UUID after /journey/. Use the Journey ID, not the Flow ID. POST vs. PATCH | | Lead not on file | Lead already on file | |---|---|---| | POST | Created from record, then enrolled | Enrolled with the data on file. record is ignored. | | PATCH | Created from record, then enrolled | Fields you send are updated, then enrolled |\",\"url\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow\",\"mainEntityOfPage\":{\"@id\":\"https://docs.plura.ai/api-reference/workflows/send-to-workflow#webpage\"},\"dateModified\":\"2026-10-08T23:56:47.655Z\",\"publisher\":{\"@id\":\"https://docs.plura.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.plura.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Documentation","nav":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/PcxWWwX9jN"},{"anchor":"Blog","icon":"newspaper","href":"https://plura.ai/blog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/intro-to-plura"}]},{"tab":"API Reference","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"API Basics","href":"/api-reference/api-basics"},{"title":"Error Handling","description":"HTTP status codes, error response format, and common troubleshooting.","href":"/api-reference/errors"}]},{"group":"Workflows","pages":[{"title":"Send to Workflow","openapi":"POST /lead/sendtoworkflow","href":"/api-reference/workflows/send-to-workflow"},{"title":"Update \u0026 Send to Workflow","openapi":"PATCH /lead/sendtoworkflow","description":"Create or update a lead, then enroll it in a journey. Works exactly like [Send to Workflow](/api-reference/workflows/send-to-workflow) (`POST`), with one difference: if the lead is already on file, the fields you send in `record` are saved to the lead **before** it's enrolled, so the journey runs with your new data.\n\n- **Partial updates:** Only the fields you include are changed. Everything else on the lead stays the same. Send only `company` and only the company is updated.\n- **New leads:** If no matching lead exists, one is created from `record` and enrolled, same as `POST`.\n- **Finding the lead:** Send `record.phone`, `lead_id`, or both. You need at least one. Without either, no lead can be found and nothing is sent. Always send `phone` in E.164 digits-only format (e.g. `17145551234`) so it matches the lead on file.\n\n**Every PATCH enrolls the lead.** There is no update-only mode. Don't use this endpoint for bulk data cleanup unless you want every lead you touch sent into the journey.\n\n**Finding your Journey ID:** Extract it from your workspace URL: `app.plura.ai/[workspace]/journey/[JOURNEY-ID]/flow/[flow-id]`. The Journey ID is the UUID after `/journey/`. Use the Journey ID, not the Flow ID.\n\n**POST vs. PATCH**\n\n| | Lead not on file | Lead already on file |\n|---|---|---|\n| `POST` | Created from `record`, then enrolled | Enrolled with the data on file. `record` is ignored. |\n| `PATCH` | Created from `record`, then enrolled | Fields you send are updated, then enrolled |\n\nUse `POST` when the data already on file should win, such as re-enrolling a lead without touching its record. Use `PATCH` when the data you're sending should win, such as a lead source sending corrected or enriched details.\n","href":"/api-reference/workflows/update-and-send-to-workflow"}]},{"group":"Calls","pages":[{"title":"Initiate Call","openapi":"POST /agent","href":"/api-reference/calls/initiate-call"},{"title":"Get Call Details","openapi":"GET /calls/get","href":"/api-reference/calls/get-call-details"}]},{"group":"Leads","pages":[{"title":"Create Lead","openapi":"POST /lead/create","href":"/api-reference/leads/create-lead"},{"title":"Get Lead by Phone","openapi":"GET /lead/get","href":"/api-reference/leads/get-lead-by-phone"},{"title":"Get Lead by ID","openapi":"GET /lead/get","href":"/api-reference/leads/get-lead-by-id"},{"title":"Update Lead","openapi":"PATCH /lead/update","href":"/api-reference/leads/update-lead"}]},{"group":"Tags","pages":[{"title":"Add Tag","openapi":"PATCH /lead/tag","href":"/api-reference/tags/add-tag"},{"title":"Remove Tag","openapi":"DELETE /lead/tag","href":"/api-reference/tags/remove-tag"}]},{"group":"WebSocket API","pages":[{"title":"WebSocket Overview","href":"/api-reference/websocket/overview"},{"title":"WebSocket Connection","href":"/api-reference/websocket/connection"},{"title":"Sending Messages","href":"/api-reference/websocket/messages"},{"title":"Session Management \u0026 Code Examples","href":"/api-reference/websocket/session-management"}]},{"group":"Resources","pages":[{"title":"IP Whitelist","href":"/api-reference/ip-whitelist"}]}]}]},"basePath":"","title":"Send to Workflow - Documentation","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}