Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.
Publishes the working draft, making it the live call flow for the phone number. The {number} path parameter is the Allo phone number in E.164 format.Pass the lock_version of the draft you are publishing. Get it with Get call flow draft.
This changes live inbound routing immediately. If you would rather have a person confirm the change, don’t call this endpoint: Save call flow draft returns a confirmation_url where a signed-in user reviews the draft and publishes it themselves.
Publishing keeps the draft’s engine_subset. A NESTED_IVR flow only runs its root phone menu on live calls: save the draft with "engine_subset": "FULL_FLOW" to run the whole tree. See Engine subset.Publishing runs full validation, which is stricter than the lenient validation a draft save runs: a draft that saved successfully can still fail to publish. If any rule fails, the whole publish is rolled back and the previously live flow keeps routing calls.Publishing consumes the draft: the draft version becomes the published version, so the line is left with no draft and the response carries no confirmation_url. Start the next edit cycle with a fresh PUT …/call_flow/draft.
400 CALL_FLOW_INVALID: the draft failed full validation.
400 CALL_FLOW_ROOT_MENU_TOO_SMALL: the line runs an IVR and this flow would leave its menu with fewer than 2 options.
400 CALL_FLOW_CONTACT_PROPERTY_KEY_REQUIRED: a CONTACT_PROPERTY node has no propertyKey.
400 CALL_FLOW_CONTACT_PROPERTY_VALUE_REQUIRED: a CONTACT_PROPERTY node has no expectedValue.
400 CALL_FLOW_CONTACT_PROPERTY_UNKNOWN: a CONTACT_PROPERTY node’s propertyKey does not name a custom person property of your team. Renaming or deleting a property in the CRM invalidates a flow that branches on it.
404 CALL_FLOW_DRAFT_NOT_FOUND: there is no draft to publish. Save one first with PUT /v2/api/numbers/{number}/call_flow/draft.
404 PHONE_NUMBER_NOT_FOUND: the number is not one of your account’s numbers.
409 CALL_FLOW_STALE_LOCK: the lock_version is stale; refetch the draft and retry.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Allo — Help Center","description":"Documentation and support for Allo, the business phone system that does the work your calls create","colors":{"primary":"#002C2A","light":"#F7F5F0","dark":"#005C48"},"logo":{"light":"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-dark.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=fc710c4b2d7fad80babb5aff40fd445f","dark":"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-white.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=6aafc66adc4822b700749ea65edfd057","href":"https://help.withallo.com"},"favicon":"https://mintcdn.com/themobilefirstcompany/rQqa1VZUBtU6450W/icon.ico?fit=max\u0026auto=format\u0026n=rQqa1VZUBtU6450W\u0026q=85\u0026s=93c598907844385de27769ff740b1660","appearance":{"default":"light","strict":true},"background":{"color":{"dark":"#002C2A"}},"navbar":{"links":[{"href":"https://withallo.com/changelog","label":"Changelog"},{"href":"https://withallo.com/download","label":"Download"}],"primary":{"type":"button","label":"Get Started","href":"https://start.withallo.com"}},"footer":{"socials":{"x":"https://x.com/mobilefirstco","linkedin":"https://www.linkedin.com/company/the-mobile-first-company","website":"https://withallo.com"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://withallo.com/pricing"},{"label":"Download","href":"https://withallo.com/download"},{"label":"Features","href":"https://withallo.com/features"}]},{"header":"Resources","items":[{"label":"Help Center","href":"https://help.withallo.com"},{"label":"Contact Support","href":"https://help.withallo.com/en/support/contact"},{"label":"System status","href":"https://status.withallo.com"},{"label":"Trust center","href":"https://trust.themobilefirstcompany.com/"}]},{"header":"Company","items":[{"label":"About","href":"https://withallo.com/about"},{"label":"Blog","href":"https://withallo.com/blog"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://withallo.com/privacy-policy"},{"label":"Terms of Service","href":"https://withallo.com/terms-conditions"},{"label":"Trust Center","href":"https://trust.themobilefirstcompany.com"}]}]},"search":{"prompt":"Search documentation..."},"seo":{"metatags":{"canonical":"https://help.withallo.com","og:locale":"en_US","twitter:site":"@mobilefirstco"}},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-BJ9CLYY37R"},"intercom":{"appId":"q4vb84fg"},"telemetry":{"enabled":true}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"thumbnails":{"fonts":{"family":"Inter"}},"interaction":{"drilldown":false},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"en/get-started"},{"language":"fr","href":"fr/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"themobilefirstcompany","hasAudioNarration":false,"actualSubdomain":"themobilefirstcompany","customDomains":["help.withallo.com"],"gitSource":{"type":"github","owner":"themobilefirstco","repo":"doc-allo","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae90bd4b2788b33cff56a47","collectionId":"34c98883-cb44-4879-859e-954eb2125f58","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae90bd4b2788b33cff56a47"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae90bd4b2788b33cff56a47","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"en","tag":"API Reference","count":146},{"language":"fr","tag":"Référence API","count":146},{"language":"en","tag":"Help","count":104},{"language":"fr","tag":"Aide","count":104},{"language":"en","tag":"Integrations","count":39},{"language":"fr","tag":"Intégrations","count":39},{"language":"en","tag":"CRM","count":21},{"language":"fr","tag":"CRM","count":21},{"language":"fr","tag":"Numéros de téléphone","count":15},{"language":"en","tag":"Partner","count":14},{"language":"fr","tag":"Partner","count":14},{"language":"en","tag":"Webhooks","count":13},{"language":"fr","tag":"Webhooks","count":13},{"language":"en","tag":"AI Receptionist","count":12},{"language":"fr","tag":"Réceptionniste IA","count":12},{"language":"en","tag":"Incoming calls","count":11},{"language":"fr","tag":"Appels entrants","count":11},{"language":"en","tag":"SMS","count":10},{"language":"en","tag":"Conversations","count":10},{"language":"fr","tag":"SMS","count":10}]},"assistantConfig":{},"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":"en/v2/api-reference/phone-numbers/publish-call-flow","slug":"/en/v2/api-reference/phone-numbers/publish-call-flow","pageMetadata":{"title":"Publish call flow","openapi":"POST /v2/api/numbers/{number}/call_flow/publish","description":"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.","href":"/en/v2/api-reference/phone-numbers/publish-call-flow"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required scope:`}),` `,_jsx(_components.code,{children:`PHONE_NUMBERS_WRITE`})]})}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(_components.p,{children:[`Publishes the working draft, making it the `,_jsx(_components.strong,{children:`live`}),` call flow for the phone number. The `,_jsx(_components.code,{children:`{number}`}),` path parameter is the Allo phone number in E.164 format.`]}),`\n`,_jsxs(_components.p,{children:[`Pass the `,_jsx(_components.code,{children:`lock_version`}),` of the draft you are publishing. Get it with `,_jsx(_components.a,{href:`/en/v2/api-reference/phone-numbers/get-call-flow-draft`,children:`Get call flow draft`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`This changes live inbound routing immediately. If you would rather have a person confirm the change, don’t call this endpoint: `,_jsx(_components.a,{href:`/en/v2/api-reference/phone-numbers/save-call-flow-draft`,children:`Save call flow draft`}),` returns a `,_jsx(_components.code,{children:`confirmation_url`}),` where a signed-in user reviews the draft and publishes it themselves.`]})}),`\n`,_jsxs(_components.p,{children:[`Publishing keeps the draft’s `,_jsx(_components.code,{children:`engine_subset`}),`. A `,_jsx(_components.code,{children:`NESTED_IVR`}),` flow only runs its root phone menu on live calls: save the draft with `,_jsx(_components.code,{children:`\"engine_subset\": \"FULL_FLOW\"`}),` to run the whole tree. See `,_jsx(_components.a,{href:`/en/v2/api-reference/phone-numbers/save-call-flow-draft#engine-subset`,children:`Engine subset`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Publishing runs `,_jsx(_components.strong,{children:`full`}),` validation, which is stricter than the lenient validation a draft save runs: a draft that saved successfully can still fail to publish. If any rule fails, the whole publish is rolled back and the previously live flow keeps routing calls.`]}),`\n`,_jsxs(_components.p,{children:[`Publishing `,_jsx(_components.strong,{children:`consumes`}),` the draft: the draft version becomes the published version, so the line is left with no draft and the response carries no `,_jsx(_components.code,{children:`confirmation_url`}),`. Start the next edit cycle with a fresh `,_jsx(_components.code,{children:`PUT …/call_flow/draft`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 CALL_FLOW_INVALID`}),`: the draft failed full validation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 CALL_FLOW_ROOT_MENU_TOO_SMALL`}),`: the line runs an IVR and this flow would leave its menu with fewer than 2 options.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 CALL_FLOW_CONTACT_PROPERTY_KEY_REQUIRED`}),`: a `,_jsx(_components.code,{children:`CONTACT_PROPERTY`}),` node has no `,_jsx(_components.code,{children:`propertyKey`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 CALL_FLOW_CONTACT_PROPERTY_VALUE_REQUIRED`}),`: a `,_jsx(_components.code,{children:`CONTACT_PROPERTY`}),` node has no `,_jsx(_components.code,{children:`expectedValue`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`400 CALL_FLOW_CONTACT_PROPERTY_UNKNOWN`}),`: a `,_jsx(_components.code,{children:`CONTACT_PROPERTY`}),` node’s `,_jsx(_components.code,{children:`propertyKey`}),` does not name a custom person property of your team. Renaming or deleting a property in the CRM invalidates a flow that branches on it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`404 CALL_FLOW_DRAFT_NOT_FOUND`}),`: there is no draft to publish. Save one first with `,_jsx(_components.code,{children:`PUT /v2/api/numbers/{number}/call_flow/draft`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`404 PHONE_NUMBER_NOT_FOUND`}),`: the number is not one of your account’s numbers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`409 CALL_FLOW_STALE_LOCK`}),`: the `,_jsx(_components.code,{children:`lock_version`}),` is stale; refetch the draft and retry.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publish call flow","openapi":"POST /v2/api/numbers/{number}/call_flow/publish","description":"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.","href":"/en/v2/api-reference/phone-numbers/publish-call-flow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Behavior","slug":"behavior","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/themobilefirstcompany/8a9814acae5adfe6/webmcp.js"],"openApiReferenceData":{"operation":{"summary":"Publish call flow","description":"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.","operationId":"publishCallFlow","tags":["Phone Numbers"],"security":["64b70bd0-7c16-4e50-92b3-c9080921b0b1"],"parameters":["37c3c8e4-5699-423e-a8f6-077bb544d495"],"requestBody":"b993b599-7d80-4760-9ec1-b86476b3ff42","responses":{"200":"8de3c340-b17f-4c5c-8724-7078fa9f056b","400":"cf9ca941-2aec-485c-b16f-d5d5c0c2c998","401":"94f1deea-4cdc-4dc4-9b47-633b196e6f56","404":"ba5302a9-114d-42f5-9d64-07b213b9052d","409":"6ff4a0ad-5add-4dd6-a451-585ba5a38d7f","429":"f58d136c-8039-4b6c-a56f-30a8ba577402"},"method":"post","type":"path","servers":["da3f02f3-3994-43c6-a555-8a2834d3bbad"],"path":"/v2/api/numbers/{number}/call_flow/publish","baseUrlOptions":["https://api.withallo.com"],"title":"Publish call flow","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"37c3c8e4-5699-423e-a8f6-077bb544d495":{"name":"number","in":"path","required":true,"description":"Allo phone number in E.164 format","schema":{"type":"string","example":"+14155551234","isRequired":true,"description":"Allo phone number in E.164 format","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lock_version"],"properties":{"lock_version":{"type":"integer","description":"The `lock_version` of the draft you are publishing.","example":0,"isRequired":true,"uniqueKey":"lock_version","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"lock_version":0}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"8de3c340-b17f-4c5c-8724-7078fa9f056b":{"description":"The published call flow","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"A version of a phone number's call flow.","properties":{"id":{"oneOf":[{"type":"string","description":"The call flow version ID. Null for a synthesized (never-persisted) flow.","example":"cflv-abc123","uniqueKey":"data.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The call flow version ID. Null for a synthesized (never-persisted) flow.","example":"cflv-abc123","uniqueKey":"data.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.id","typeLabel":"string | null"},"flow_id":{"oneOf":[{"type":"string","description":"The parent call flow ID. Null for a synthesized flow.","example":"cflw-abc123","uniqueKey":"data.flow_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The parent call flow ID. Null for a synthesized flow.","example":"cflw-abc123","uniqueKey":"data.flow_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.flow_id","typeLabel":"string | null"},"version":{"type":"integer","description":"Monotonic version number within the flow.","example":3,"uniqueKey":"data.version","typeLabel":"integer"},"status":{"type":"string","enum":["DRAFT","PUBLISHED","SYNTHESIZED"],"description":"DRAFT (working copy), PUBLISHED (live), or SYNTHESIZED (in-memory representation of a legacy IVR-only line).","example":"PUBLISHED","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"lock_version":{"type":"integer","description":"Optimistic-concurrency token; pass it back on the next draft save.","example":0,"uniqueKey":"data.lock_version","typeLabel":"integer"},"schema_version":{"type":"integer","description":"The call flow schema version this definition conforms to.","example":1,"uniqueKey":"data.schema_version","typeLabel":"integer"},"engine_subset":{"type":"string","enum":["NESTED_IVR","FULL_FLOW"],"example":"FULL_FLOW","description":"`FULL_FLOW` runs the whole tree on live calls. `NESTED_IVR` runs only the root phone menu: its keys that lead to a nested menu, a condition or a voicemail node do nothing.","uniqueKey":"data.engine_subset","typeLabel":"enum\u003cstring>"},"number":{"oneOf":[{"type":"string","description":"E.164 of the line this flow routes. Null for a never-persisted SYNTHESIZED flow.","example":"+14155551234","uniqueKey":"data.number.oneOf.0","typeLabel":"string"},{"type":"null","description":"E.164 of the line this flow routes. Null for a never-persisted SYNTHESIZED flow.","example":"+14155551234","uniqueKey":"data.number.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.number","typeLabel":"string | null"},"confirmation_url":{"oneOf":[{"type":"string","description":"A link where a signed-in user reviews this draft and publishes it. Present only on a `DRAFT` (a `PUBLISHED` or `SYNTHESIZED` version has nothing to confirm). Use it when a person should approve the change; to go live without one, call `POST /v2/api/numbers/{number}/call_flow/publish`. Treat it as opaque: pass it through verbatim, and never construct or parse it.","example":"https://app.withallo.com/call-flow-draft/cflv-abc123","uniqueKey":"data.confirmation_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"A link where a signed-in user reviews this draft and publishes it. Present only on a `DRAFT` (a `PUBLISHED` or `SYNTHESIZED` version has nothing to confirm). Use it when a person should approve the change; to go live without one, call `POST /v2/api/numbers/{number}/call_flow/publish`. Treat it as opaque: pass it through verbatim, and never construct or parse it.","example":"https://app.withallo.com/call-flow-draft/cflv-abc123","uniqueKey":"data.confirmation_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.confirmation_url","typeLabel":"string | null"},"entry_node_id":{"type":"string","description":"The id of the entry node in `definition.nodes`.","example":"node-22","uniqueKey":"data.entry_node_id","typeLabel":"string"},"definition":{"type":"object","description":"The call flow tree document (opaque; camelCase keys).","additionalProperties":true,"uniqueKey":"data.definition","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"cflv-abc123","flow_id":"cflw-abc123","version":3,"status":"PUBLISHED","lock_version":0,"schema_version":1,"engine_subset":"FULL_FLOW","number":"+14155551234","confirmation_url":"https://app.withallo.com/call-flow-draft/cflv-abc123","entry_node_id":"node-22","definition":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"cf9ca941-2aec-485c-b16f-d5d5c0c2c998":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"94f1deea-4cdc-4dc4-9b47-633b196e6f56":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"ba5302a9-114d-42f5-9d64-07b213b9052d":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"6ff4a0ad-5add-4dd6-a451-585ba5a38d7f":{"description":"Conflict with existing resource","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"f58d136c-8039-4b6c-a56f-30a8ba577402":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"error.retryable","typeLabel":"boolean"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"retry_after_seconds":{"oneOf":[{"type":"integer","uniqueKey":"error.retry_after_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"error.retry_after_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.retry_after_seconds","typeLabel":"integer | null"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","retry_after_seconds":123}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"64b70bd0-7c16-4e50-92b3-c9080921b0b1":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"da3f02f3-3994-43c6-a555-8a2834d3bbad":{"url":"https://api.withallo.com","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"themobilefirstcompany","siteName":"Allo — Help Center","title":"Publish call flow - Allo — Help Center","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/v2/api-reference/phone-numbers/publish-call-flow","matchLevel":0},"fr":{"href":"/fr/v2/api-reference/phone-numbers/publish-call-flow","matchLevel":1}}},"lastModified":"2026-10-16T10:02:36.897Z","originalFileLocation":"en/v2/api-reference/phone-numbers/publish-call-flow.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Allo — Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_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/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publish call flow - Allo — Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Allo — Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://themobilefirstcompany.mintlify.app/_mintlify/api/og/v2?division=Phone+Numbers\u0026amp;title=Publish+call+flow\u0026amp;description=Publishes+the+working+draft%2C+making+it+the+live+call+flow+for+the+phone+number.+This+changes+live+inbound+routing+immediately.+Runs+full+validation%2C+which+is+st\u0026amp;theme=79d05b053982c0bb2603e704\u0026amp;signature=6069feaafd92cfbe4a0de758bf2df474160fc355dd7e219cdfbd344486c66cec\">\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=\"Publish call flow - Allo — Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://themobilefirstcompany.mintlify.app/_mintlify/api/og/v2?division=Phone+Numbers\u0026amp;title=Publish+call+flow\u0026amp;description=Publishes+the+working+draft%2C+making+it+the+live+call+flow+for+the+phone+number.+This+changes+live+inbound+routing+immediately.+Runs+full+validation%2C+which+is+st\u0026amp;theme=79d05b053982c0bb2603e704\u0026amp;signature=6069feaafd92cfbe4a0de758bf2df474160fc355dd7e219cdfbd344486c66cec\">\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/themobilefirstcompany/XpmSCPLu2mWezDP7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Allo — Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#002C2A\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/v2/api-reference/phone-numbers/publish-call-flow.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://help.withallo.com/fr/v2/api-reference/phone-numbers/publish-call-flow\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.withallo.com/#organization\",\"name\":\"Allo — Help Center\",\"url\":\"https://help.withallo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/themobilefirstcompany/lUQseAX2HkM5_D4I/Allo-logo-dark.svg?fit=max\u0026auto=format\u0026n=lUQseAX2HkM5_D4I\u0026q=85\u0026s=fc710c4b2d7fad80babb5aff40fd445f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.withallo.com#website\",\"name\":\"Allo — Help Center\",\"url\":\"https://help.withallo.com\",\"publisher\":{\"@id\":\"https://help.withallo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow#webpage\",\"url\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\",\"name\":\"Publish call flow\",\"description\":\"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\",\"dateModified\":\"2026-10-16T10:02:36.897Z\",\"isPartOf\":{\"@id\":\"https://help.withallo.com#website\"},\"breadcrumb\":{\"@id\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Phone Numbers\",\"item\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Publish call flow\",\"item\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow#apireference\",\"headline\":\"Publish call flow\",\"name\":\"Publish call flow\",\"description\":\"Publishes the working draft, making it the live call flow for the phone number. This changes live inbound routing immediately. Runs full validation, which is stricter than the lenient validation a draft save runs, so a draft that saved successfully can still fail to publish; the whole publish rolls back if validation fails. Publishing consumes the draft, so the line is left with no draft afterwards.\",\"url\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow\",\"mainEntityOfPage\":{\"@id\":\"https://help.withallo.com/en/v2/api-reference/phone-numbers/publish-call-flow#webpage\"},\"dateModified\":\"2026-10-16T10:02:36.897Z\",\"publisher\":{\"@id\":\"https://help.withallo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://help.withallo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Allo — Help Center\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Allo — Help Center","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Help","pages":[{"title":"Help","href":"/en/get-started"}]},{"tab":"API Reference","groups":[{"group":"API","pages":[{"title":"Overview","href":"/en/v2/api-reference/introduction"},{"title":"Authentication","href":"/en/v2/api-reference/guides/authentication"},{"title":"Rate limits","href":"/en/v2/api-reference/guides/rate-limits"},{"title":"Pagination","href":"/en/v2/api-reference/guides/pagination"},{"title":"Error handling","href":"/en/v2/api-reference/guides/error-handling"},{"title":"Error codes","href":"/en/v2/api-reference/guides/error-codes"},{"title":"Common use cases","href":"/en/v2/api-reference/guides/common-use-cases"}]},{"group":"Webhooks","pages":[{"title":"Overview","href":"/en/v2/api-reference/webhooks/overview"},{"title":"List webhooks","openapi":"GET /v2/api/webhooks","href":"/en/v2/api-reference/webhooks/get-webhooks"},{"title":"Get webhook","openapi":"GET /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/get-webhook"},{"title":"Create webhook","openapi":"POST /v2/api/webhooks","href":"/en/v2/api-reference/webhooks/create-webhook"},{"title":"Update webhook","openapi":"PUT /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","openapi":"DELETE /v2/api/webhooks/{webhook_id}","href":"/en/v2/api-reference/webhooks/delete-webhook"},{"title":"List event types","openapi":"GET /v2/api/webhooks/event_types","href":"/en/v2/api-reference/webhooks/list-event-types"},{"title":"Event catalog","href":"/en/v2/api-reference/webhooks/event-catalog"},{"title":"Verifying webhook signatures","href":"/en/v2/api-reference/webhooks/verifying-signatures"},{"title":"Delivery and retries","href":"/en/v2/api-reference/webhooks/delivery-and-retries"},{"title":"Testing webhooks","href":"/en/v2/api-reference/webhooks/testing"},{"title":"Best practices","href":"/en/v2/api-reference/webhooks/best-practices"},{"title":"Troubleshoot","href":"/en/v2/api-reference/webhooks/troubleshooting"}]},{"group":"Conversations","pages":[{"title":"Overview","href":"/en/v2/api-reference/conversations/overview"},{"title":"List conversations","openapi":"GET /v2/api/conversations","href":"/en/v2/api-reference/conversations/list-conversations"},{"title":"Get conversation item","openapi":"GET /v2/api/conversations/items/{id}","href":"/en/v2/api-reference/conversations/get-item"},{"title":"Get recording download link","openapi":"GET /v2/api/conversations/items/{id}/recording","href":"/en/v2/api-reference/conversations/get-item-recording"},{"title":"Search conversation items","openapi":"POST /v2/api/conversations/items/search","href":"/en/v2/api-reference/conversations/search-conversation-items"},{"title":"Get many conversation items","openapi":"POST /v2/api/conversations/items/batch","href":"/en/v2/api-reference/conversations/batch-get"},{"title":"Execute conversation action","openapi":"PUT /v2/api/conversations/{contact_number}/action","href":"/en/v2/api-reference/conversations/execute-action"},{"title":"Update call summary","openapi":"PATCH /v2/api/conversations/items/{id}/summary","href":"/en/v2/api-reference/conversations/update-summary"},{"title":"Pin conversation","openapi":"PUT /v2/api/conversations/{contact_number}/pin","href":"/en/v2/api-reference/conversations/pin-conversation"},{"title":"Unpin conversation","openapi":"DELETE /v2/api/conversations/{contact_number}/pin","href":"/en/v2/api-reference/conversations/unpin-conversation"}]},{"group":"CRM","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/overview"}]},{"group":"People","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/people-overview"},{"title":"Get person","openapi":"GET /v2/api/crm/people/{id}","href":"/en/v2/api-reference/crm/get-person"},{"title":"Create person","openapi":"POST /v2/api/crm/people","href":"/en/v2/api-reference/crm/create-person"},{"title":"Update person","openapi":"PUT /v2/api/crm/people/{id}","href":"/en/v2/api-reference/crm/update-person"},{"title":"Search people","openapi":"POST /v2/api/crm/people/search","href":"/en/v2/api-reference/crm/search-people"}]},{"group":"Custom fields","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/attributes-overview"},{"title":"List custom fields","openapi":"GET /v2/api/crm/attributes","href":"/en/v2/api-reference/crm/list-attributes"},{"title":"Create custom field","openapi":"POST /v2/api/crm/attributes","href":"/en/v2/api-reference/crm/create-attribute"},{"title":"Update custom field","openapi":"PATCH /v2/api/crm/attributes/{key}","href":"/en/v2/api-reference/crm/update-attribute"},{"title":"Delete custom field","openapi":"DELETE /v2/api/crm/attributes/{key}","href":"/en/v2/api-reference/crm/delete-attribute"}]},{"group":"Views","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/views-overview"},{"title":"List views","openapi":"GET /v2/api/crm/views","href":"/en/v2/api-reference/crm/list-views"},{"title":"Get view","openapi":"GET /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/get-view"},{"title":"Create view","openapi":"POST /v2/api/crm/views","href":"/en/v2/api-reference/crm/create-view"},{"title":"Update view","openapi":"PATCH /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/update-view"},{"title":"Delete view","openapi":"DELETE /v2/api/crm/views/{id}","href":"/en/v2/api-reference/crm/delete-view"}]},{"group":"Companies","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/companies-overview"},{"title":"Get company","openapi":"GET /v2/api/crm/companies/{id}","href":"/en/v2/api-reference/crm/get-company"},{"title":"Create company","openapi":"POST /v2/api/crm/companies","href":"/en/v2/api-reference/crm/create-company"},{"title":"Update company","openapi":"PUT /v2/api/crm/companies/{id}","href":"/en/v2/api-reference/crm/update-company"},{"title":"Search companies","openapi":"POST /v2/api/crm/companies/search","href":"/en/v2/api-reference/crm/search-companies"},{"title":"List company attributes","openapi":"GET /v2/api/crm/companies/attributes","href":"/en/v2/api-reference/crm/list-company-attributes"},{"title":"Create company attribute","openapi":"POST /v2/api/crm/companies/attributes","href":"/en/v2/api-reference/crm/create-company-attribute"},{"title":"Update company attribute","openapi":"PATCH /v2/api/crm/companies/attributes/{key}","href":"/en/v2/api-reference/crm/update-company-attribute"},{"title":"Delete company attribute","openapi":"DELETE /v2/api/crm/companies/attributes/{key}","href":"/en/v2/api-reference/crm/delete-company-attribute"}]},{"group":"Deals","pages":[{"title":"Overview","href":"/en/v2/api-reference/crm/deals-overview"},{"title":"Search deals","openapi":"POST /v2/api/crm/deals/search","href":"/en/v2/api-reference/crm/search-deals"},{"title":"Get deal","openapi":"GET /v2/api/crm/deals/{id}","href":"/en/v2/api-reference/crm/get-deal"}]},{"group":"Notes","pages":[{"title":"Overview","href":"/en/v2/api-reference/notes/overview"},{"title":"List conversation notes","openapi":"GET /v2/api/conversations/{contact_number}/notes","href":"/en/v2/api-reference/notes/list-conversation-notes"},{"title":"Create conversation note","openapi":"POST /v2/api/conversations/{contact_number}/notes","href":"/en/v2/api-reference/notes/create-conversation-note"},{"title":"Get conversation note","openapi":"GET /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/get-conversation-note"},{"title":"Update conversation note","openapi":"PATCH /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/update-conversation-note"},{"title":"Delete conversation note","openapi":"DELETE /v2/api/conversations/notes/{id}","href":"/en/v2/api-reference/notes/delete-conversation-note"},{"title":"List person notes","openapi":"GET /v2/api/crm/people/{person_id}/notes","href":"/en/v2/api-reference/notes/list-person-notes"},{"title":"Create person note","openapi":"POST /v2/api/crm/people/{person_id}/notes","href":"/en/v2/api-reference/notes/create-person-note"},{"title":"Update person note","openapi":"PATCH /v2/api/crm/people/{person_id}/notes/{note_id}","href":"/en/v2/api-reference/notes/update-person-note"},{"title":"Delete person note","openapi":"DELETE /v2/api/crm/people/{person_id}/notes/{note_id}","href":"/en/v2/api-reference/notes/delete-person-note"}]},{"group":"Threads","pages":[{"title":"Overview","href":"/en/v2/api-reference/threads/overview"},{"title":"Get thread","openapi":"GET /v2/api/threads/{id}","href":"/en/v2/api-reference/threads/get-thread"},{"title":"Find thread","openapi":"GET /v2/api/threads","href":"/en/v2/api-reference/threads/find-thread"},{"title":"Create thread","openapi":"POST /v2/api/threads","href":"/en/v2/api-reference/threads/create-thread"},{"title":"Create thread comment","openapi":"POST /v2/api/threads/{id}/comments","href":"/en/v2/api-reference/threads/create-comment"},{"title":"Update thread comment","openapi":"PATCH /v2/api/threads/comments/{comment_id}","href":"/en/v2/api-reference/threads/update-comment"},{"title":"Resolve thread","openapi":"POST /v2/api/threads/{id}/resolve","href":"/en/v2/api-reference/threads/resolve-thread"},{"title":"Unresolve thread","openapi":"POST /v2/api/threads/{id}/unresolve","href":"/en/v2/api-reference/threads/unresolve-thread"}]},{"group":"Inboxes","pages":[{"title":"Overview","href":"/en/v2/api-reference/inboxes/overview"},{"title":"List inboxes","openapi":"GET /v2/api/inboxes","href":"/en/v2/api-reference/inboxes/list-inboxes"},{"title":"Get inbox suggestions","openapi":"GET /v2/api/inboxes/suggestions","href":"/en/v2/api-reference/inboxes/get-inbox-suggestions"},{"title":"List menu options","openapi":"GET /v2/api/numbers/{number}/menu_options","href":"/en/v2/api-reference/inboxes/list-menu-options"},{"title":"Create inbox","openapi":"POST /v2/api/inboxes","href":"/en/v2/api-reference/inboxes/create-inbox"},{"title":"Update inbox","openapi":"PATCH /v2/api/inboxes/{inbox_id}","href":"/en/v2/api-reference/inboxes/update-inbox"},{"title":"Delete inbox","openapi":"DELETE /v2/api/inboxes/{inbox_id}","href":"/en/v2/api-reference/inboxes/delete-inbox"}]},{"group":"Phone Numbers","pages":[{"title":"Overview","href":"/en/v2/api-reference/phone-numbers/overview"},{"title":"List phone numbers","openapi":"GET /v2/api/numbers","href":"/en/v2/api-reference/phone-numbers/list-numbers"},{"title":"Get call flow","openapi":"GET /v2/api/numbers/{number}/call_flow","href":"/en/v2/api-reference/phone-numbers/get-call-flow"},{"title":"Get call flow draft","openapi":"GET /v2/api/numbers/{number}/call_flow/draft","href":"/en/v2/api-reference/phone-numbers/get-call-flow-draft"},{"title":"Save call flow draft","openapi":"PUT /v2/api/numbers/{number}/call_flow/draft","description":"Creates or updates the working draft of a phone number's call flow. The draft is validated leniently and is not live until published. Optimistic concurrency: pass the `lock_version` returned by a previous read to detect a concurrent edit, and `base_published_version` to detect a publish that happened mid-edit.","href":"/en/v2/api-reference/phone-numbers/save-call-flow-draft"},{"title":"Publish call flow","openapi":"POST /v2/api/numbers/{number}/call_flow/publish","href":"/en/v2/api-reference/phone-numbers/publish-call-flow"}]},{"group":"AI Receptionist","pages":[{"title":"Overview","description":"Read and write the AI receptionist of an Allo line: prompt, voice, business hours, transfer rules, calendars and knowledge","href":"/en/v2/api-reference/agent/overview"},{"title":"Get configuration","openapi":"GET /v2/api/numbers/{number}/agent","href":"/en/v2/api-reference/agent/get-agent"},{"title":"Update configuration","openapi":"PATCH /v2/api/numbers/{number}/agent","href":"/en/v2/api-reference/agent/update-agent"},{"title":"Set prompt","openapi":"PUT /v2/api/numbers/{number}/agent/prompt","href":"/en/v2/api-reference/agent/set-agent-prompt"},{"title":"Turn on or off","openapi":"PUT /v2/api/numbers/{number}/agent/status","href":"/en/v2/api-reference/agent/set-agent-status"},{"title":"Add website knowledge","openapi":"POST /v2/api/numbers/{number}/agent/knowledge/websites","href":"/en/v2/api-reference/agent/add-website-knowledge"},{"title":"Enable or disable a website","openapi":"PATCH /v2/api/numbers/{number}/agent/knowledge/websites/{id}","href":"/en/v2/api-reference/agent/update-website-knowledge"},{"title":"Delete website knowledge","openapi":"DELETE /v2/api/numbers/{number}/agent/knowledge/websites/{id}","href":"/en/v2/api-reference/agent/delete-website-knowledge"},{"title":"Delete file knowledge","openapi":"DELETE /v2/api/numbers/{number}/agent/knowledge/files/{id}","href":"/en/v2/api-reference/agent/delete-file-knowledge"},{"title":"List calendars","openapi":"GET /v2/api/calendars","href":"/en/v2/api-reference/agent/list-calendars"},{"title":"Get a calendar","openapi":"GET /v2/api/calendars/{id}","href":"/en/v2/api-reference/agent/get-calendar"},{"title":"List voices","openapi":"GET /v2/api/voices","href":"/en/v2/api-reference/agent/list-voices"}]},{"group":"Tags","pages":[{"title":"Overview","href":"/en/v2/api-reference/tags/overview"},{"title":"List tags","openapi":"GET /v2/api/tags","href":"/en/v2/api-reference/tags/list-tags"},{"title":"Create tag","openapi":"POST /v2/api/tags","href":"/en/v2/api-reference/tags/create-tag"},{"title":"Delete tag","openapi":"DELETE /v2/api/tags/{id}","href":"/en/v2/api-reference/tags/delete-tag"},{"title":"Add tags","openapi":"POST /v2/api/conversations/items/{id}/tags","href":"/en/v2/api-reference/tags/add-tags"},{"title":"Remove tag","openapi":"DELETE /v2/api/conversations/items/{id}/tags/{tag}","href":"/en/v2/api-reference/tags/remove-tag"}]},{"group":"Summary Templates","pages":[{"title":"Overview","href":"/en/v2/api-reference/summary-templates/overview"},{"title":"List summary templates","openapi":"GET /v2/api/summary_templates","href":"/en/v2/api-reference/summary-templates/list-summary-templates"},{"title":"Get summary template","openapi":"GET /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/get-summary-template"},{"title":"Create summary template","openapi":"POST /v2/api/summary_templates","href":"/en/v2/api-reference/summary-templates/create-summary-template"},{"title":"Update summary template","openapi":"PUT /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/update-summary-template"},{"title":"Delete summary template","openapi":"DELETE /v2/api/summary_templates/{id}","href":"/en/v2/api-reference/summary-templates/delete-summary-template"},{"title":"Set a number's default template","openapi":"PUT /v2/api/numbers/{number}/default_summary_template","href":"/en/v2/api-reference/summary-templates/set-number-default-summary-template"}]},{"group":"Users","pages":[{"title":"Overview","href":"/en/v2/api-reference/users/overview"},{"title":"Me","openapi":"GET /v2/api/me","href":"/en/v2/api-reference/users/me"},{"title":"List users","openapi":"GET /v2/api/users","href":"/en/v2/api-reference/users/list-users"},{"title":"Get user","openapi":"GET /v2/api/users/{id}","href":"/en/v2/api-reference/users/get-user"}]},{"group":"SMS","pages":[{"title":"Overview","href":"/en/v2/api-reference/sms/overview"},{"title":"Send SMS","openapi":"POST /v1/api/sms","href":"/en/v2/api-reference/sms/send-sms"},{"title":"Send SMS (France)","openapi":"POST /v1/api/sms#france","href":"/en/v2/api-reference/sms/send-sms-france"}]},{"group":"Analytics","pages":[{"title":"Overview","href":"/en/v2/api-reference/analytics/overview"},{"title":"Team metrics","openapi":"POST /v2/api/analytics/overview","href":"/en/v2/api-reference/analytics/team-summary"},{"title":"Outbound metrics","openapi":"POST /v2/api/analytics/outbound","href":"/en/v2/api-reference/analytics/outbound"}]},{"group":"Power Dialer","pages":[{"title":"Overview","href":"/en/v2/api-reference/dialing-queues/overview"},{"title":"List current queue numbers","openapi":"GET /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/get-current"},{"title":"Upsert current queue","openapi":"PATCH /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/update-current"},{"title":"Append numbers","openapi":"POST /v2/api/dialing-queues/current/numbers","href":"/en/v2/api-reference/dialing-queues/append-numbers"},{"title":"Clear queue numbers","openapi":"DELETE /v2/api/dialing-queues/current/numbers","href":"/en/v2/api-reference/dialing-queues/clear-numbers"},{"title":"Reset current queue","openapi":"POST /v2/api/dialing-queues/current","href":"/en/v2/api-reference/dialing-queues/reset-current"},{"title":"Reassign queue","openapi":"PATCH /v2/api/dialing-queues/{queue_id}/assignee","href":"/en/v2/api-reference/dialing-queues/assign-queue"}]},{"group":"Partner","pages":[{"title":"Overview","href":"/en/v2/api-reference/partner/overview"},{"title":"Get account price","openapi":"GET /v2/api/partner/accounts/price","href":"/en/v2/api-reference/partner/get-price"},{"title":"Create account","openapi":"POST /v2/api/partner/accounts","href":"/en/v2/api-reference/partner/create-account"},{"title":"Get account","openapi":"GET /v2/api/partner/accounts/{id}","href":"/en/v2/api-reference/partner/get-account"},{"title":"Deactivate account","openapi":"DELETE /v2/api/partner/accounts/{id}","href":"/en/v2/api-reference/partner/delete-account"},{"title":"Get number price","openapi":"GET /v2/api/partner/accounts/{id}/numbers/price","href":"/en/v2/api-reference/partner/get-number-price"},{"title":"Add number","openapi":"POST /v2/api/partner/accounts/{id}/numbers","href":"/en/v2/api-reference/partner/add-number"},{"title":"Add member","openapi":"POST /v2/api/partner/accounts/{id}/members","href":"/en/v2/api-reference/partner/add-member"},{"title":"List members","openapi":"GET /v2/api/partner/accounts/{id}/members","href":"/en/v2/api-reference/partner/list-members"},{"title":"Get prepaid credit","openapi":"GET /v2/api/partner/credit","href":"/en/v2/api-reference/partner/get-credit"},{"title":"Get eSIM offer","openapi":"GET /v2/api/partner/accounts/{account_id}/esims/offer","href":"/en/v2/api-reference/partner/get-esim-offer"},{"title":"Order eSIM","openapi":"POST /v2/api/partner/accounts/{account_id}/esims","href":"/en/v2/api-reference/partner/order-esim"},{"title":"Get eSIM","openapi":"GET /v2/api/partner/esims/{id}","href":"/en/v2/api-reference/partner/get-esim"},{"title":"Get eSIM activation code","openapi":"GET /v2/api/partner/esims/{id}/activation_code","href":"/en/v2/api-reference/partner/get-esim-activation-code"}]}]}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/v2/api-reference/phone-numbers/publish-call-flow"}]}]},"basePath":"","title":"Publish call flow - Allo — Help Center","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}