Learn about best practices for building effective dictation commands
A key functionality that brings an application from speech to text to a complete dictation solution is Commands. Put your users in the driver seat to control their workflow by defining commands to insert templates, navigate the application, automate repetitive tasks, and more!
Commands detected by the server are sent to the client in a separate message type than transcripts, and include the following details:
Unique identifier for the recognized command.
Variable(s) recognized with the command.
Raw transcript text and time segments for the recognized command.
Click here to view command response message details.Click here for a library of commands ready for use.
Below are some recommendations, tips, and tricks for building commands that are effective and reliable:
Best practice
Good Example
Bad Example
1
Use an action verb as the first word in your command phrase because users are telling the computer to do something
”go to assessment section"
"assessment”
2
Don’t make command phrases too long or too complex so that users can remember them and say them in one concise utterance
”insert normal exam male"
"insert physical exam for male with history of diabetes”
3
Make sure to not create command phrases with content that also needs to be recognized dictation text
”pull latest vitals"
"vital signs”
4
Be mindful of including articles, extraneous terms, and filler words in your command phrases as the command will only be recognized when the defined phrase is matched in full
”insert normal exam"
"insert the normal exam”
5
Use the variables feature to support having alternative methods to execute a single command
Be sure to test your commands!Dictate command phrases to make sure they are recognized reliably, and use the recognized text as phrases to be recognized for the command.
Configured commands must have unique values for id
2
Each command should have unique phrases to prevent conflicts
3
Add timeouts, error handling, and command execution logging so that a command does not run indefinitely when there are errors executing the action following command recognition
4
Consider which commands should be standardized across all users of the application or opened for custom user configuration
Get creative!Most applications follow linear flows to click through from one place to another, but speech-enabling the application with commands opens a world of opportunity for supporting more dynamic navigation through the workflow.
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":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6e1e39b8f20269efa16b4","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"Healthcare","count":226},{"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":"custom-rbac-roles","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":"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":"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":"editor-metadata","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":"llms-txt-v2","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":"stt/best-practices-commands","slug":"/stt/best-practices-commands","pageMetadata":{"title":"Commands Tips and Examples","sidebarTitle":"Dictation Commands","description":"Learn about best practices for building effective dictation commands","href":"/stt/best-practices-commands"},"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: \"Learn about best practices for building effective dictation commands\"\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`,hr:`hr`,li:`li`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A key functionality that brings an application from speech to text to a complete dictation solution is Commands. Put your users in the driver seat to control their workflow by defining commands to insert templates, navigate the application, automate repetitive tasks, and more!`}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:`Commands detected by the server are sent to the client in a separate message type than transcripts, and include the following details:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Unique identifier for the recognized command.`}),`\n`,_jsx(_components.li,{children:`Variable(s) recognized with the command.`}),`\n`,_jsx(_components.li,{children:`Raw transcript text and time segments for the recognized command.`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api-reference/transcribe#commands`,children:`Click here`}),` to view command response message details.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://github.com/corticph/corti-examples/tree/main/dictation/commands`,children:`Click here`}),` for a library of commands ready for use.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`building-an-effective-command`,children:`Building an effective command`}),`\n`,_jsx(_components.p,{children:`Below are some recommendations, tips, and tricks for building commands that are effective and reliable:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{style:{textAlign:`left`},children:`Best practice`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Good Example`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Bad Example`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`1`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Use an action verb as the first word in your command phrase because users are telling the computer to do something`}),_jsx(_components.td,{style:{textAlign:`left`},children:`”go to assessment section\"`}),_jsx(_components.td,{style:{textAlign:`left`},children:`\"assessment”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Don’t make command phrases too long or too complex so that users can remember them and say them in one concise utterance`}),_jsx(_components.td,{style:{textAlign:`left`},children:`”insert normal exam male\"`}),_jsx(_components.td,{style:{textAlign:`left`},children:`\"insert physical exam for male with history of diabetes”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Make sure to not create command phrases with content that also needs to be recognized dictation text`}),_jsx(_components.td,{style:{textAlign:`left`},children:`”pull latest vitals\"`}),_jsx(_components.td,{style:{textAlign:`left`},children:`\"vital signs”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`4`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Be mindful of including articles, extraneous terms, and filler words in your command phrases as the command will only be recognized when the defined phrase is matched in full`}),_jsx(_components.td,{style:{textAlign:`left`},children:`”insert normal exam\"`}),_jsx(_components.td,{style:{textAlign:`left`},children:`\"insert the normal exam”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`5`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Use the variables feature to support having alternative methods to execute a single command`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/stt/commands#delete-text`,children:_jsx(_components.code,{children:`delete text`})})}),_jsx(_components.td,{style:{textAlign:`left`}})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`6`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Use the variables feature to support having a single command support many actions`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/stt/commands#navigation`,children:_jsx(_components.code,{children:`navigation`})})}),_jsx(_components.td,{style:{textAlign:`left`}})]})]})]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`Be sure to test your commands!`}),_jsx(_components.p,{children:`Dictate command phrases to make sure they are recognized reliably, and use the recognized text as phrases to be recognized for the command.`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`client-handling-of-detected-commands`,children:`Client handling of detected commands`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{style:{textAlign:`left`},children:`Best practice`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`1`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Configured commands must have unique values for `,_jsx(_components.code,{children:`id`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Each command should have unique `,_jsx(_components.code,{children:`phrases`}),` to prevent conflicts`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Add timeouts, error handling, and command execution logging so that a command does not run indefinitely when there are errors executing the action following command recognition`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`4`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Consider which commands should be standardized across all users of the application or opened for custom user configuration`})]})]})]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`Get creative!`}),_jsx(_components.p,{children:`Most applications follow linear flows to click through from one place to another, but speech-enabling the application with commands opens a world of opportunity for supporting more dynamic navigation through the workflow.`})]})]})}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":"Commands Tips and Examples","sidebarTitle":"Dictation Commands","description":"Learn about best practices for building effective dictation commands","href":"/stt/best-practices-commands"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Building an effective command","slug":"building-an-effective-command","depth":2,"children":[]},{"title":"Client handling of detected commands","slug":"client-handling-of-detected-commands","depth":2,"children":[]}],"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":"Commands Tips and Examples - Corti API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T14:19:45.544Z","originalFileLocation":"stt/best-practices-commands.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=\"Learn about best practices for building effective dictation commands\">\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=\"Commands Tips and Examples - Corti API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn about best practices for building effective dictation commands\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Corti API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.corti.ai/stt/best-practices-commands\">\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=Best+Practices\u0026amp;title=Commands+Tips+and+Examples\u0026amp;description=Learn+about+best+practices+for+building+effective+dictation+commands\u0026amp;theme=f2ff4eac94d47d8fe457bb02\u0026amp;signature=c31ca3b49a625e4fc6d6d2adb9f9d356c8ed439689e270deb03af77d3ab0cddd\">\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=\"Commands Tips and Examples - Corti API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn about best practices for building effective dictation commands\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://corti.mintlify.site/_mintlify/api/og/v2?division=Best+Practices\u0026amp;title=Commands+Tips+and+Examples\u0026amp;description=Learn+about+best+practices+for+building+effective+dictation+commands\u0026amp;theme=f2ff4eac94d47d8fe457bb02\u0026amp;signature=c31ca3b49a625e4fc6d6d2adb9f9d356c8ed439689e270deb03af77d3ab0cddd\">\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/stt/best-practices-commands\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/stt/best-practices-commands.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/stt/best-practices-commands#webpage\",\"url\":\"https://docs.corti.ai/stt/best-practices-commands\",\"name\":\"Commands Tips and Examples\",\"description\":\"Learn about best practices for building effective dictation commands\",\"dateModified\":\"2026-11-12T14:19:45.544Z\",\"isPartOf\":{\"@id\":\"https://docs.corti.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.corti.ai/stt/best-practices-commands#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.corti.ai/stt/best-practices-commands#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Best Practices\",\"item\":\"https://docs.corti.ai/stt/best-practices-recording\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Commands Tips and Examples\",\"item\":\"https://docs.corti.ai/stt/best-practices-commands\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.corti.ai/stt/best-practices-commands#article\",\"headline\":\"Commands Tips and Examples\",\"name\":\"Commands Tips and Examples\",\"description\":\"Learn about best practices for building effective dictation commands\",\"url\":\"https://docs.corti.ai/stt/best-practices-commands\",\"mainEntityOfPage\":{\"@id\":\"https://docs.corti.ai/stt/best-practices-commands#webpage\"},\"dateModified\":\"2026-11-12T14:19:45.544Z\",\"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\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Corti API Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/stt/best-practices-commands.md","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":"Overview of Corti Speech to Text","sidebarTitle":"Overview","mode":"wide","href":"/stt/overview"},{"title":"Quickstart - Real-Time Stateless Dictation","sidebarTitle":"Dictation quickstart","mode":"wide","href":"/quickstart/dictation"},{"title":"Quickstart - Transcription","sidebarTitle":"Transcription quickstart","href":"/quickstart/transcription"},{"group":"Endpoints","icon":"code","pages":[{"title":"Transcribe endpoint","sidebarTitle":"Transcribe","href":"/stt/transcribe"},{"title":"Streams endpoint","sidebarTitle":"Streams","href":"/stt/streams"},{"title":"Recordings and Transcripts","sidebarTitle":"Transcripts","href":"/stt/transcripts"}]},{"group":"Features","icon":"sliders-horizontal","pages":[{"title":"Audio Format","href":"/stt/audio"},{"title":"Languages","href":"/stt/languages"},{"title":"Interim Results","href":"/stt/interim-results"},{"title":"Punctuation","tag":"Updated","href":"/stt/punctuation"},{"title":"Commands","tag":"Updated","href":"/stt/commands"},{"title":"Formatting","tag":"Updated","href":"/stt/formatting"},{"title":"Diarization","href":"/stt/diarization"},{"title":"Audio Events","href":"/stt/audio-events"},{"title":"Replacement Rules","sidebarTitle":"Replacements","href":"/stt/replacements"},{"title":"Custom Dictionary Keyterms","sidebarTitle":"Keyterms","href":"/stt/keyterms"}]},{"group":"Best Practices","icon":"star","pages":[{"title":"Audio Recording","href":"/stt/best-practices-recording"},{"title":"Audio Configuration","href":"/stt/best-practices-audio"},{"title":"WebSocket Secure Connection Management","sidebarTitle":"WebSocket Connections","href":"/stt/best-practices-wss"},{"title":"Transcript Text Handling","href":"/stt/best-practices-transcribe"},{"title":"Interim \u0026 final result handling","description":"Learn best practices for displaying interim previews and committing final transcript results","href":"/stt/best-practices-interim-handling"},{"title":"Commands Tips and Examples","sidebarTitle":"Dictation Commands","href":"/stt/best-practices-commands"},{"title":"Diarized Transcript Handling","sidebarTitle":"Diarized Transcripts","description":"Best practices for ordering and rendering speaker-separated transcripts from /streams","href":"/stt/best-practices-diarized-transcripts"},{"title":"AI Scribing","href":"/stt/best-practices-ai-scribing"}]},{"group":"Guides","icon":"navigation","tag":"New","pages":[{"title":"Speech to Text implementation guides","sidebarTitle":"Overview","href":"/stt/guides/overview"},{"group":"Speech to text basics","pages":[{"title":"Capture microphone audio with the SDK","sidebarTitle":"Microphone","href":"/stt/guides/dictation-microphone"},{"title":"Insert transcripts into your editor","sidebarTitle":"Text insertion","href":"/stt/guides/dictation-text-insertion"},{"title":"Apply text replacements","sidebarTitle":"Replacements","href":"/stt/guides/dictation-replacements"},{"title":"Bias recognition with keyterms","sidebarTitle":"Keyterms","href":"/stt/guides/dictation-keyterms"},{"title":"Execute voice commands","sidebarTitle":"Commands","href":"/stt/guides/dictation-commands"},{"title":"Control your application by voice","sidebarTitle":"App control","href":"/stt/guides/dictation-app-control"},{"title":"Build a dictation box","sidebarTitle":"Dictation box","href":"/stt/guides/dictation-dictation-box"},{"title":"Map device buttons","sidebarTitle":"Device buttons","href":"/stt/guides/dictation-device-buttons"},{"title":"Audio archive","sidebarTitle":"Audio archive","href":"/stt/guides/dictation-audio-archive"},{"title":"File transcription","sidebarTitle":"File transcription","href":"/stt/guides/dictation-file-transcription"},{"title":"Use word-level transcripts","sidebarTitle":"Word-level transcripts","href":"/stt/guides/wordlevel"},{"title":"Handle diarized transcripts","sidebarTitle":"Diarized transcripts","href":"/stt/guides/diarized-transcripts"}]},{"group":"Agent-powered speech to text","pages":[{"title":"Run an agent on demand","sidebarTitle":"On-demand agent","href":"/stt/guides/agent-on-demand"},{"title":"Add an agent second pass","sidebarTitle":"Second-pass agent","href":"/stt/guides/agent-second-pass"},{"title":"Build a wake-command agent","sidebarTitle":"Wake-command agent","tag":"Beta","href":"/stt/guides/agent-wake-command"},{"title":"Build a conversational agent","sidebarTitle":"Conversational agent","tag":"Beta","href":"/stt/guides/agent-conversational"},{"title":"Add text to speech to your conversational agent","sidebarTitle":"Text to speech agent","tag":"Beta","href":"/stt/guides/agent-tts-integration"}]},{"title":"Smart punctuation integration guide","sidebarTitle":"Smart punctuation guide","href":"/stt/guides/smart-punctuation"},{"title":"Dictation migration guide","href":"/stt/guides/dictation-migration"}]},{"group":"Resources","icon":"flag","pages":[{"title":"Recommended Microphone Devices","sidebarTitle":"Recommended Microphones","href":"/stt/microphones"},{"title":"Evaluate Speech-to-Text Performance with Tympany","sidebarTitle":"Performance Evaluation","href":"/stt/evaluations"},{"title":"Dictation Web Component","href":"/stt/dictation-web"},{"title":"Known Issues","mode":"wide","href":"/stt/known-issues"},{"title":"Submit Feedback","mode":"wide","href":"/stt/feedback"}]}]},{"tab":"Healthcare","icon":"heart-pulse","pages":[{"title":"Healthcare","href":"/healthcare"}]},{"tab":"API Reference","icon":"square-code","pages":[{"title":"API Reference","href":"/api-reference/welcome"}]}]},"basePath":"","title":"Commands Tips and Examples - Corti API Documentation","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["10e4515597"],"chunks":["BannerMarkdown-D7Q3g8OM.js","dist-BvrGG8gU.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-B35qUV0p.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}