Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override
Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.
← Back to Customization CookbookScenario: Production-grade ambient documentation for a multi-customer SaaS. You need a governed baseline, customer-specific tuning, and per-encounter clinician control all at once.What you do (layer-by-layer):
Layer
Resource
Purpose
1. Canonical
your-hpi (and other canonical sections)
Your stable, opinionated baseline. Versioned, published.
2. Customer variant (inherits canonical)
your-hpi-customer-A (and others) — inheritFromId: your-hpi with customer-specific writing style or schema
your-followup-customer-A — composes the customer’s variant sections
Stable, per-customer composition
4. Runtime override
POST /documents Path 2 against the customer template, with per-call overrides
Last-mile clinician/UI tweaks
The request looks the same as Recipe 5 — what changes is the template you’re targeting:
POST /documents — full stack
{ "outputLanguage": "en-US", "interactionId": "<your-interaction-id>", "templateRef": { "templateId": "<your-template-id>", "overrides": { "sections": [ { "sectionId": "<your-section-id>", "generation": { "instructions": { "writingStylePrompt": "Use second person for this encounter; this is a return visit and the patient prefers direct address." } } } ] } }}
Why this lever: Every concern lives at the right layer. Corti improvements flow into your canonical sections; canonical improvements flow into customer-inheriting variants; customer baselines flow into per-request renderings — and your end users still get the last word per encounter.Caveat: This is the most operational of the recipes — three layers of resources to manage. Adopt it only when the value of per-customer baselines is clear; otherwise Recipe 5 (own + runtime overrides) is simpler.Previous: Recipe 6 — Inherit from your own sections to scale · Back to Customization Cookbook
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Corti API Documentation","description":"Explore product documentation, quickstart guides, tutorials, release notes, and detailed API references to build with Corti API. Leverage full stack AI to unlock workflows with speech to text, text generation, agentic framework, embedded Corti Assistant and more.","colors":{"primary":"#3F3F46","light":"#F4F4F5","dark":"#18181B"},"logo":{"light":"https://mintcdn.com/corti/en_RPjQCFb1qJpbU/logo/corti_light.svg?fit=max\u0026auto=format\u0026n=en_RPjQCFb1qJpbU\u0026q=85\u0026s=effbca890e531e034f6b66ce8e15aa6c","dark":"https://mintcdn.com/corti/en_RPjQCFb1qJpbU/logo/corti_dark.svg?fit=max\u0026auto=format\u0026n=en_RPjQCFb1qJpbU\u0026q=85\u0026s=39e1b8245783318adebc44f1548aee0d"},"favicon":"https://mintcdn.com/corti/en_RPjQCFb1qJpbU/logo/favicon-docs.svg?fit=max\u0026auto=format\u0026n=en_RPjQCFb1qJpbU\u0026q=85\u0026s=1971ff0d52cd65b9f56d059bc6457848","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","javascript","csharp","python","php","go","java"]},"mdx":{"auth":{"method":"bearer"}}},"background":{"color":{"light":"#FFFFFF","dark":"#09090B"}},"navbar":{"links":[{"href":"https://help.corti.app/","label":"Support"}],"primary":{"type":"button","label":"Start Building","href":"https://console.corti.app/signup"}},"footer":{"socials":{"website":"https://www.corti.ai","x":"https://x.com/corti_ai","linkedin":"https://www.linkedin.com/company/corti","github":"https://github.com/corticph","youtube":"https://www.youtube.com/@cortiai"}},"fonts":{"heading":{"family":"Booton","weight":600},"body":{"family":"Booton","weight":400}},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-MR3DSSF2"},"intercom":{"appId":"y30epli4"}},"banner":{"content":"Corti Models is now available: frontier AI on sovereign infrastructure, through an OpenAI-compatible API. [Get started](/models/welcome).","dismissible":true},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you're looking for doesn't exist or may have moved. Use the search bar above, or start from one of these pages:\n\n- [Get started](/get_started/welcome)\n- [Corti Models](/models/welcome)\n- [Agentic Framework](/agentic/overview)\n- [Speech to Text](/stt/overview)\n- [Clinical Text Generation](/textgen/overview)\n- [Medical Coding](/coding/overview)\n- [Clinical Assistant](/assistant/welcome)\n- [API Reference](/api-reference/welcome)"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"corti","hasAudioNarration":false,"actualSubdomain":"corti","customDomains":["docs.corti.ai"],"gitSource":{"type":"github","owner":"corticph","repo":"docs_corti","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9e9a807405bf5d5962d53","collectionId":"4dcb83c2-ac0d-4dcb-81f6-3ed8cd1a3b9c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9e9a807405bf5d5962d53"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae9e9a807405bf5d5962d53","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Healthcare","count":209},{"language":"default","tag":"API Reference","count":141},{"language":"default","tag":"Clinical Assistant","count":117},{"language":"default","tag":"Events","count":85},{"language":"default","tag":"Event Reference","count":84},{"language":"default","tag":"REST APIs","count":60},{"language":"default","tag":"Agentic Framework","count":51},{"language":"default","tag":"Home","count":49},{"language":"default","tag":"Speech to Text","count":48},{"language":"default","tag":"Clinical Text Generation","count":47}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"help@corti.ai"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Booton\";src:url(\"/fonts/booton/Booton-Regular.woff2\") format(\"woff2\");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:\"Booton\";src:url(\"/fonts/booton/Booton-Medium.woff2\") format(\"woff2\");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:\"Booton\";src:url(\"/fonts/booton/Booton-Semibold.woff2\") format(\"woff2\");font-style:normal;font-weight:600;font-display:swap}:root{--corti-font-sans: \"Booton\", \"Inter\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif;--mintlify-slot-header-height: 7rem}html,body{font-family:var(--corti-font-sans);font-weight:400;-webkit-font-smoothing:antialiased}body :not(code):not(code *):not(pre):not(pre *):not(kbd):not(kbd *):not(samp):not(samp *){font-family:var(--corti-font-sans)}h1,h2,h3,h4,h5,h6{font-family:var(--corti-font-sans);font-weight:600!important;color:var(--tw-prose-headings, #18181b)!important}:is(html.dark,.dark) h1,:is(html.dark,.dark) h2,:is(html.dark,.dark) h3,:is(html.dark,.dark) h4,:is(html.dark,.dark) h5,:is(html.dark,.dark) h6{color:#fafafa!important}:is(html.dark,.dark) [data-component-part=\"step-title\"]{color:#fafafa!important}a[target=\"_blank\"][href=\"https://console.corti.app/signup\"].group>span.absolute.inset-0{background-color:#18181b!important}:is(html.dark,.dark) a[target=\"_blank\"][href=\"https://console.corti.app/signup\"].group>span.absolute.inset-0{background-color:#fafafa!important}:is(html.dark,.dark) a[target=\"_blank\"][href=\"https://console.corti.app/signup\"].group .z-10,:is(html.dark,.dark) a[target=\"_blank\"][href=\"https://console.corti.app/signup\"].group .z-10 *,:is(html.dark,.dark) a[target=\"_blank\"][href=\"https://console.corti.app/signup\"].group svg{color:#18181b!important}[data-component-part=\"card-content-container\"]{align-items:flex-start!important}.card [data-component-part=\"card-content\"]>.code-block:last-child{margin-bottom:0!important}[data-component-part=\"card-content-container\"]>div[class*=\"h-6\"][class*=\"w-6\"]{width:24px!important;height:24px!important;min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}[data-component-part=\"card-content-container\"]>div[class*=\"h-6\"][class*=\"w-6\"] svg,[data-component-part=\"card-content-container\"]>div[class*=\"h-6\"][class*=\"w-6\"] img{width:24px!important;height:24px!important}:is(html.dark,.dark) .card [data-component-part=\"card-title\"],:is(html.dark,.dark) .card [data-component-part=\"card-title\"] a,:is(html.dark,.dark) .card h2 a,:is(html.dark,.dark) .card h3 a,:is(html.dark,.dark) .card h4 a,:is(html.dark,.dark) .card a[href].font-semibold{color:#fafafa!important}:is(html.dark,.dark) .card [data-component-part=\"card-title\"] a:visited,:is(html.dark,.dark) .card h2 a:visited,:is(html.dark,.dark) .card h3 a:visited,:is(html.dark,.dark) .card h4 a:visited,:is(html.dark,.dark) .card a[href].font-semibold:visited{color:#fafafa!important}.nav-tag-pill-text[data-nav-tag=\"beta\"],[data-nav-tag=\"beta\"].nav-tag-pill-text{background-color:#b8f818!important;border:none!important;color:#18181b!important;text-transform:uppercase!important;font-weight:600!important}#navigation-items{padding-bottom:9rem}.accent-badge{background-color:#b8f818!important;border:none!important;color:#18181b!important;text-transform:uppercase!important;font-weight:600!important}.mdx-content li strong{font-weight:600!important}.mdx-content [class*=\"overflow-x-auto\"]{overflow-x:visible!important}.mdx-content [class*=\"w-[calc(100%+(var(--page-padding)*2))]\"]{width:100%!important}.mdx-content [class*=\"-mx-[var(--page-padding)]\"]{margin-left:0!important;margin-right:0!important}.mdx-content [class*=\"max-w-none\"]{max-width:100%!important}.mdx-content .table{display:block!important}.mdx-content table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:auto;border-collapse:collapse;box-sizing:border-box;margin:0}.mdx-content table th,.mdx-content table td{min-width:0!important;vertical-align:top}.mdx-content table th,.mdx-content table th *{white-space:normal;overflow-wrap:normal!important;word-break:normal!important;hyphens:manual}.mdx-content table th,.mdx-content table th *,.mdx-content table strong{font-weight:600!important}.mdx-content table td{white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:manual}.mdx-content table code,.mdx-content table kbd,.mdx-content table samp{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.mdx-content table td code,.mdx-content table td kbd,.mdx-content table td samp{white-space:normal;overflow-wrap:normal;word-break:normal}.mdx-content table td a{white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:manual}.mdx-content .capabilities-table table th:first-child,.mdx-content .capabilities-table table td:first-child,.mdx-content .capabilities-table table th:last-child,.mdx-content .capabilities-table table td:last-child,.mdx-content .capabilities-table table td:first-child a,.mdx-content .capabilities-table table td:last-child a{white-space:nowrap}.mdx-content table img,.mdx-content table svg{max-width:100%;height:auto;display:block}.mdx-content [data-component-part=\"code-block-root\"]{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.mdx-content [data-component-part=\"code-block-root\"][class*=\"overflow-x-auto\"]{overflow-x:auto!important}.mdx-content [data-component-part=\"code-block-root\"] pre,.mdx-content [data-component-part=\"code-block-root\"] code,.mdx-content [data-component-part=\"code-block-root\"] .shiki,.mdx-content [data-component-part=\"code-block-root\"] .shiki .line,.mdx-content [data-component-part=\"code-block-root\"] .shiki .line>span{white-space:pre!important;word-break:normal!important;overflow-wrap:normal!important}.mdx-content [data-component-part=\"code-block-root\"] pre>code>span.line-diff{min-width:max-content!important}:not(pre)>code{background-color:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.08);border-radius:6px;padding:0.15em 0.4em;font-size:0.875em;color:inherit}:is(html.dark,.dark) :not(pre)>code{background-color:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.08);color:#fafafa}html:not(.dark) .mdx-content [data-component-part=\"code-block-root\"] .line-highlight,html:not(.dark) .mdx-content [data-component-part=\"code-block-root\"] .line-highlight::before{background-color:rgba(115, 115, 115, 0.16)!important}:is(html.dark,.dark) g.node.nodeNeutral span,:is(html.dark,.dark) g.node.nodeNeutral .label,:is(html.dark,.dark) g.node.nodeNeutral .label text,:is(html.dark,.dark) g.node.nodeGray span,:is(html.dark,.dark) g.node.nodeGray .label,:is(html.dark,.dark) g.node.nodeGray .label text,:is(html.dark,.dark) g.node.nodeBlue span,:is(html.dark,.dark) g.node.nodeBlue .label,:is(html.dark,.dark) g.node.nodeBlue .label text,:is(html.dark,.dark) g.node.nodeGreen span,:is(html.dark,.dark) g.node.nodeGreen .label,:is(html.dark,.dark) g.node.nodeGreen .label text,:is(html.dark,.dark) g.node.nodeYellow span,:is(html.dark,.dark) g.node.nodeYellow .label,:is(html.dark,.dark) g.node.nodeYellow .label text,:is(html.dark,.dark) g.node.nodeCyan span,:is(html.dark,.dark) g.node.nodeCyan .label,:is(html.dark,.dark) g.node.nodeCyan .label text,:is(html.dark,.dark) g.node.nodePurple span,:is(html.dark,.dark) g.node.nodePurple .label,:is(html.dark,.dark) g.node.nodePurple .label text,:is(html.dark,.dark) g.node.nodeLightPurple span,:is(html.dark,.dark) g.node.nodeLightPurple .label,:is(html.dark,.dark) g.node.nodeLightPurple .label text{color:#1a1a1a!important;fill:#1a1a1a!important}img[src$=\"embedded-assistant.svg\"]{filter:brightness(0) invert(32%)}a[aria-current=\"location\"] img[src$=\"embedded-assistant.svg\"],a:hover img[src$=\"embedded-assistant.svg\"]{filter:brightness(0) invert(15%)}:is(html.dark,.dark) img[src$=\"embedded-assistant.svg\"]{filter:brightness(0) invert(63%)}:is(html.dark,.dark) a[aria-current=\"location\"] img[src$=\"embedded-assistant.svg\"],:is(html.dark,.dark) a:hover img[src$=\"embedded-assistant.svg\"]{filter:brightness(0) invert(88%)}.errors-tabs [role=\"tablist\"] [role=\"tab\"],.errors-tabs [role=\"tablist\"] [role=\"tab\"] *,.errors-tabs [role=\"tablist\"] button,.errors-tabs [role=\"tablist\"] button *{font-weight:800!important;font-size:1.05em!important}"}],"page":{"pagePath":"textgen/customization-cookbook/recipe-7-full-stack","slug":"/textgen/customization-cookbook/recipe-7-full-stack","pageMetadata":{"title":"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override","sidebarTitle":"7. The full stack","description":"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.","href":"/textgen/customization-cookbook/recipe-7-full-stack"},"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: \"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\"\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`,em:`em`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`← Back to `,_jsx(_components.a,{href:`/textgen/customization-cookbook`,children:`Customization Cookbook`})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Scenario:`}),` Production-grade ambient documentation for a multi-customer SaaS. You need a governed baseline, customer-specific tuning, `,_jsx(_components.em,{children:`and`}),` per-encounter clinician control all at once.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What you do (layer-by-layer):`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Layer`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Resource`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`1. Canonical`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`your-hpi`}),` (and other canonical sections)`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Your stable, opinionated baseline. Versioned, published.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`2. Customer variant (inherits canonical)`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`your-hpi-customer-A`}),` (and others) — `,_jsx(_components.code,{children:`inheritFromId: your-hpi`}),` with customer-specific writing style or schema`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Persistent per-customer variant; tracks canonical improvements`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`3. Customer template`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`your-followup-customer-A`}),` — composes the customer’s variant sections`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Stable, per-customer composition`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`4. Runtime override`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`POST /documents`}),` Path 2 against the customer template, with per-call overrides`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Last-mile clinician/UI tweaks`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The request looks the same as `,_jsx(_components.a,{href:`/textgen/customization-cookbook/recipe-5-author-with-runtime-overrides`,children:`Recipe 5`}),` — what changes is the template you’re targeting:`]}),`\n`,_jsx(CodeBlock,{filename:`POST /documents — full stack`,expandable:`true`,numberOfLines:`19`,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:`19`,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:` \"outputLanguage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"en-US\"`}),_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:` \"interactionId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cyour-interaction-id>\"`}),_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:` \"templateRef\"`}),_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:` \"templateId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cyour-template-id>\"`}),_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:` \"overrides\"`}),_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:` \"sections\"`}),_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:` \"sectionId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cyour-section-id>\"`}),_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:` \"generation\"`}),_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:` \"instructions\"`}),_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:` \"writingStylePrompt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Use second person for this encounter; this is a return visit and the patient prefers direct address.\"`})]}),`\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`,_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Why this lever:`}),` Every concern lives at the right layer. Corti improvements flow into your canonical sections; canonical improvements flow into customer-inheriting variants; customer baselines flow into per-request renderings — and your end users still get the last word per encounter.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Caveat:`}),` This is the most operational of the recipes — three layers of resources to manage. Adopt it only when the value of per-customer baselines is clear; otherwise `,_jsx(_components.a,{href:`/textgen/customization-cookbook/recipe-5-author-with-runtime-overrides`,children:`Recipe 5`}),` (own + runtime overrides) is simpler.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(_components.p,{children:[`Previous: `,_jsx(_components.a,{href:`/textgen/customization-cookbook/recipe-6-inherit-your-own`,children:`Recipe 6 — Inherit from your own sections to scale`}),` · Back to `,_jsx(_components.a,{href:`/textgen/customization-cookbook`,children:`Customization Cookbook`})]})]})}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":"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override","sidebarTitle":"7. The full stack","description":"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.","href":"/textgen/customization-cookbook/recipe-7-full-stack"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/corti/f39b9e0170d6232a/api-reference/corti.js","/_mintlify/custom/corti/8c15918c79eb9f3c/generate-events-nav.js"],"subdomain":"corti","siteName":"Corti API Documentation","title":"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override - Corti API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-21T16:02:49.216Z","originalFileLocation":"textgen/customization-cookbook/recipe-7-full-stack.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=\"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Corti API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_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/corti/gI_ok5T7zaR8y4z1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override - Corti API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Corti API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://corti.mintlify.site/_mintlify/api/og/v2?division=Customization+Best-Practices\u0026amp;title=Recipe+7+%E2%80%94+The+full+stack%3A+own+canonical+%2B+customer+inheritance+%2B+end-user+runtime+override\u0026amp;description=Combine+a+canonical+baseline%2C+customer-specific+inheriting+variants%2C+and+per-call+runtime+overrides+%E2%80%94+the+most+operational+recipe%2C+for+multi-customer+SaaS+at+sc\u0026amp;theme=34b80329efcd2beff359af85\u0026amp;signature=8fee5018cc603c57a9981ef5a34276bcb6c543350a08da8b2a143c51051db890\">\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=\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override - Corti API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://corti.mintlify.site/_mintlify/api/og/v2?division=Customization+Best-Practices\u0026amp;title=Recipe+7+%E2%80%94+The+full+stack%3A+own+canonical+%2B+customer+inheritance+%2B+end-user+runtime+override\u0026amp;description=Combine+a+canonical+baseline%2C+customer-specific+inheriting+variants%2C+and+per-call+runtime+overrides+%E2%80%94+the+most+operational+recipe%2C+for+multi-customer+SaaS+at+sc\u0026amp;theme=34b80329efcd2beff359af85\u0026amp;signature=8fee5018cc603c57a9981ef5a34276bcb6c543350a08da8b2a143c51051db890\">\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/corti/gI_ok5T7zaR8y4z1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Corti API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3F3F46\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/textgen/customization-cookbook/recipe-7-full-stack.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.corti.ai/#organization\",\"name\":\"Corti API Documentation\",\"url\":\"https://docs.corti.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/corti/en_RPjQCFb1qJpbU/logo/corti_light.svg?fit=max\u0026auto=format\u0026n=en_RPjQCFb1qJpbU\u0026q=85\u0026s=effbca890e531e034f6b66ce8e15aa6c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.corti.ai#website\",\"name\":\"Corti API Documentation\",\"url\":\"https://docs.corti.ai\",\"publisher\":{\"@id\":\"https://docs.corti.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack#webpage\",\"url\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack\",\"name\":\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override\",\"description\":\"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\",\"dateModified\":\"2026-08-21T16:02:49.216Z\",\"isPartOf\":{\"@id\":\"https://docs.corti.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Clinical Text Generation\",\"item\":\"https://docs.corti.ai/textgen/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Best Practices \u0026 Resources\",\"item\":\"https://docs.corti.ai/textgen/migrate-from-classic\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Customization Best-Practices\",\"item\":\"https://docs.corti.ai/textgen/customization-cookbook\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override\",\"item\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack#article\",\"headline\":\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override\",\"name\":\"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override\",\"description\":\"Combine a canonical baseline, customer-specific inheriting variants, and per-call runtime overrides — the most operational recipe, for multi-customer SaaS at scale.\",\"url\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack\",\"mainEntityOfPage\":{\"@id\":\"https://docs.corti.ai/textgen/customization-cookbook/recipe-7-full-stack#webpage\"},\"dateModified\":\"2026-08-21T16:02:49.216Z\",\"publisher\":{\"@id\":\"https://docs.corti.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.corti.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Corti API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Corti API Documentation","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":"/get_started/welcome"}]},{"tab":"Corti Models","icon":"microchip","pages":[{"title":"Corti Models","href":"/models/welcome"}]},{"tab":"Agentic Framework","icon":"layers","pages":[{"title":"Agentic Framework","href":"/agentic/overview"}]},{"tab":"Speech to Text","icon":"audio-lines","pages":[{"title":"Speech to Text","href":"/stt/overview"}]},{"tab":"Healthcare","icon":"heart-pulse","pages":[{"title":"Healthcare","sidebarTitle":"Overview","href":"/healthcare"},{"group":"Clinical Text Generation","icon":"text-align-start","expanded":false,"pages":[{"title":"Overview of Corti Text Generation","sidebarTitle":"Overview","href":"/textgen/overview"},{"group":"Get Started","icon":"rocket","pages":[{"title":"Beginner's Guide to Corti Text Generation","sidebarTitle":"Beginner's Guide","href":"/textgen/beginners-guide"},{"title":"Quickstart — Real-time \u0026 Asynchronous","sidebarTitle":"Quickstart","mode":"wide","href":"/textgen/quickstart"}]},{"group":"Core Capabilities","icon":"sparkles","pages":[{"title":"Introducing FactsR™","sidebarTitle":"FactsR","icon":"list-tree","href":"/textgen/factsr"},{"title":"Summarization \u0026 Clinical Synthesis","sidebarTitle":"Summarization","icon":"scroll-text","href":"/textgen/summarization"}]},{"group":"Manage Templates in Console","icon":"layout-template","pages":[{"title":"Get started with Templates in Corti Console","sidebarTitle":"Get started","href":"/textgen/console-templates/get-started"},{"title":"Build a template","href":"/textgen/console-templates/build-a-template"},{"title":"Build a section","href":"/textgen/console-templates/build-a-section"},{"title":"Manage your library and access","href":"/textgen/console-templates/manage-library"}]},{"group":"Endpoints","icon":"plug","pages":[{"title":"FactsR™ Real-Time Extraction","sidebarTitle":"FactsR via Streams","icon":"radio-tower","href":"/textgen/facts_realtime"},{"title":"FactsR™ - Asynchronous Extraction","sidebarTitle":"FactsR Extract","icon":"list-tree","href":"/textgen/facts_async"},{"group":"Sections \u0026 Templates","icon":"puzzle","pages":[{"title":"Sections \u0026 Templates","sidebarTitle":"Overview","href":"/textgen/sections-templates-overview"},{"title":"Corti Standards","sidebarTitle":"Corti Standards","href":"/textgen/corti-standards"},{"title":"Create a Section","sidebarTitle":"Create a Section","href":"/textgen/section-creation"},{"title":"Designing Section Output Schemas","sidebarTitle":"Section Schemas","href":"/textgen/section-schemas"},{"title":"Create a Template","sidebarTitle":"Create a Template","href":"/textgen/template-creation"},{"title":"Inheritance","sidebarTitle":"Inheritance","href":"/textgen/inheritance"},{"title":"Versioning \u0026 publishing","sidebarTitle":"Versioning","href":"/textgen/versioning"},{"title":"Manage \u0026 discover sections \u0026 templates","sidebarTitle":"Manage \u0026 discover","href":"/textgen/management-discoverability"}]},{"group":"Guided Documents","icon":"wand-sparkles","pages":[{"title":"Guided Documents for Clinical Synthesis","sidebarTitle":"Overview","href":"/textgen/documents-guided-synthesis"},{"group":"One endpoint - 4 paths","pages":[{"title":"Path 1 — Plain `templateRef`","sidebarTitle":"Path 1 — Plain templateRef","href":"/textgen/documents-guided-synthesis/path-1-templateref"},{"title":"Path 2 — `templateRef` with runtime overrides","sidebarTitle":"Path 2 — templateRef + overrides","href":"/textgen/documents-guided-synthesis/path-2-templateref-overrides"},{"title":"Path 3 — Assemble from stored sections","sidebarTitle":"Path 3 — assemblyTemplate","href":"/textgen/documents-guided-synthesis/path-3-assembly"},{"title":"Path 4 — Fully inline dynamic template","sidebarTitle":"Path 4 — dynamicTemplate","href":"/textgen/documents-guided-synthesis/path-4-dynamic"}]}]}]},{"group":"Best Practices \u0026 Resources","icon":"book-marked","pages":[{"title":"Migrate from Documents Classic","sidebarTitle":"Migration from Classic","href":"/textgen/migrate-from-classic"},{"title":"Including EHR SmartPhrase Tokens in Corti Text Generation Templates","sidebarTitle":"SmartPhrase tokens","href":"/textgen/smartphrase-tokens"},{"group":"Customization Best-Practices","icon":"book-open","pages":[{"title":"Customize Templates \u0026 Sections — Cookbook","sidebarTitle":"Customization Cookbook Intro","href":"/textgen/customization-cookbook"},{"title":"Recipe 1 — Use a Corti Standard out of the box","sidebarTitle":"1. Corti Standard as-is","href":"/textgen/customization-cookbook/recipe-1-corti-standard-as-is"},{"title":"Recipe 2 — Inherit from a Corti Standard via `inheritFromId`","sidebarTitle":"2. Inherit a Corti Standard","href":"/textgen/customization-cookbook/recipe-2-inherit-corti-standard"},{"title":"Recipe 3 — Reference Corti Standards + per-call end-user overrides","sidebarTitle":"3. Standards + runtime overrides","href":"/textgen/customization-cookbook/recipe-3-runtime-overrides-on-standards"},{"title":"Recipe 4 — Author your own sections \u0026 templates (stable, governed)","sidebarTitle":"4. Author your own","href":"/textgen/customization-cookbook/recipe-4-author-your-own"},{"title":"Recipe 5 — Your own sections \u0026 templates + end-user runtime overrides","sidebarTitle":"5. Own + runtime overrides","href":"/textgen/customization-cookbook/recipe-5-author-with-runtime-overrides"},{"title":"Recipe 6 — Inherit from your own sections to scale across customers/departments","sidebarTitle":"6. Inherit your own","description":"Keep a canonical section as the single source of truth and create inheriting customer or department variants — improvements to the canonical propagate to every variant.","href":"/textgen/customization-cookbook/recipe-6-inherit-your-own"},{"title":"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override","sidebarTitle":"7. The full stack","href":"/textgen/customization-cookbook/recipe-7-full-stack"}]},{"group":"Prompting Best-Practices","icon":"message-square-text","pages":[{"title":"Prompting \u0026 outputSchema Best-Practices","sidebarTitle":"Prompting Cookbook Intro","description":"A best-practice \"cookbook\" with recipes for steering Corti generation — via the instructions block (contentPrompt, writingStylePrompt, miscPrompt) and via outputSchema (descriptions, enums, patterns).","href":"/textgen/prompting-cookbook"},{"title":"Recipe 1 — contentPrompt: Include / Exclude pattern","sidebarTitle":"1. contentPrompt","href":"/textgen/prompting-cookbook/recipe-1-content-prompt"},{"title":"Recipe 2 — writingStylePrompt: rules + worked examples","sidebarTitle":"2. writingStylePrompt","href":"/textgen/prompting-cookbook/recipe-2-writing-style"},{"title":"Recipe 3 — miscPrompt: the defensive guardrail","sidebarTitle":"3. miscPrompt","href":"/textgen/prompting-cookbook/recipe-3-misc-prompt"},{"title":"Recipe 4 — outputSchema descriptions: per-node prompting","sidebarTitle":"4. outputSchema descriptions as prompts","href":"/textgen/prompting-cookbook/recipe-4-output-schema-descriptions"},{"title":"Recipe 5 — template instructions.prompt: domain \u0026 cross-section priming","sidebarTitle":"5. Template instructions.prompt","href":"/textgen/prompting-cookbook/recipe-5-template-instructions"}]}]},{"group":"Documents Classic","icon":"file-text","pages":[{"group":"Templates","pages":[{"title":"Introduction to Templates","sidebarTitle":"Introduction","tag":"classic","href":"/textgen/templates"},{"title":"Standard Templates \u0026 Sections","tag":"classic","href":"/textgen/templates-standard"}]},{"group":"Document Generation","pages":[{"title":"Standard Document Generation","tag":"classic","href":"/textgen/documents-standard"},{"title":"Advanced Document Generation","tag":"classic","href":"/textgen/documents-advanced"},{"title":"Customize Template Sections","tag":"classic","href":"/textgen/documents-customize"},{"title":"Documentation Modes","href":"/textgen/documents-docmode"}]},{"title":"Languages","href":"/stt/languages"}]}]},{"group":"Medical Coding","icon":"asterisk","expanded":false,"pages":[{"title":"Corti Symphony for Medical Coding","sidebarTitle":"Overview","href":"/coding/overview"},{"title":"Quickstart \u0026 First Request","sidebarTitle":"Quickstart","mode":"wide","href":"/coding/quickstart"},{"group":"Endpoints","icon":"code","expanded":false,"pages":[{"title":"Code Prediction endpoint","sidebarTitle":"Code Prediction","href":"/coding/code-prediction"}]},{"group":"Features","icon":"sliders-horizontal","expanded":false,"pages":[{"title":"Codes and candidates","href":"/coding/codes-and-candidates"},{"title":"Code filtering","href":"/coding/code-filtering"}]},{"group":"Coding Systems","icon":"list-check","expanded":false,"pages":[{"group":"ICD-10","root":{"title":"ICD-10","sidebarTitle":"ICD-10","href":"/coding/icd-10"},"pages":[{"title":"ICD-10-AM","sidebarTitle":"Australia","href":"/coding/icd-10-am"},{"title":"ICD-10-CA","sidebarTitle":"Canada","href":"/coding/icd-10-ca"},{"title":"SKS diagnosis codes","sidebarTitle":"Denmark (SKS)","href":"/coding/sks-diagnosis"},{"title":"CIM-10-FR","sidebarTitle":"France","href":"/coding/cim-10-fr"},{"title":"ICD-10-GM","sidebarTitle":"Germany","href":"/coding/icd-10-gm"},{"title":"ICD-10","sidebarTitle":"International","href":"/coding/icd-10-int"},{"title":"ICD-10-NL","sidebarTitle":"Netherlands","href":"/coding/icd-10-nl"},{"title":"ICD-10-NO","sidebarTitle":"Norway","href":"/coding/icd-10-no"},{"title":"CIE-10-ES","sidebarTitle":"Spain","href":"/coding/cie-10-es"},{"title":"ICD-10-SE","sidebarTitle":"Sweden","href":"/coding/icd-10-se"},{"title":"ICD-10-GM (Swiss Edition)","sidebarTitle":"Switzerland","href":"/coding/icd-10-ch"},{"title":"NHS ICD-10","sidebarTitle":"United Kingdom","href":"/coding/icd-10-uk"},{"title":"ICD-10-CM","sidebarTitle":"USA","href":"/coding/icd-10-cm"}]},{"title":"ICD-11","sidebarTitle":"ICD-11","href":"/coding/icd-11"},{"group":"ICD-O-3","root":{"title":"ICD-O-3","sidebarTitle":"ICD-O-3","href":"/coding/icd-o-3"},"pages":[{"title":"ICD-O-3","sidebarTitle":"International","href":"/coding/icd-o-3-int"},{"title":"ICD-O-3","sidebarTitle":"Germany","href":"/coding/icd-o-3-de"},{"title":"ICD-O-3","sidebarTitle":"France","href":"/coding/icd-o-3-fr"}]},{"title":"LOINC","sidebarTitle":"LOINC","href":"/coding/loinc"},{"title":"MedDRA","sidebarTitle":"MedDRA","href":"/coding/meddra"},{"group":"Procedure Codes","pages":[{"title":"ACHI","sidebarTitle":"Australia","href":"/coding/achi"},{"title":"CCI","sidebarTitle":"Canada","href":"/coding/cci"},{"title":"SKS procedure codes","sidebarTitle":"Denmark (SKS)","href":"/coding/sks-procedure"},{"title":"CCAM","sidebarTitle":"France","href":"/coding/ccam"},{"title":"OPS","sidebarTitle":"Germany","href":"/coding/ops"},{"title":"NCSP / NCMP","sidebarTitle":"Norway","href":"/coding/ncsp-ncmp"},{"title":"CIE-10-PCS","sidebarTitle":"Spain","href":"/coding/cie-10-pcs"},{"title":"KVÅ","sidebarTitle":"Sweden (KVÅ)","href":"/coding/kva"},{"title":"CHOP","sidebarTitle":"Switzerland","href":"/coding/chop"},{"title":"OPCS-4","sidebarTitle":"United Kingdom","href":"/coding/opcs-4"},{"title":"CPT","sidebarTitle":"United States (CPT)","href":"/coding/cpt"},{"title":"HCPCS Level II","sidebarTitle":"United States (HCPCS)","href":"/coding/hcpcs"},{"title":"ICD-10-PCS","sidebarTitle":"United States (ICD-10-PCS)","href":"/coding/icd-10-pcs"}]},{"title":"SKS","sidebarTitle":"SKS","href":"/coding/sks"},{"title":"SNOMED CT","sidebarTitle":"SNOMED CT","href":"/coding/snomed-ct"}]},{"group":"Guides","icon":"navigation","expanded":false,"pages":[{"title":"Implementation guides","sidebarTitle":"Overview","href":"/coding/guides-overview"},{"title":"Encounter Diagnosis Coding","sidebarTitle":"Encounter Coding","href":"/coding/encounter-coding"},{"title":"Clinical Documentation Integrity (CDI)","sidebarTitle":"Clinical Documentation Integrity","href":"/coding/cdi"},{"title":"Revenue Cycle","sidebarTitle":"Revenue Cycle","href":"/coding/revenue-cycle"},{"title":"FHIR \u0026 Snowstorm comparison","sidebarTitle":"FHIR \u0026 Snowstorm","href":"/coding/filter-fhir-snowstorm"}]}]},{"group":"Clinical Assistant","icon":"/logo/embedded-assistant.svg","expanded":false,"pages":[{"title":"Overview of the Corti Embedded Assistant","sidebarTitle":"Overview","mode":"wide","href":"/assistant/welcome"},{"group":"Get Started","icon":"rocket","pages":[{"title":"Introduction to Embedded Assistant API","sidebarTitle":"Introduction","href":"/assistant/introduction"},{"title":"Authentication for Embedded Users","sidebarTitle":"Authentication","href":"/assistant/authentication"},{"title":"Choose Your Integration","sidebarTitle":"Choose Your Integration","href":"/assistant/integrations-overview"},{"title":"Embedded Reliability, Timeouts, and Recovery","sidebarTitle":"Reliability","href":"/assistant/reliability-timeouts"}]},{"group":"Change Management","icon":"clock-3","pages":[{"title":"Release Notes","sidebarTitle":"Release Notes","href":"/assistant/release-notes"},{"title":"Scheduled Deprecations","sidebarTitle":"Scheduled Deprecations","href":"/assistant/deprecation-timeline"},{"group":"Migration Guides","pages":[{"title":"Config Migration Guide","sidebarTitle":"Configuration (due 2026-11-29)","href":"/assistant/configuration-migration"}]}]},{"group":"Configuration","icon":"sliders-horizontal","pages":[{"title":"Embedded API Configuration Scenarios","sidebarTitle":"Configuration scenarios","href":"/assistant/configuration-scenarios"},{"title":"Embedded API Supported Values","sidebarTitle":"Supported values","href":"/assistant/configuration-values"},{"title":"Configuration Guide","sidebarTitle":"Configuration Guide (Deprecated)","href":"/assistant/configuration"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Web Component API","href":"/assistant/web-component-api"},{"title":"PostMessage API","href":"/assistant/postmessage-api"},{"title":"Window API","href":"/assistant/window-api"}]},{"group":"Guides","icon":"book-open","pages":[{"title":"Embedding Assistant in React Web App","sidebarTitle":"React Web App","href":"/assistant/guides/react-integration"},{"title":"Embed Corti Assistant in an EHR workflow","href":"/assistant/guides/ehr-integration"}]},{"group":"API Reference","icon":"code","pages":[{"title":"API Reference","sidebarTitle":"Overview","href":"/assistant/api-reference"},{"title":"API Reference Workflows","sidebarTitle":"Workflows","href":"/assistant/api-reference-workflows"},{"group":"Application","pages":[{"title":"auth()","sidebarTitle":"auth","href":"/assistant/api/auth"},{"title":"configureApp()","sidebarTitle":"configureApp","href":"/assistant/api/configure-app"},{"title":"navigate()","sidebarTitle":"navigate","href":"/assistant/api/navigate"},{"title":"setCredentials()","sidebarTitle":"setCredentials","href":"/assistant/api/set-credentials"},{"title":"getStatus()","sidebarTitle":"getStatus","href":"/assistant/api/get-status"},{"title":"getTemplates()","sidebarTitle":"getTemplates","href":"/assistant/api/get-templates"},{"title":"showDeviceLinkQR()","sidebarTitle":"showDeviceLinkQR","href":"/assistant/api/show-device-link-qr"},{"title":"configure() (Deprecated)","sidebarTitle":"configure (Deprecated)","href":"/assistant/api/configure"}]},{"group":"Interaction","pages":[{"title":"createInteraction()","sidebarTitle":"createInteraction","href":"/assistant/api/create-interaction"},{"title":"setInteractionOptions()","sidebarTitle":"setInteractionOptions","href":"/assistant/api/set-interaction-options"},{"title":"addFacts()","sidebarTitle":"addFacts","href":"/assistant/api/add-facts"},{"title":"startRecording()","sidebarTitle":"startRecording","href":"/assistant/api/start-recording"},{"title":"stopRecording()","sidebarTitle":"stopRecording","href":"/assistant/api/stop-recording"},{"title":"configureSession() (Deprecated)","sidebarTitle":"configureSession (Deprecated)","href":"/assistant/api/configure-session"}]}]},{"group":"Events","icon":"bolt","pages":[{"title":"Corti Assistant Events Overview","href":"/assistant/events/index"},{"group":"Event Reference","pages":[{"group":"Account","pages":[{"title":"account.creditsConsumed","href":"/assistant/events/generated/account/creditsConsumed"},{"title":"account.loggedIn","href":"/assistant/events/generated/account/loggedIn"},{"title":"account.loggedOut","href":"/assistant/events/generated/account/loggedOut"}]},{"group":"AI Chat","pages":[{"title":"chat.answerCopied","href":"/assistant/events/generated/ai-chat/answerCopied"},{"title":"chat.asked","href":"/assistant/events/generated/ai-chat/asked"},{"title":"chat.dictationStarted","href":"/assistant/events/generated/ai-chat/dictationStarted"},{"title":"chat.dictationStopped","href":"/assistant/events/generated/ai-chat/dictationStopped"},{"title":"chat.failed","href":"/assistant/events/generated/ai-chat/failed"}]},{"group":"Document","pages":[{"title":"document.copied","href":"/assistant/events/generated/document/copied"},{"title":"document.dictationStarted","href":"/assistant/events/generated/document/dictationStarted"},{"title":"document.dictationStopped","href":"/assistant/events/generated/document/dictationStopped"},{"title":"document.edited","href":"/assistant/events/generated/document/edited"},{"title":"document.feedbackSubmitted","href":"/assistant/events/generated/document/feedbackSubmitted"},{"title":"document.generated","href":"/assistant/events/generated/document/generated"},{"title":"document.generationFailed","href":"/assistant/events/generated/document/generationFailed"},{"title":"document.sectionCopied","href":"/assistant/events/generated/document/sectionCopied"},{"title":"document.synced","href":"/assistant/events/generated/document/synced"},{"title":"document.updated","href":"/assistant/events/generated/document/updated"}]},{"group":"Embedded API","pages":[{"title":"embedded.appConfigured","href":"/assistant/events/generated/embedded-api/appConfigured"},{"title":"embedded.authenticated","href":"/assistant/events/generated/embedded-api/authenticated"},{"title":"embedded.credentialsUpdated","href":"/assistant/events/generated/embedded-api/credentialsUpdated"},{"title":"embedded.deprecationWarning","href":"/assistant/events/generated/embedded-api/deprecationWarning"},{"title":"embedded.factsAdded","href":"/assistant/events/generated/embedded-api/factsAdded"},{"title":"embedded.interactionCreated","href":"/assistant/events/generated/embedded-api/interactionCreated"},{"title":"embedded.interactionOptionsSet","href":"/assistant/events/generated/embedded-api/interactionOptionsSet"},{"title":"embedded.interactionOptionsWarning","href":"/assistant/events/generated/embedded-api/interactionOptionsWarning"},{"title":"embedded.navigated","href":"/assistant/events/generated/embedded-api/navigated"},{"title":"embedded.ready","href":"/assistant/events/generated/embedded-api/ready"},{"title":"embedded.recordingStarted","href":"/assistant/events/generated/embedded-api/recordingStarted"},{"title":"embedded.recordingStopped","href":"/assistant/events/generated/embedded-api/recordingStopped"},{"title":"embedded.sessionConfigured","href":"/assistant/events/generated/embedded-api/sessionConfigured"},{"title":"embedded.statusReturned","href":"/assistant/events/generated/embedded-api/statusReturned"},{"title":"embedded.templatesReturned","href":"/assistant/events/generated/embedded-api/templatesReturned"}]},{"group":"Errors","pages":[{"title":"error.featureFlagDiscrepancyDetected","href":"/assistant/events/generated/errors/featureFlagDiscrepancyDetected"},{"title":"error.triggered","href":"/assistant/events/generated/errors/triggered"}]},{"group":"Interaction","pages":[{"title":"interaction.archived","href":"/assistant/events/generated/interaction/archived"},{"title":"interaction.created","href":"/assistant/events/generated/interaction/created"},{"title":"interaction.deleted","href":"/assistant/events/generated/interaction/deleted"},{"title":"interaction.loaded","href":"/assistant/events/generated/interaction/loaded"},{"title":"interaction.renamed","href":"/assistant/events/generated/interaction/renamed"},{"title":"interaction.restored","href":"/assistant/events/generated/interaction/restored"},{"title":"interaction.virtualAudioDisconnected","href":"/assistant/events/generated/interaction/virtualAudioDisconnected"}]},{"group":"Microphone","pages":[{"title":"microphone.ambientSet","href":"/assistant/events/generated/microphone/ambientSet"},{"title":"microphone.dictationSet","href":"/assistant/events/generated/microphone/dictationSet"},{"title":"microphone.qualityLearnMoreClicked","href":"/assistant/events/generated/microphone/qualityLearnMoreClicked"},{"title":"microphone.qualityOnboardingDismissed","href":"/assistant/events/generated/microphone/qualityOnboardingDismissed"},{"title":"microphone.qualityOnboardingShown","href":"/assistant/events/generated/microphone/qualityOnboardingShown"},{"title":"microphone.selected","href":"/assistant/events/generated/microphone/selected"},{"title":"microphone.selectorOpened","href":"/assistant/events/generated/microphone/selectorOpened"},{"title":"microphone.warningTriggered","href":"/assistant/events/generated/microphone/warningTriggered"}]},{"group":"Note","pages":[{"title":"note.added","href":"/assistant/events/generated/note/added"},{"title":"note.dictationStarted","href":"/assistant/events/generated/note/dictationStarted"},{"title":"note.dictationStopped","href":"/assistant/events/generated/note/dictationStopped"},{"title":"note.discarded","href":"/assistant/events/generated/note/discarded"},{"title":"note.edited","href":"/assistant/events/generated/note/edited"},{"title":"note.generated","href":"/assistant/events/generated/note/generated"},{"title":"note.moved","href":"/assistant/events/generated/note/moved"},{"title":"note.restored","href":"/assistant/events/generated/note/restored"}]},{"group":"Onboarding And Preferences","pages":[{"title":"settings.onboardingCompleted","href":"/assistant/events/generated/onboarding-and-preferences/onboardingCompleted"},{"title":"settings.onboardingContinued","href":"/assistant/events/generated/onboarding-and-preferences/onboardingContinued"},{"title":"settings.onboardingStarted","href":"/assistant/events/generated/onboarding-and-preferences/onboardingStarted"},{"title":"settings.onboardingValueChanged","href":"/assistant/events/generated/onboarding-and-preferences/onboardingValueChanged"},{"title":"settings.pwaInstalled","href":"/assistant/events/generated/onboarding-and-preferences/pwaInstalled"},{"title":"settings.reset","href":"/assistant/events/generated/onboarding-and-preferences/reset"},{"title":"settings.userSettingsValueChanged","href":"/assistant/events/generated/onboarding-and-preferences/userSettingsValueChanged"}]},{"group":"Recording","pages":[{"title":"recording.audioHealthAlertDismissed","href":"/assistant/events/generated/recording/audioHealthAlertDismissed"},{"title":"recording.audioHealthAlertRecovered","href":"/assistant/events/generated/recording/audioHealthAlertRecovered"},{"title":"recording.audioHealthAlertTriggered","href":"/assistant/events/generated/recording/audioHealthAlertTriggered"},{"title":"recording.languageChanged","href":"/assistant/events/generated/recording/languageChanged"},{"title":"recording.modeChanged","href":"/assistant/events/generated/recording/modeChanged"},{"title":"recording.started","href":"/assistant/events/generated/recording/started"},{"title":"recording.stopped","href":"/assistant/events/generated/recording/stopped"},{"title":"recording.transcriptReceived","href":"/assistant/events/generated/recording/transcriptReceived"}]},{"group":"Templates","pages":[{"title":"template.copied","href":"/assistant/events/generated/templates/copied"},{"title":"template.created","href":"/assistant/events/generated/templates/created"},{"title":"template.defaultTemplateUpdated","href":"/assistant/events/generated/templates/defaultTemplateUpdated"},{"title":"template.deleteConfirmationDismissed","href":"/assistant/events/generated/templates/deleteConfirmationDismissed"},{"title":"template.deleteConfirmationOpened","href":"/assistant/events/generated/templates/deleteConfirmationOpened"},{"title":"template.deleted","href":"/assistant/events/generated/templates/deleted"},{"title":"template.metadataEditDismissed","href":"/assistant/events/generated/templates/metadataEditDismissed"},{"title":"template.metadataEditOpened","href":"/assistant/events/generated/templates/metadataEditOpened"},{"title":"template.metadataUpdated","href":"/assistant/events/generated/templates/metadataUpdated"},{"title":"template.pickerOpened","href":"/assistant/events/generated/templates/pickerOpened"},{"title":"template.selected","href":"/assistant/events/generated/templates/selected"}]}]}]}]}]},{"tab":"API Reference","icon":"square-code","pages":[{"title":"API Reference","href":"/api-reference/welcome"}]}]},"basePath":"","title":"Recipe 7 — The full stack: own canonical + customer inheritance + end-user runtime override - Corti API Documentation","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["10e4515597"],"chunks":["BannerMarkdown-DcUtcwZ_.js","dist-CJ9Oly2E.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C5EfhVm0.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}