Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.
AlphaThis endpoint is in alpha: the request shape may still change without a deprecation cycle.Replaces the routes of one routing form and returns the routing form in the shape that Get a Routing Form returns.
routes holds the complete route list. This endpoint is not an append and not a patch.
Every entry creates a route. An id in an entry is ignored, and the response carries the new ids.
A stored route that the body leaves out is deleted.
Read the routes first and send them back with your changes. Send the whole list every time.routes must be present. A body without it answers 422, so a mistyped key never deletes every route.Array position sets the route order. The routing form reads the routes in that order and takes the first route whose conditions hold.
fallback is optional. It is the destination that takes every submission that matches no route.If the body names no fallback, the routing form keeps its stored fallback destination. Replacing the route list never moves where an unmatched submission goes.
The fallback decides where every unmatched submission goes. A body that restates it slightly differently redirects that traffic, and nothing in the response says so. Leave fallback out unless you mean to change it.
A route carries rules, the condition tree that selects it. A group holds child nodes under all for AND, or under any for OR. A child is a group or a condition.
A condition names its question with inputId, the same key that the read endpoints return.The operator is one of equals, does_not_equal, is_any_of, is_not_any_of, contains, does_not_contain, starts_with, ends_with, greater_than, greater_than_or_equal, less_than, less_than_or_equal, is_empty or is_not_empty. equals and does_not_equal take exactly one value. The list operators take 1 to 500 values. The ordering operators take exactly one numeric value and match only a numeric answer. is_empty and is_not_empty take none.
type takes EVENT_TYPE, TEAM_PAGE, URL or CUSTOM_PAGE. Each type reads its own fields: eventTypeId, teamId, customUrl with submissionParamsForwarding, or headline with body.
A route points at an event type or a team of your own organization. A route that points anywhere else answers 400, and the whole write is refused. A rule that names a question of another routing form answers 400 as well.
The id is a UUID. A malformed id answers 404, not 422. A routing form outside your workspace answers 404 as well.
The kind of destination. EVENT_TYPE opens a scheduling page, TEAM_PAGE opens the page of a team, URL redirects to an external address, and CUSTOM_PAGE shows a message inside the routing form.
A node of the condition tree that selects a route. A group holds child nodes under all for AND, or under any for OR. A child is a group or a condition. The tree nests at most 10 levels deep.
The comparison. equals and does_not_equal take exactly one value. The list operators take 1 to 500 values. The ordering operators greater_than, greater_than_or_equal, less_than and less_than_or_equal take exactly one numeric value and match only a numeric answer. is_empty and is_not_empty take none.
The comparison. equals and does_not_equal take exactly one value. The list operators take 1 to 500 values. The ordering operators greater_than, greater_than_or_equal, less_than and less_than_or_equal take exactly one numeric value and match only a numeric answer. is_empty and is_not_empty take none.
Set it to true to append the answers to the destination as query parameters. An absent flag stores false, so send back the value the read endpoint returns.
The colours of the public routing form page. Each value is a CSS colour of at most 20 characters, or null when the routing form sets no colour. A response always carries the object with all three keys. The write endpoints accept the same shape, so a routing form that you read goes straight back to PATCH /routing-forms/{id} without reshaping.
The selectable values of the question. A SELECT or RADIO_INPUT question carries plain strings. A CRM_ATTRIBUTE question carries the option objects of the CRM attribute. Every other type carries an empty array.
The kind of destination. EVENT_TYPE opens a scheduling page, TEAM_PAGE opens the page of a team, URL redirects to an external address, and CUSTOM_PAGE shows a message inside the routing form.
True when the answers are appended to the destination as query parameters. Send it back unchanged when you replace the routes, since an absent flag stores false.
The condition tree that selects this route. A node is either a group or a condition. A group holds child nodes under any for OR, or under all for AND. A condition holds inputId, operator and values. The operator is one of equals, does_not_equal, is_any_of, is_not_any_of, contains, does_not_contain, starts_with, ends_with, greater_than, greater_than_or_equal, less_than, less_than_or_equal, is_empty or is_not_empty. The fallback route carries an empty array, because it needs no condition.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Zeeg Developer Hub","description":"Zeeg Developer Hub: REST API reference, guides, and webhooks for building scheduling, booking, and AI-agent integrations on the Zeeg platform.","colors":{"primary":"#6C63FF","light":"#8B83FF","dark":"#4F46E5"},"logo":"https://mintcdn.com/zeeg/9voKLLkajreclhp4/images/Zeeglogo(Original).svg?fit=max\u0026auto=format\u0026n=9voKLLkajreclhp4\u0026q=85\u0026s=321632804eda4b3cff044941f9ccadda","favicon":"https://mintcdn.com/zeeg/9voKLLkajreclhp4/images/favicon.ico?fit=max\u0026auto=format\u0026n=9voKLLkajreclhp4\u0026q=85\u0026s=ee885974552f141091cdd615c5c15345","api":{"openapi":"openapi.yaml","params":{"expanded":"all"},"playground":{"display":"interactive","proxy":false},"examples":{"defaults":"required"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.zeeg.me/v2"}},"appearance":{"default":"system"},"background":{"decoration":"gradient","color":{"dark":"#0f1117"}},"navbar":{"links":[{"href":"https://app.zeeg.me","label":"Dashboard"}],"primary":{"type":"button","label":"Get API Key","href":"https://app.zeeg.me/account/settings/api-access"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/zeeg","x":"https://www.twitter.com/zeeg_me","youtube":"https://www.youtube.com/@zeeg_me","instagram":"https://www.instagram.com/zeeg.me"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://zeeg.me/en/pricing"},{"label":"Help Center","href":"https://zeeg.me/en/help"},{"label":"System Status","href":"https://status.zeeg.me"}]},{"header":"Legal","items":[{"label":"Terms of Service","href":"https://zeeg.me/en/legal/terms"},{"label":"Privacy Policy","href":"https://zeeg.me/en/legal/privacy"},{"label":"Imprint","href":"https://zeeg.me/en/legal/imprint"}]}]},"search":{"prompt":"Search endpoints, guides, and more..."},"seo":{"metatags":{"og:site_name":"Zeeg Developer Hub","og:type":"website","og:locale":"en_US","og:url":"https://developer.zeeg.me","twitter:card":"summary_large_image","twitter:site":"@zeeg_me","author":"Zeeg","robots":"index, follow","googlebot":"index, follow"},"indexing":"all"},"fonts":{"family":"Inter"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"section","latex":false},"integrations":{"gtm":{"tagId":"GTM-5XJGGJP"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you're looking for doesn't exist. Try the [API Reference](/api/workspaces-teams/check-logged-in-user) or [Quickstart](/quickstart)."}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"markdown":{"schema":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zeeg","hasAudioNarration":false,"actualSubdomain":"zeeg","customDomains":["developer.zeeg.me"],"gitSource":{"type":"github","owner":"zeeg","repo":"api-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af3b13f12b7481eb1930d91","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":208},{"language":"default","tag":"CRM","count":27},{"language":"default","tag":"Availability Schedule","count":15},{"language":"default","tag":"Scheduling Pages","count":15},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Routing Forms","count":12},{"language":"default","tag":"Workspaces \u0026 Teams","count":12},{"language":"default","tag":"Forms","count":8},{"language":"default","tag":"Documentation","count":8},{"language":"default","tag":"Objects","count":7}],"searchSettings":{"maxResults":10}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/routing-forms/replace-routing-form-routes","slug":"/api/routing-forms/replace-routing-form-routes","pageMetadata":{"title":"Replace Routing Form Routes","description":"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.","openapi":"PUT /routing-forms/{id}/routes","href":"/api/routing-forms/replace-routing-form-routes"},"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: \"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\"\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`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{Badge,CodeBlock,Heading,Note,Warning}=_components;if(!Badge)_missingMdxReference(`Badge`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Badge,{color:`orange`,children:`Alpha`}),`\n`,_jsx(_components.p,{children:`This endpoint is in alpha: the request shape may still change without a deprecation cycle.`}),`\n`,_jsxs(_components.p,{children:[`Replaces the routes of one routing form and returns the routing form in the shape that `,_jsx(_components.a,{href:`/api/routing-forms/get-a-routing-form`,children:`Get a Routing Form`}),` returns.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-write-covers-the-whole-list`,children:`The write covers the whole list`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`routes`}),` holds the complete route list. This endpoint is not an append and not a patch.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Every entry creates a route. An `,_jsx(_components.code,{children:`id`}),` in an entry is ignored, and the response carries the new ids.`]}),`\n`,_jsx(_components.li,{children:`A stored route that the body leaves out is deleted.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Read the routes first and send them back with your changes. Send the whole list every time.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`routes`}),` must be present. A body without it answers `,_jsx(_components.code,{children:`422`}),`, so a mistyped key never deletes every route.`]}),`\n`,_jsx(_components.p,{children:`Array position sets the route order. The routing form reads the routes in that order and takes the first route whose conditions hold.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-fallback`,children:`The fallback`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fallback`}),` is optional. It is the destination that takes every submission that matches no route.`]}),`\n`,_jsxs(_components.p,{children:[`If the body names no `,_jsx(_components.code,{children:`fallback`}),`, the routing form keeps its stored fallback destination. Replacing the route list never moves where an unmatched submission goes.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The fallback decides where every unmatched submission goes. A body that restates it slightly differently redirects that traffic, and nothing in the response says so. Leave `,_jsx(_components.code,{children:`fallback`}),` out unless you mean to change it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`the-rule-tree`,children:`The rule tree`}),`\n`,_jsxs(_components.p,{children:[`A route carries `,_jsx(_components.code,{children:`rules`}),`, the condition tree that selects it. A group holds child nodes under `,_jsx(_components.code,{children:`all`}),` for AND, or under `,_jsx(_components.code,{children:`any`}),` for OR. A child is a group or a condition.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"all\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inputId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"f7c82298-6dd9-43bd-98e4-c437b5c0ae47\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"operator\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"is_any_of\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"50-200 employees\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A condition names its question with `,_jsx(_components.code,{children:`inputId`}),`, the same key that the read endpoints return.`]}),`\n`,_jsxs(_components.p,{children:[`The operator is one of `,_jsx(_components.code,{children:`equals`}),`, `,_jsx(_components.code,{children:`does_not_equal`}),`, `,_jsx(_components.code,{children:`is_any_of`}),`, `,_jsx(_components.code,{children:`is_not_any_of`}),`, `,_jsx(_components.code,{children:`contains`}),`, `,_jsx(_components.code,{children:`does_not_contain`}),`, `,_jsx(_components.code,{children:`starts_with`}),`, `,_jsx(_components.code,{children:`ends_with`}),`, `,_jsx(_components.code,{children:`greater_than`}),`, `,_jsx(_components.code,{children:`greater_than_or_equal`}),`, `,_jsx(_components.code,{children:`less_than`}),`, `,_jsx(_components.code,{children:`less_than_or_equal`}),`, `,_jsx(_components.code,{children:`is_empty`}),` or `,_jsx(_components.code,{children:`is_not_empty`}),`. `,_jsx(_components.code,{children:`equals`}),` and `,_jsx(_components.code,{children:`does_not_equal`}),` take exactly one value. The list operators take 1 to 500 values. The ordering operators take exactly one numeric value and match only a numeric answer. `,_jsx(_components.code,{children:`is_empty`}),` and `,_jsx(_components.code,{children:`is_not_empty`}),` take none.`]}),`\n`,_jsx(Heading,{level:`2`,id:`destinations`,children:`Destinations`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`type`}),` takes `,_jsx(_components.code,{children:`EVENT_TYPE`}),`, `,_jsx(_components.code,{children:`TEAM_PAGE`}),`, `,_jsx(_components.code,{children:`URL`}),` or `,_jsx(_components.code,{children:`CUSTOM_PAGE`}),`. Each type reads its own fields: `,_jsx(_components.code,{children:`eventTypeId`}),`, `,_jsx(_components.code,{children:`teamId`}),`, `,_jsx(_components.code,{children:`customUrl`}),` with `,_jsx(_components.code,{children:`submissionParamsForwarding`}),`, or `,_jsx(_components.code,{children:`headline`}),` with `,_jsx(_components.code,{children:`body`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A route points at an event type or a team of your own organization. A route that points anywhere else answers `,_jsx(_components.code,{children:`400`}),`, and the whole write is refused. A rule that names a question of another routing form answers `,_jsx(_components.code,{children:`400`}),` as well.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The id is a UUID. A malformed id answers `,_jsx(_components.code,{children:`404`}),`, not `,_jsx(_components.code,{children:`422`}),`. A routing form outside your workspace answers `,_jsx(_components.code,{children:`404`}),` as well.`]})})]})}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":"Replace Routing Form Routes","description":"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.","openapi":"PUT /routing-forms/{id}/routes","href":"/api/routing-forms/replace-routing-form-routes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The write covers the whole list","slug":"the-write-covers-the-whole-list","depth":2,"children":[]},{"title":"The fallback","slug":"the-fallback","depth":2,"children":[]},{"title":"The rule tree","slug":"the-rule-tree","depth":2,"children":[]},{"title":"Destinations","slug":"destinations","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Replace the routes of a routing form","tags":["Routing Forms - Forms"],"operationId":"replace-routing-form-routes","description":"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.","security":["efea34d6-a444-46d5-9fb8-35a0dd355923"],"parameters":["069885e0-e2de-45d7-976d-cdd2719026e9"],"requestBody":"9c21a77c-0388-402d-a963-bb2010b208c2","responses":{"200":"43cfd38f-8c5a-4a13-8a9a-682b5971779e","400":"9d5e6cba-e533-4724-8964-e9e7a8f004bb","401":"0c38c7e0-f449-4c9c-b1a1-15b7cbaef125","403":"3c87addb-17df-4d9d-b113-31674feaae6e","404":"0fb8f5d4-8b45-4cb9-aa55-9c33fbe35837","422":"9c9f8486-4a92-46e6-8a66-403d45e69a40"},"method":"put","type":"path","servers":["7319aa28-1b63-40ae-bca9-deab74825e3c"],"path":"/routing-forms/{id}/routes","baseUrlOptions":["https://api.zeeg.me/v2"],"title":"Replace the routes of a routing form","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"069885e0-e2de-45d7-976d-cdd2719026e9":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"UUID of the routing form.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"UUID of the routing form."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"The body that replaces the routes of a routing form.","required":["routes"],"properties":{"routes":{"type":"array","description":"The complete route list. Array position sets the route order, and the routing form takes the first route whose conditions hold.","items":{"type":"object","description":"One route in the body that replaces the routes of a routing form.","required":["type","rules"],"properties":{"type":{"type":"string","description":"The kind of destination. `EVENT_TYPE` opens a scheduling page, `TEAM_PAGE` opens the page of a team, `URL` redirects to an external address, and `CUSTOM_PAGE` shows a message inside the routing form.","enum":["EVENT_TYPE","URL","CUSTOM_PAGE","TEAM_PAGE"],"example":"EVENT_TYPE","isRequired":true,"uniqueKey":"routes.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"rules":{"type":"object","description":"A node of the condition tree that selects a route. A group holds child nodes under `all` for AND, or under `any` for OR. A child is a group or a condition. The tree nests at most 10 levels deep.","properties":{"all":{"type":"array","description":"Every child node must hold.","items":{"oneOf":[{"type":"object","description":"One condition of a rule tree. It names a question of the same routing form with `inputId`.","required":["inputId","operator"],"properties":{"inputId":{"type":"string","format":"uuid","description":"Id of the question that the condition reads. The question belongs to the same routing form.","example":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","isRequired":true,"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.inputId","typeLabel":"string\u003cuuid>"},"operator":{"type":"string","description":"The comparison. `equals` and `does_not_equal` take exactly one value. The list operators take 1 to 500 values. The ordering operators `greater_than`, `greater_than_or_equal`, `less_than` and `less_than_or_equal` take exactly one numeric value and match only a numeric answer. `is_empty` and `is_not_empty` take none.","enum":["equals","does_not_equal","is_any_of","is_not_any_of","contains","does_not_contain","starts_with","ends_with","greater_than","greater_than_or_equal","less_than","less_than_or_equal","is_empty","is_not_empty"],"example":"is_any_of","isRequired":true,"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"values":{"type":"array","description":"The values that the operator compares the answer against. Each value is a non-empty string or an integer.","items":{"oneOf":[{"type":"string","uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.values.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.values.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string | integer"},"example":["50-200 employees"],"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0.values","typeLabel":"(string | integer)[]"}},"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX].oneOf.0","typeLabel":"object"},{}],"uniqueKey":"routes.items.[INDEX].rules.all.items.[INDEX]","typeLabel":"object"},"uniqueKey":"routes.items.[INDEX].rules.all","typeLabel":"object[]"},"any":{"type":"array","description":"One child node must hold.","items":{"oneOf":[{"type":"object","description":"One condition of a rule tree. It names a question of the same routing form with `inputId`.","required":["inputId","operator"],"properties":{"inputId":{"type":"string","format":"uuid","description":"Id of the question that the condition reads. The question belongs to the same routing form.","example":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","isRequired":true,"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.inputId","typeLabel":"string\u003cuuid>"},"operator":{"type":"string","description":"The comparison. `equals` and `does_not_equal` take exactly one value. The list operators take 1 to 500 values. The ordering operators `greater_than`, `greater_than_or_equal`, `less_than` and `less_than_or_equal` take exactly one numeric value and match only a numeric answer. `is_empty` and `is_not_empty` take none.","enum":["equals","does_not_equal","is_any_of","is_not_any_of","contains","does_not_contain","starts_with","ends_with","greater_than","greater_than_or_equal","less_than","less_than_or_equal","is_empty","is_not_empty"],"example":"is_any_of","isRequired":true,"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"values":{"type":"array","description":"The values that the operator compares the answer against. Each value is a non-empty string or an integer.","items":{"oneOf":[{"type":"string","uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.values.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.values.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string | integer"},"example":["50-200 employees"],"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0.values","typeLabel":"(string | integer)[]"}},"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX].oneOf.0","typeLabel":"object"},{}],"uniqueKey":"routes.items.[INDEX].rules.any.items.[INDEX]","typeLabel":"object"},"uniqueKey":"routes.items.[INDEX].rules.any","typeLabel":"object[]"}},"example":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"is_any_of","values":["50-200 employees"]}]},"isRequired":true,"uniqueKey":"routes.items.[INDEX].rules","typeLabel":"object"},"id":{"type":"string","format":"uuid","description":"Ignored on write: every entry creates a route, and the read endpoint returns the new ids.","example":"c4a1e0d2-5f39-4a7b-8f11-2b6d0c9e7a84","uniqueKey":"routes.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"eventTypeId":{"type":"string","format":"uuid","maxLength":40,"description":"Id of the event type that an `EVENT_TYPE` route opens. The event type must sit in your own organization.","example":"80f46bf5-eb01-4c07-960e-a9a3e18aae5e","uniqueKey":"routes.items.[INDEX].eventTypeId","typeLabel":"string\u003cuuid>"},"teamId":{"type":"string","format":"uuid","maxLength":40,"description":"Id of the team that a `TEAM_PAGE` route opens. The team must sit in your own organization.","example":"3d9b1a77-2c58-4e6a-9f30-8b1c5d4e2f6a","uniqueKey":"routes.items.[INDEX].teamId","typeLabel":"string\u003cuuid>"},"customUrl":{"type":"string","maxLength":500,"description":"Destination address of a `URL` route.","example":"https://example.com/enterprise","uniqueKey":"routes.items.[INDEX].customUrl","typeLabel":"string"},"submissionParamsForwarding":{"type":"boolean","description":"Set it to true to append the answers to the destination as query parameters. An absent flag stores false, so send back the value the read endpoint returns.","example":true,"uniqueKey":"routes.items.[INDEX].submissionParamsForwarding","typeLabel":"boolean"},"headline":{"type":"string","description":"Headline of a `CUSTOM_PAGE` route. It holds rich text of at most 200 visible characters.","example":"Thank you","uniqueKey":"routes.items.[INDEX].headline","typeLabel":"string"},"body":{"oneOf":[{"type":"string","description":"Body text of a `CUSTOM_PAGE` route. It holds rich text of at most 2000 visible characters.","example":"A member of the team contacts you within one working day.","uniqueKey":"routes.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"Body text of a `CUSTOM_PAGE` route. It holds rich text of at most 2000 visible characters.","example":"A member of the team contacts you within one working day.","uniqueKey":"routes.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"routes.items.[INDEX].body","typeLabel":"string | null"}},"uniqueKey":"routes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"routes","typeLabel":"object[]"},"fallback":{"type":"object","description":"The fallback destination of a routing form. It takes every submission that matches no route, so it carries no `rules`.","required":["type"],"properties":{"type":{"type":"string","enum":["EVENT_TYPE","URL","CUSTOM_PAGE","TEAM_PAGE"],"description":"The kind of destination.","example":"CUSTOM_PAGE","isRequired":true,"uniqueKey":"fallback.type","typeLabel":"enum\u003cstring>"},"eventTypeId":{"type":"string","format":"uuid","maxLength":40,"description":"Id of the event type that an `EVENT_TYPE` fallback opens. The event type must sit in your own organization.","example":null,"uniqueKey":"fallback.eventTypeId","typeLabel":"string\u003cuuid>"},"teamId":{"type":"string","format":"uuid","maxLength":40,"description":"Id of the team that a `TEAM_PAGE` fallback opens. The team must sit in your own organization.","example":null,"uniqueKey":"fallback.teamId","typeLabel":"string\u003cuuid>"},"customUrl":{"type":"string","format":"uri","description":"Destination address of a `URL` fallback. It must be a valid URL.","example":null,"uniqueKey":"fallback.customUrl","typeLabel":"string\u003curi>"},"submissionParamsForwarding":{"type":"boolean","description":"Set it to true to append the answers to a `URL` destination as query parameters.","example":false,"uniqueKey":"fallback.submissionParamsForwarding","typeLabel":"boolean"},"headline":{"type":"string","description":"Headline of a `CUSTOM_PAGE` fallback. It holds rich text of at most 200 visible characters.","example":"Thank you","uniqueKey":"fallback.headline","typeLabel":"string"},"body":{"oneOf":[{"type":"string","description":"Body text of a `CUSTOM_PAGE` fallback. It holds rich text of at most 2000 visible characters.","example":"A member of the team contacts you within one working day.","uniqueKey":"fallback.body.oneOf.0","typeLabel":"string"},{"type":"null","description":"Body text of a `CUSTOM_PAGE` fallback. It holds rich text of at most 2000 visible characters.","example":"A member of the team contacts you within one working day.","uniqueKey":"fallback.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"fallback.body","typeLabel":"string | null"}},"uniqueKey":"fallback","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"One route to a scheduling page":{"title":"One route to a scheduling page","value":{"routes":[{"type":"EVENT_TYPE","eventTypeId":"80f46bf5-eb01-4c07-960e-a9a3e18aae5e","rules":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"is_any_of","values":["50-200 employees"]}]}}]}},"One route to an external address":{"title":"One route to an external address","value":{"routes":[{"type":"URL","customUrl":"https://example.com/enterprise","submissionParamsForwarding":true,"rules":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"equals","values":["50-200 employees"]}]}}]}},"A new fallback":{"title":"A new fallback","value":{"routes":[],"fallback":{"type":"CUSTOM_PAGE","headline":"Thank you","body":"A member of the team contacts you within one working day."}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"43cfd38f-8c5a-4a13-8a9a-682b5971779e":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true,"uniqueKey":"success","typeLabel":"boolean"},"status":{"type":"integer","example":200,"uniqueKey":"status","typeLabel":"integer"},"routingForm":{"type":"object","description":"A routing form with its questions and its routes, as returned when you fetch one routing form.","properties":{"id":{"type":"string","format":"uuid","example":"f1cbafc4-b646-4cf9-af29-193491b555d9","uniqueKey":"routingForm.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"The internal name of the routing form.","example":"Inbound Lead Qualification","uniqueKey":"routingForm.name","typeLabel":"string"},"slug":{"type":"string","description":"The slug that addresses the routing form in its public URL.","example":"inbound-lead-qual","uniqueKey":"routingForm.slug","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"The public address at which an invitee opens the routing form.","example":"https://zeeg.me/RF/inbound-lead-qual","uniqueKey":"routingForm.url","typeLabel":"string\u003curi>"},"isActive":{"type":"boolean","description":"An inactive routing form accepts no submission.","example":true,"uniqueKey":"routingForm.isActive","typeLabel":"boolean"},"headline":{"oneOf":[{"type":"string","description":"The headline that the routing form shows above the questions.","example":"Tell us about your team","uniqueKey":"routingForm.headline.oneOf.0","typeLabel":"string"},{"type":"null","description":"The headline that the routing form shows above the questions.","example":"Tell us about your team","uniqueKey":"routingForm.headline.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.headline","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"The body text that the routing form shows below the headline.","example":null,"uniqueKey":"routingForm.body.oneOf.0","typeLabel":"string"},{"type":"null","description":"The body text that the routing form shows below the headline.","example":null,"uniqueKey":"routingForm.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.body","typeLabel":"string | null"},"submitBtnText":{"oneOf":[{"type":"string","description":"The label on the submit button of the routing form.","example":"Continue","uniqueKey":"routingForm.submitBtnText.oneOf.0","typeLabel":"string"},{"type":"null","description":"The label on the submit button of the routing form.","example":"Continue","uniqueKey":"routingForm.submitBtnText.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.submitBtnText","typeLabel":"string | null"},"styleSettings":{"type":"object","description":"The colours of the public routing form page. Each value is a CSS colour of at most 20 characters, or `null` when the routing form sets no colour. A response always carries the object with all three keys. The write endpoints accept the same shape, so a routing form that you read goes straight back to `PATCH /routing-forms/{id}` without reshaping.","properties":{"bgColor":{"oneOf":[{"type":"string","maxLength":20,"description":"Background colour of the page.","example":"#ffffff","uniqueKey":"routingForm.styleSettings.bgColor.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":20,"description":"Background colour of the page.","example":"#ffffff","uniqueKey":"routingForm.styleSettings.bgColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.styleSettings.bgColor","typeLabel":"string | null"},"buttonBgColor":{"oneOf":[{"type":"string","maxLength":20,"description":"Background colour of the submit button.","example":"#1f2937","uniqueKey":"routingForm.styleSettings.buttonBgColor.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":20,"description":"Background colour of the submit button.","example":"#1f2937","uniqueKey":"routingForm.styleSettings.buttonBgColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.styleSettings.buttonBgColor","typeLabel":"string | null"},"buttonTextColor":{"oneOf":[{"type":"string","maxLength":20,"description":"Text colour of the submit button.","example":"#ffffff","uniqueKey":"routingForm.styleSettings.buttonTextColor.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":20,"description":"Text colour of the submit button.","example":"#ffffff","uniqueKey":"routingForm.styleSettings.buttonTextColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.styleSettings.buttonTextColor","typeLabel":"string | null"}},"uniqueKey":"routingForm.styleSettings","typeLabel":"object"},"createdAt":{"oneOf":[{"type":"string","format":"date-time","description":"Time at which the routing form was created, in UTC.","example":"2026-04-01T09:12:44+00:00","uniqueKey":"routingForm.createdAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Time at which the routing form was created, in UTC.","example":"2026-04-01T09:12:44+00:00","uniqueKey":"routingForm.createdAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.createdAt","typeLabel":"string\u003cdate-time> | null"},"updatedAt":{"oneOf":[{"type":"string","format":"date-time","description":"Time of the last change to the routing form, in UTC.","example":"2026-04-10T08:30:00+00:00","uniqueKey":"routingForm.updatedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Time of the last change to the routing form, in UTC.","example":"2026-04-10T08:30:00+00:00","uniqueKey":"routingForm.updatedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.updatedAt","typeLabel":"string\u003cdate-time> | null"},"inputs":{"type":"array","description":"The questions of the routing form, which the invitee answers in the given order.","items":{"type":"object","description":"One question of a routing form.","properties":{"id":{"type":"string","format":"uuid","example":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","uniqueKey":"routingForm.inputs.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"label":{"type":"string","description":"The question text that the invitee reads.","example":"What is your company size?","uniqueKey":"routingForm.inputs.items.[INDEX].label","typeLabel":"string"},"type":{"type":"string","description":"The answer control that the routing form shows for this question.","enum":["TEXT_INPUT","TEXTAREA","SELECT","RADIO_INPUT","EMAIL","PHONE_NUMBER","NUMBER_INPUT","CRM_ATTRIBUTE"],"example":"SELECT","uniqueKey":"routingForm.inputs.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"Position of the question in the routing form. The first question carries `0`.","example":0,"uniqueKey":"routingForm.inputs.items.[INDEX].order","typeLabel":"integer"},"isRequired":{"type":"boolean","description":"True when the invitee must answer the question.","example":true,"uniqueKey":"routingForm.inputs.items.[INDEX].isRequired","typeLabel":"boolean"},"isActive":{"type":"boolean","description":"The routing form hides the question when this is false.","example":true,"uniqueKey":"routingForm.inputs.items.[INDEX].isActive","typeLabel":"boolean"},"options":{"type":"array","description":"The selectable values of the question. A `SELECT` or `RADIO_INPUT` question carries plain strings. A `CRM_ATTRIBUTE` question carries the option objects of the CRM attribute. Every other type carries an empty array.","items":{"oneOf":[{"type":"string","uniqueKey":"routingForm.inputs.items.[INDEX].options.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","uniqueKey":"routingForm.inputs.items.[INDEX].options.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"routingForm.inputs.items.[INDEX].options.items.[INDEX]","typeLabel":"string | object"},"example":["1-10 employees","50-200 employees"],"uniqueKey":"routingForm.inputs.items.[INDEX].options","typeLabel":"(string | object)[]"},"crmAttribute":{"oneOf":[{"type":"object","description":"The CRM attribute that a question maps onto. It is `null` when the question maps onto no attribute.","properties":{"objectSlug":{"type":"string","description":"Slug of the CRM object that holds the attribute.","example":"companies","uniqueKey":"routingForm.inputs.items.[INDEX].crmAttribute.oneOf.0.objectSlug","typeLabel":"string"},"attributeSlug":{"type":"string","description":"Slug of the attribute on that object.","example":"industries","uniqueKey":"routingForm.inputs.items.[INDEX].crmAttribute.oneOf.0.attributeSlug","typeLabel":"string"}},"uniqueKey":"routingForm.inputs.items.[INDEX].crmAttribute.oneOf.0","typeLabel":"object"},{"type":"null","description":"The CRM attribute that a question maps onto. It is `null` when the question maps onto no attribute.","properties":{"objectSlug":{"type":"string","description":"Slug of the CRM object that holds the attribute.","example":"companies"},"attributeSlug":{"type":"string","description":"Slug of the attribute on that object.","example":"industries"}},"uniqueKey":"routingForm.inputs.items.[INDEX].crmAttribute.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.inputs.items.[INDEX].crmAttribute","typeLabel":"object | null"}},"uniqueKey":"routingForm.inputs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"routingForm.inputs","typeLabel":"object[]"},"routes":{"type":"array","description":"The routes of the routing form. Exactly one route is the fallback.","items":{"type":"object","description":"One route of a routing form. A route sends the invitee to a destination after the routing form accepts the answers.","properties":{"id":{"type":"string","format":"uuid","example":"c4a1e0d2-5f39-4a7b-8f11-2b6d0c9e7a84","uniqueKey":"routingForm.routes.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","description":"The kind of destination. `EVENT_TYPE` opens a scheduling page, `TEAM_PAGE` opens the page of a team, `URL` redirects to an external address, and `CUSTOM_PAGE` shows a message inside the routing form.","enum":["EVENT_TYPE","URL","CUSTOM_PAGE","TEAM_PAGE"],"example":"EVENT_TYPE","uniqueKey":"routingForm.routes.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"isFallback":{"type":"boolean","description":"The fallback route takes every submission that matches no other route.","example":false,"uniqueKey":"routingForm.routes.items.[INDEX].isFallback","typeLabel":"boolean"},"order":{"type":"integer","description":"Position of the route in the routing form. The first route carries `0`. The routing form takes the first route whose conditions hold.","example":0,"uniqueKey":"routingForm.routes.items.[INDEX].order","typeLabel":"integer"},"customUrl":{"oneOf":[{"type":"string","description":"Destination address of a `URL` route. It is `null` for every other type.","example":null,"uniqueKey":"routingForm.routes.items.[INDEX].customUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Destination address of a `URL` route. It is `null` for every other type.","example":null,"uniqueKey":"routingForm.routes.items.[INDEX].customUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.routes.items.[INDEX].customUrl","typeLabel":"string | null"},"submissionParamsForwarding":{"type":"boolean","description":"True when the answers are appended to the destination as query parameters. Send it back unchanged when you replace the routes, since an absent flag stores false.","example":false,"uniqueKey":"routingForm.routes.items.[INDEX].submissionParamsForwarding","typeLabel":"boolean"},"headline":{"oneOf":[{"type":"string","description":"Headline of a `CUSTOM_PAGE` route.","example":"Thank you","uniqueKey":"routingForm.routes.items.[INDEX].headline.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headline of a `CUSTOM_PAGE` route.","example":"Thank you","uniqueKey":"routingForm.routes.items.[INDEX].headline.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.routes.items.[INDEX].headline","typeLabel":"string | null"},"body":{"oneOf":[{"type":"string","description":"Body text of a `CUSTOM_PAGE` route.","example":"A member of the team contacts you within one working day.","uniqueKey":"routingForm.routes.items.[INDEX].body.oneOf.0","typeLabel":"string"},{"type":"null","description":"Body text of a `CUSTOM_PAGE` route.","example":"A member of the team contacts you within one working day.","uniqueKey":"routingForm.routes.items.[INDEX].body.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.routes.items.[INDEX].body","typeLabel":"string | null"},"eventType":{"oneOf":[{"type":"object","description":"The event type that a route or a submission points at. It is `null` when no event type is set.","properties":{"id":{"type":"string","format":"uuid","example":"80f46bf5-eb01-4c07-960e-a9a3e18aae5e","uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.0.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","example":"30-Minute Discovery Call","uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.0.title","typeLabel":"string"},"slug":{"type":"string","example":"30min-discovery-call","uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.0.slug","typeLabel":"string"},"uri":{"type":"string","format":"uri","description":"Address of the event type in this API.","example":"https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e","uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.0.uri","typeLabel":"string\u003curi>"}},"uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.0","typeLabel":"object"},{"type":"null","description":"The event type that a route or a submission points at. It is `null` when no event type is set.","properties":{"id":{"type":"string","format":"uuid","example":"80f46bf5-eb01-4c07-960e-a9a3e18aae5e"},"title":{"type":"string","example":"30-Minute Discovery Call"},"slug":{"type":"string","example":"30min-discovery-call"},"uri":{"type":"string","format":"uri","description":"Address of the event type in this API.","example":"https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e"}},"uniqueKey":"routingForm.routes.items.[INDEX].eventType.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.routes.items.[INDEX].eventType","typeLabel":"object | null"},"team":{"oneOf":[{"type":"object","description":"The team that a route or a submission points at. It is `null` when no team is set.","properties":{"id":{"type":"string","format":"uuid","example":"3d9b1a77-2c58-4e6a-9f30-8b1c5d4e2f6a","uniqueKey":"routingForm.routes.items.[INDEX].team.oneOf.0.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","example":"Sales EMEA","uniqueKey":"routingForm.routes.items.[INDEX].team.oneOf.0.title","typeLabel":"string"},"slug":{"type":"string","example":"sales-emea","uniqueKey":"routingForm.routes.items.[INDEX].team.oneOf.0.slug","typeLabel":"string"}},"uniqueKey":"routingForm.routes.items.[INDEX].team.oneOf.0","typeLabel":"object"},{"type":"null","description":"The team that a route or a submission points at. It is `null` when no team is set.","properties":{"id":{"type":"string","format":"uuid","example":"3d9b1a77-2c58-4e6a-9f30-8b1c5d4e2f6a"},"title":{"type":"string","example":"Sales EMEA"},"slug":{"type":"string","example":"sales-emea"}},"uniqueKey":"routingForm.routes.items.[INDEX].team.oneOf.1","typeLabel":"null"}],"uniqueKey":"routingForm.routes.items.[INDEX].team","typeLabel":"object | null"},"rules":{"oneOf":[{"type":"object","description":"The condition tree that selects this route. A node is either a group or a condition. A group holds child nodes under `any` for OR, or under `all` for AND. A condition holds `inputId`, `operator` and `values`. The operator is one of `equals`, `does_not_equal`, `is_any_of`, `is_not_any_of`, `contains`, `does_not_contain`, `starts_with`, `ends_with`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`, `is_empty` or `is_not_empty`. The fallback route carries an empty array, because it needs no condition.","example":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"is_any_of","values":["50-200 employees"]}]},"additionalProperties":true,"uniqueKey":"routingForm.routes.items.[INDEX].rules.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"routingForm.routes.items.[INDEX].rules.oneOf.1.items.[INDEX]","typeLabel":"any"},"description":"The condition tree that selects this route. A node is either a group or a condition. A group holds child nodes under `any` for OR, or under `all` for AND. A condition holds `inputId`, `operator` and `values`. The operator is one of `equals`, `does_not_equal`, `is_any_of`, `is_not_any_of`, `contains`, `does_not_contain`, `starts_with`, `ends_with`, `greater_than`, `greater_than_or_equal`, `less_than`, `less_than_or_equal`, `is_empty` or `is_not_empty`. The fallback route carries an empty array, because it needs no condition.","example":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"is_any_of","values":["50-200 employees"]}]},"uniqueKey":"routingForm.routes.items.[INDEX].rules.oneOf.1","typeLabel":"any[]"}],"uniqueKey":"routingForm.routes.items.[INDEX].rules","typeLabel":"object | any[]"}},"uniqueKey":"routingForm.routes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"routingForm.routes","typeLabel":"object[]"}},"uniqueKey":"routingForm","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Success":{"title":"Success","value":{"success":true,"status":200,"routingForm":{"id":"f1cbafc4-b646-4cf9-af29-193491b555d9","name":"Inbound Lead Qualification","slug":"inbound-lead-qual","url":"https://zeeg.me/RF/inbound-lead-qual","isActive":true,"headline":"Tell us about your team","body":null,"submitBtnText":"Continue","styleSettings":{"bgColor":"#ffffff","buttonBgColor":"#1f2937","buttonTextColor":"#ffffff"},"createdAt":"2026-04-01T09:12:44+00:00","updatedAt":"2026-04-11T11:31:07+00:00","inputs":[],"routes":[{"id":"c4a1e0d2-5f39-4a7b-8f11-2b6d0c9e7a84","type":"EVENT_TYPE","isFallback":false,"order":0,"customUrl":null,"submissionParamsForwarding":false,"headline":null,"body":null,"eventType":{"id":"80f46bf5-eb01-4c07-960e-a9a3e18aae5e","title":"30-Minute Discovery Call","slug":"30min-discovery-call","uri":"https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e"},"team":null,"rules":{"all":[{"inputId":"f7c82298-6dd9-43bd-98e4-c437b5c0ae47","operator":"is_any_of","values":["50-200 employees"]}]}},{"id":"2e7f4b90-8a13-4c6d-b5e2-7f0a9c3d1e64","type":"CUSTOM_PAGE","isFallback":true,"order":1,"customUrl":null,"submissionParamsForwarding":false,"headline":"Thank you","body":"A member of the team contacts you within one working day.","eventType":null,"team":null,"rules":[]}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"9d5e6cba-e533-4724-8964-e9e7a8f004bb":{"description":"Bad Request — a route points outside your organization, or a rule names a question of another routing form","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","uniqueKey":"status","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Scheduling page outside the organization":{"title":"Scheduling page outside the organization","value":{"success":false,"message":"One of the routes points to a scheduling page that is not in this organization.","status":400}},"Team outside the organization":{"title":"Team outside the organization","value":{"success":false,"message":"One of the routes points to a team that is not in this organization.","status":400}},"Rule names an unknown question":{"title":"Rule names an unknown question","value":{"success":false,"message":"The rules on route 1 do not match the questions on this form. Check that route and try again.","status":400}}},"exampleType":"examples"}},"exampleType":"examples"},"0c38c7e0-f449-4c9c-b1a1-15b7cbaef125":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthenticated.","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Unauthenticated":{"title":"Unauthenticated","value":{"message":"Unauthenticated."}}},"exampleType":"examples"}},"exampleType":"examples"},"3c87addb-17df-4d9d-b113-31674feaae6e":{"description":"Forbidden — the token misses the scope, or the user may not change this routing form","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"oneOf.0.error.type","typeLabel":"string"},"message":{"type":"string","uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"error_id":{"type":"string","uniqueKey":"oneOf.0.error.error_id","typeLabel":"string"},"required_scopes":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.error.required_scopes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.error.required_scopes","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.error","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","properties":{"success":{"type":"boolean","uniqueKey":"oneOf.1.success","typeLabel":"boolean"},"message":{"type":"string","uniqueKey":"oneOf.1.message","typeLabel":"string"},"status":{"type":"integer","uniqueKey":"oneOf.1.status","typeLabel":"integer"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Missing scope":{"title":"Missing scope","value":{"error":{"type":"insufficient_scope","message":"Your token is missing the required scope: routing_forms:write.","error_id":"9b3c5e71-4d28-4f6a-b0c9-3e7a1d5f8c20","required_scopes":["routing_forms:write"]}}},"No permission":{"title":"No permission","value":{"success":false,"message":"You don't have permission to edit this routing form.","status":403}}},"exampleType":"examples"}},"exampleType":"examples"},"0fb8f5d4-8b45-4cb9-aa55-9c33fbe35837":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","uniqueKey":"status","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Not found":{"title":"Not found","value":{"success":false,"message":"Data Not Found","status":404}}},"exampleType":"examples"}},"exampleType":"examples"},"9c9f8486-4a92-46e6-8a66-403d45e69a40":{"description":"Unprocessable Entity — the body is invalid","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Route list absent":{"title":"Route list absent","value":{"message":"The routes field must be present.","errors":{"routes":["The routes field must be present."]}}},"Rule operator not recognised":{"title":"Rule operator not recognised","value":{"message":"The \"is_between\" rule on route 1 is set up incorrectly. Check its values and try again.","errors":{"routes.0.rules":["The \"is_between\" rule on route 1 is set up incorrectly. Check its values and try again."]}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"efea34d6-a444-46d5-9fb8-35a0dd355923":{"bearer":{"type":"http","scheme":"bearer","description":"","scopes":[],"schemeName":"bearer"}}},"servers":{"7319aa28-1b63-40ae-bca9-deab74825e3c":{"url":"https://api.zeeg.me/v2","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"zeeg","siteName":"Zeeg Developer Hub","title":"Replace Routing Form Routes - Zeeg Developer Hub","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T22:30:52.941Z","gitLastModified":"2026-11-01T22:30:36.000Z","originalFileLocation":"api/routing-forms/replace-routing-form-routes.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=\"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zeeg Developer Hub\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_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/zeeg/ghjkS0QJHhQPDpab/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Replace Routing Form Routes - Zeeg Developer Hub\">\u003cmeta data-mint-head property=\"og:description\" content=\"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zeeg Developer Hub\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zeeg.mintlify.site/_mintlify/api/og/v2?division=Forms\u0026amp;title=Replace+Routing+Form+Routes\u0026amp;description=Replace+the+routes+of+a+routing+form+with+the+Zeeg+API%2C+sending+each+answer+to+a+scheduling+page%2C+a+team%2C+a+URL+or+a+message%2C+with+an+optional+fallback.\u0026amp;theme=902e11371c50c4af37ea8b4f\u0026amp;signature=0a9db1dcb1d8c43cf34c630b74deaa8235e6038313483496575e89830c91265b\">\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=\"Replace Routing Form Routes - Zeeg Developer Hub\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zeeg.mintlify.site/_mintlify/api/og/v2?division=Forms\u0026amp;title=Replace+Routing+Form+Routes\u0026amp;description=Replace+the+routes+of+a+routing+form+with+the+Zeeg+API%2C+sending+each+answer+to+a+scheduling+page%2C+a+team%2C+a+URL+or+a+message%2C+with+an+optional+fallback.\u0026amp;theme=902e11371c50c4af37ea8b4f\u0026amp;signature=0a9db1dcb1d8c43cf34c630b74deaa8235e6038313483496575e89830c91265b\">\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/zeeg/ghjkS0QJHhQPDpab/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zeeg Developer Hub\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6C63FF\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"author\" content=\"Zeeg\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/routing-forms/replace-routing-form-routes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.zeeg.me/#organization\",\"name\":\"Zeeg Developer Hub\",\"url\":\"https://developer.zeeg.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zeeg/9voKLLkajreclhp4/images/Zeeglogo(Original).svg?fit=max\u0026auto=format\u0026n=9voKLLkajreclhp4\u0026q=85\u0026s=321632804eda4b3cff044941f9ccadda\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.zeeg.me#website\",\"name\":\"Zeeg Developer Hub\",\"url\":\"https://developer.zeeg.me\",\"publisher\":{\"@id\":\"https://developer.zeeg.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes#webpage\",\"url\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes\",\"name\":\"Replace Routing Form Routes\",\"description\":\"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\",\"dateModified\":\"2026-11-01T22:30:36.000Z\",\"isPartOf\":{\"@id\":\"https://developer.zeeg.me#website\"},\"breadcrumb\":{\"@id\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://developer.zeeg.me/api/scheduled-events/list-scheduled-events\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Routing Forms\",\"item\":\"https://developer.zeeg.me/api/routing-forms/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Forms\",\"item\":\"https://developer.zeeg.me/api/routing-forms/list-routing-forms\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Replace Routing Form Routes\",\"item\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes#apireference\",\"headline\":\"Replace Routing Form Routes\",\"name\":\"Replace Routing Form Routes\",\"description\":\"Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback.\",\"url\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes\",\"mainEntityOfPage\":{\"@id\":\"https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes#webpage\"},\"dateModified\":\"2026-11-01T22:30:36.000Z\",\"publisher\":{\"@id\":\"https://developer.zeeg.me/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.zeeg.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zeeg Developer Hub\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Zeeg Developer Hub\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api/routing-forms/replace-routing-form-routes.md","siteName":"Zeeg Developer Hub","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/booking-flow"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"group":"Scheduled Events","expanded":false,"pages":[{"title":"List Scheduled Events","openapi":"GET /scheduled-events","href":"/api/scheduled-events/list-scheduled-events"},{"title":"Get a Scheduled Event","openapi":"GET /scheduled-events/{uuid}","href":"/api/scheduled-events/get-a-scheduled-event"},{"title":"Get Reschedule Availability","openapi":"GET /scheduled-events/{uuid}/reschedule-availability","href":"/api/scheduled-events/get-reschedule-availability"},{"title":"Reschedule a Scheduled Event","openapi":"PUT /scheduled-events/{uuid}/reschedule","href":"/api/scheduled-events/reschedule-a-scheduled-event"},{"title":"Cancel a Scheduled Event","openapi":"PUT /scheduled-events/{uuid}/cancel","href":"/api/scheduled-events/cancel-a-scheduled-event"},{"title":"Cancel a Scheduled Invitee","openapi":"PUT /scheduled-invitees/{uuid}/cancel","href":"/api/scheduled-events/cancel-a-scheduled-invitee"},{"title":"Handover a Scheduled Event","openapi":"PUT /scheduled-events/{uuid}/handover","href":"/api/scheduled-events/handover-a-scheduled-event"}]},{"group":"Scheduling Pages","expanded":false,"pages":[{"title":"List Scheduling Pages","openapi":"GET /event-types","href":"/api/scheduling-pages/list-scheduling-pages"},{"title":"Get a Scheduling Page","openapi":"GET /event-types/{uuid}","href":"/api/scheduling-pages/get-a-scheduling-page"},{"title":"Create a Scheduling Page","openapi":"POST /event-types","href":"/api/scheduling-pages/create-a-scheduling-page"},{"title":"Update a Scheduling Page","openapi":"PATCH /event-types/{uuid}","href":"/api/scheduling-pages/update-a-scheduling-page"},{"title":"Duplicate a Scheduling Page","openapi":"POST /event-types/{uuid}/duplicate","href":"/api/scheduling-pages/duplicate-a-scheduling-page"},{"title":"Delete a Scheduling Page","openapi":"DELETE /event-types/{uuid}","href":"/api/scheduling-pages/delete-a-scheduling-page"},{"title":"Get Scheduling Page Questions","openapi":"GET /event-types/{uuid}/questions","href":"/api/scheduling-pages/get-scheduling-page-questions"},{"title":"Replace Scheduling Page Questions","openapi":"PUT /event-types/{uuid}/questions","href":"/api/scheduling-pages/replace-scheduling-page-questions"},{"title":"Get Scheduling Page Notifications","openapi":"GET /event-types/{uuid}/notifications","href":"/api/scheduling-pages/get-scheduling-page-notifications"},{"title":"Update Scheduling Page Notifications","openapi":"PATCH /event-types/{uuid}/notifications","href":"/api/scheduling-pages/update-scheduling-page-notifications"},{"title":"Toggle Scheduling Page Status","openapi":"PUT /event-types/{uuid}/status","href":"/api/scheduling-pages/toggle-scheduling-page-status"},{"title":"Get a Single-Use Scheduling Link","openapi":"GET /event-types/{uuid}/single-use-link","href":"/api/scheduling-pages/get-a-single-use-scheduling-link"},{"title":"Get Available Time Slots","openapi":"GET /availability/{ownerSlug}/event-types/{eventTypeSlug}","href":"/api/scheduling-pages/get-available-time-slots"},{"title":"Get Available Time Slots by ID","openapi":"GET /event-types/{uuid}/availability","href":"/api/scheduling-pages/get-available-time-slots-by-id"},{"title":"Create an Event","openapi":"POST /event","href":"/api/scheduling-pages/create-an-event"}]},{"group":"Availability Schedule","expanded":false,"pages":[{"title":"Get All Availability Schedules","openapi":"GET /schedules","href":"/api/availability/get-all-availability-schedules"},{"title":"Get Default Availability Schedule","openapi":"GET /schedules/default","href":"/api/availability/get-default-availability-schedule"},{"title":"Update Default Availability Schedule","openapi":"PATCH /schedules/default","href":"/api/availability/update-default-availability-schedule"},{"title":"Get Availability Schedule by UUID","openapi":"GET /schedules/{uuid}","href":"/api/availability/get-availability-schedule-by-uuid"},{"title":"Update Availability Schedule by UUID","openapi":"PATCH /schedules/{uuid}","href":"/api/availability/update-availability-schedule-by-uuid"},{"title":"List Time-Off Periods","openapi":"GET /time-off","href":"/api/availability/list-time-off-periods"},{"title":"Create Time-Off Periods","openapi":"POST /time-off","href":"/api/availability/create-time-off-periods"},{"title":"Update Time-Off Period","openapi":"PATCH /time-off/{uuid}","href":"/api/availability/update-time-off-period"},{"title":"Delete Time-Off Period","openapi":"DELETE /time-off/{uuid}","href":"/api/availability/delete-time-off-period"},{"title":"List Holiday Categories","openapi":"GET /holidays/categories","href":"/api/holidays/list-holiday-categories"},{"title":"Preview Holidays for a Category","openapi":"GET /holidays/preview","href":"/api/holidays/preview-holidays"},{"title":"List Holiday Subscriptions","openapi":"GET /holidays/subscriptions","href":"/api/holidays/list-holiday-subscriptions"},{"title":"Create Holiday Subscriptions","openapi":"POST /holidays/subscriptions","href":"/api/holidays/create-holiday-subscriptions"},{"title":"Delete a Holiday Subscription","openapi":"DELETE /holidays/subscriptions/{id}","href":"/api/holidays/delete-holiday-subscription"},{"title":"Toggle Holiday Overrides","openapi":"PUT /holidays/subscriptions/{id}/overrides","href":"/api/holidays/toggle-holiday-overrides"}]},{"group":"Webhooks","expanded":false,"pages":[{"title":"Create Webhook Subscription","openapi":"POST /webhooks","href":"/api/webhooks/create-webhook-subscription"},{"title":"List Webhook Subscriptions","openapi":"GET /webhooks/scope/{scope}","href":"/api/webhooks/list-webhook-subscriptions"},{"title":"Get Webhook Subscription","openapi":"GET /webhooks/{uuid}","href":"/api/webhooks/get-webhook-subscription"},{"title":"Delete Webhook Subscription","openapi":"DELETE /webhooks/{uuid}","href":"/api/webhooks/delete-webhook-subscription"}]},{"group":"Notes","expanded":false,"pages":[{"title":"Create a Note","openapi":"POST /notes","href":"/api/notes/create-a-note"},{"title":"List Notes by Event","openapi":"GET /notes/event/{uuid}","href":"/api/notes/list-notes-by-event"},{"title":"Get a Note","openapi":"GET /notes/{id}","href":"/api/notes/get-a-note"},{"title":"Update a Note","openapi":"PUT /notes/{id}","href":"/api/notes/update-a-note"},{"title":"Delete a Note","openapi":"DELETE /notes/{id}","href":"/api/notes/delete-a-note"}]},{"group":"Workspaces \u0026 Teams","expanded":false,"pages":[{"title":"Check Logged-in User","openapi":"GET /whoami","href":"/api/workspaces-teams/check-logged-in-user"},{"title":"List Users in a Workspace","openapi":"GET /organizations/users","href":"/api/workspaces-teams/list-users-in-a-workspace"},{"title":"List Teams","openapi":"GET /teams","href":"/api/workspaces-teams/list-teams"},{"title":"Create a Team","openapi":"POST /teams","href":"/api/workspaces-teams/create-a-team"},{"title":"Update a Team","openapi":"PATCH /teams/{teamId}","href":"/api/workspaces-teams/update-a-team"},{"title":"Delete a Team","openapi":"DELETE /teams/{teamId}","href":"/api/workspaces-teams/delete-a-team"},{"title":"List Team Members","openapi":"GET /teams/{teamId}/members","href":"/api/workspaces-teams/list-team-members"},{"title":"Add a Team Member","openapi":"POST /teams/{teamId}/members","href":"/api/workspaces-teams/add-a-team-member"},{"title":"Remove a Team Member","openapi":"DELETE /teams/{teamId}/members/{memberId}","href":"/api/workspaces-teams/remove-a-team-member"},{"title":"Invite People to the Workspace","openapi":"POST /organizations/invitations","href":"/api/workspaces-teams/invite-people"},{"title":"List Pending Invitations","openapi":"GET /organizations/invitations","href":"/api/workspaces-teams/list-invitations"},{"title":"Revoke an Invitation","openapi":"DELETE /organizations/invitations/{invitationId}","href":"/api/workspaces-teams/revoke-an-invitation"}]},{"group":"AI Agent","expanded":false,"pages":[{"title":"Create Outbound Call","openapi":"POST /agents/{agentUuid}/outbound-calls","href":"/api/ai-agent/create-outbound-call"},{"title":"List AI Agents","openapi":"GET /agents","href":"/api/ai-agent/list-agents"},{"title":"List Agent Calls","openapi":"GET /agents/{agentUuid}/calls","href":"/api/ai-agent/list-agent-calls"},{"title":"Get Agent Call","openapi":"GET /agent-calls/{callId}","href":"/api/ai-agent/get-agent-call"}]},{"group":"Webhook Payloads","expanded":false,"pages":[{"title":"Event Webhook Payload","href":"/api/webhook-payloads/event-webhook-payload"},{"title":"Routing Form Webhook Payload","href":"/api/webhook-payloads/routing-form-webhook-payload"},{"title":"AI Agent Call Webhook Payload","href":"/api/webhook-payloads/ai-agent-call-webhook-payload"}]},{"group":"CRM","expanded":false,"pages":[{"title":"CRM Overview","href":"/api/crm/overview"},{"group":"Objects","pages":[{"title":"List CRM Objects","openapi":"GET /crm/objects","href":"/api/crm/list-crm-objects"},{"title":"Get a CRM Object","openapi":"GET /crm/objects/{slug}","href":"/api/crm/get-a-crm-object"},{"title":"Create a CRM Object","openapi":"POST /crm/objects","href":"/api/crm/create-a-crm-object"},{"title":"Update a CRM Object","openapi":"PATCH /crm/objects/{slug}","href":"/api/crm/update-a-crm-object"},{"title":"Delete a CRM Object","openapi":"DELETE /crm/objects/{slug}","href":"/api/crm/delete-a-crm-object"},{"title":"Add Attribute to CRM Object","openapi":"POST /crm/objects/{slug}/attributes","href":"/api/crm/add-attribute-to-crm-object"},{"title":"Update CRM Object Attribute","openapi":"PATCH /crm/objects/{slug}/attributes/{attributeKey}","href":"/api/crm/update-crm-object-attribute"}]},{"group":"Companies","pages":[{"title":"List CRM Companies","openapi":"GET /crm/companies","href":"/api/crm/list-crm-companies"},{"title":"Get a CRM Company","openapi":"GET /crm/companies/{id}","href":"/api/crm/get-a-crm-company"},{"title":"Create a CRM Company","openapi":"POST /crm/companies","href":"/api/crm/create-a-crm-company"},{"title":"Assert a CRM Company","openapi":"PUT /crm/companies","href":"/api/crm/assert-a-crm-company"},{"title":"Patch a CRM Company","openapi":"PATCH /crm/companies/{id}","href":"/api/crm/patch-a-crm-company"},{"title":"Delete a CRM Company","openapi":"DELETE /crm/companies/{id}","href":"/api/crm/delete-a-crm-company"}]},{"group":"People","pages":[{"title":"List CRM People","openapi":"GET /crm/people","href":"/api/crm/list-crm-people"},{"title":"Get a CRM Person","openapi":"GET /crm/people/{id}","href":"/api/crm/get-a-crm-person"},{"title":"Create a CRM Person","openapi":"POST /crm/people","href":"/api/crm/create-a-crm-person"},{"title":"Assert a CRM Person","openapi":"PUT /crm/people","href":"/api/crm/update-a-crm-person"},{"title":"Patch a CRM Person","openapi":"PATCH /crm/people/{id}","href":"/api/crm/patch-a-crm-person"},{"title":"Delete a CRM Person","openapi":"DELETE /crm/people/{id}","href":"/api/crm/delete-a-crm-person"}]},{"group":"Records","pages":[{"title":"List CRM Records","openapi":"GET /crm/{objectSlug}","href":"/api/crm/list-crm-records"},{"title":"Get a CRM Record","openapi":"GET /crm/{objectSlug}/{recordId}","href":"/api/crm/get-a-crm-record"},{"title":"Create a CRM Record","openapi":"POST /crm/{objectSlug}","href":"/api/crm/create-a-crm-record"},{"title":"Assert a CRM Record (Upsert)","openapi":"PUT /crm/{objectSlug}","href":"/api/crm/assert-a-crm-record"},{"title":"Patch a CRM Record","openapi":"PATCH /crm/{objectSlug}/{recordId}","href":"/api/crm/patch-a-crm-record"},{"title":"Delete a CRM Record","openapi":"DELETE /crm/{objectSlug}/{recordId}","href":"/api/crm/delete-a-crm-record"},{"title":"Update a CRM Record Relation","openapi":"PATCH /crm/{objectSlug}/{recordId}/relation","href":"/api/crm/update-relation-crm-record"}]}]},{"group":"Routing Forms","expanded":false,"pages":[{"title":"Routing Forms Overview","href":"/api/routing-forms/overview"},{"group":"Forms","pages":[{"title":"List Routing Forms","openapi":"GET /routing-forms","href":"/api/routing-forms/list-routing-forms"},{"title":"Get a Routing Form","openapi":"GET /routing-forms/{id}","href":"/api/routing-forms/get-a-routing-form"},{"title":"Create a Routing Form","openapi":"POST /routing-forms","href":"/api/routing-forms/create-a-routing-form"},{"title":"Update a Routing Form","openapi":"PATCH /routing-forms/{id}","href":"/api/routing-forms/update-a-routing-form"},{"title":"Duplicate a Routing Form","openapi":"POST /routing-forms/{id}/duplicate","href":"/api/routing-forms/duplicate-a-routing-form"},{"title":"Replace Routing Form Questions","description":"Replace every question of a routing form with the Zeeg API. The write covers the whole list, so a question the body leaves out is deleted.","openapi":"PUT /routing-forms/{id}/inputs","href":"/api/routing-forms/replace-routing-form-questions"},{"title":"Replace Routing Form Routes","openapi":"PUT /routing-forms/{id}/routes","href":"/api/routing-forms/replace-routing-form-routes"},{"title":"Delete a Routing Form","description":"Delete a routing form by ID via the Zeeg API, removing its questions, its routes and every submission it holds. This cannot be undone.","openapi":"DELETE /routing-forms/{id}","href":"/api/routing-forms/delete-a-routing-form"}]},{"group":"Submissions","pages":[{"title":"List Routing Form Submissions","openapi":"GET /routing-form-submissions","href":"/api/routing-forms/list-routing-form-submissions"},{"title":"Get a Routing Form Submission","openapi":"GET /routing-form-submissions/{id}","href":"/api/routing-forms/get-a-routing-form-submission"},{"title":"Delete a Routing Form Submission","openapi":"DELETE /routing-form-submissions/{id}","href":"/api/routing-forms/delete-a-routing-form-submission"}]}]}]}]}]},"basePath":"","title":"Replace Routing Form Routes - Zeeg Developer Hub","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-C4GwDT3_.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}