{ "id": "<string>", "name": "<string>", "status": "enabled", "trigger": "The customer asks for a refund", "unavailableActions": [ "@refund_payment" ], "steps": [ { "kind": "instruction", "text": "Ask for the order number, then call @get_order" } ]}
Procedures
Update a procedure
Updates a procedure’s name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.
PATCH
/
agents
/
{agentId}
/
procedures
/
{procedureId}
Update a procedure
curl --request PATCH \ --url https://www.chatbase.co/api/v2/agents/{agentId}/procedures/{procedureId} \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "Refund request", "trigger": "The customer wants their money back", "steps": [ { "kind": "instruction", "text": "Ask for the order number, then call @get_order" } ]}'
import requests
url = "https://www.chatbase.co/api/v2/agents/{agentId}/procedures/{procedureId}"
payload = {
"name": "Refund request",
"trigger": "The customer wants their money back",
"steps": [
{
"kind": "instruction",
"text": "Ask for the order number, then call @get_order"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Refund request',
trigger: 'The customer wants their money back',
steps: [{kind: 'instruction', text: 'Ask for the order number, then call @get_order'}]
})
};
fetch('https://www.chatbase.co/api/v2/agents/{agentId}/procedures/{procedureId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{ "id": "<string>", "name": "<string>", "status": "enabled", "trigger": "The customer asks for a refund", "unavailableActions": [ "@refund_payment" ], "steps": [ { "kind": "instruction", "text": "Ask for the order number, then call @get_order" } ]}
Replaces all steps, so send the full list in order, including unchanged steps. An instruction step is one line; in it @ plus an action name in lowercase, with - written as _, mentions that action (Order-Issue becomes @order_issue), and {{variable}} inserts one of the agent's variables. A branch step runs the instructions of its first matching condition (1 to 5), or else otherwise; a branch cannot contain another branch. Up to 15 instruction steps in total, counting those inside branches.
Action mentions in the steps, such as @refund_payment, whose action is missing or disabled. While any is listed, the agent skips the procedure. It also skips the procedure on a channel where a mentioned action is switched off.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Chatbase","colors":{"primary":"#18181b","light":"#f4f4f5","dark":"#18181b"},"logo":{"light":"https://mintcdn.com/chatbase/pJU9vM3D9oN_YQME/logo/light.svg?fit=max\u0026auto=format\u0026n=pJU9vM3D9oN_YQME\u0026q=85\u0026s=a45a73af7ac778cd0920dbb6ad1aaa93","dark":"https://mintcdn.com/chatbase/8k6_6eFSz4sj8EO0/logo/dark.svg?fit=max\u0026auto=format\u0026n=8k6_6eFSz4sj8EO0\u0026q=85\u0026s=c0c106d2f92f6a87f872a2be66706041","href":"https://chatbase.co"},"favicon":"https://mintcdn.com/chatbase/NsUPSmNqecm03uiz/favicon.ico?fit=max\u0026auto=format\u0026n=NsUPSmNqecm03uiz\u0026q=85\u0026s=b37388fc54cd76cfaf3efcb8ab4a4dc8","appearance":{},"navbar":{"links":[{"href":"https://chatbase.co/help","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://www.chatbase.co/dashboard"}},"footer":{"socials":{"x":"https://x.com/chatbase_co","linkedin":"https://linkedin.com/company/chatbase-co","youtube":"https://www.youtube.com/@chatbase_"}},"seo":{"metatags":{"canonical":"https://www.chatbase.co/docs"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chatbase","hasAudioNarration":false,"actualSubdomain":"chatbase","customDomains":["chatbase.co"],"gitSource":{"type":"github","owner":"chatbase-co","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5c8266aaba2f8a1d52e0c","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"User Guide","count":108},{"language":"default","tag":"API Reference","count":91},{"language":"default","tag":"Endpoints","count":77},{"language":"default","tag":"API v2","count":70},{"language":"default","tag":"Helpdesk","count":39},{"language":"default","tag":"Integrations","count":35},{"language":"default","tag":"Developer Guide","count":32},{"language":"default","tag":"AI Agent Management","count":32},{"language":"default","tag":"SDKs","count":26},{"language":"default","tag":"Actions","count":22}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"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":"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":"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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".nav-dropdown-trigger{border-color:transparent!important;border-bottom-color:rgb(var(--gray-500) / 0.2)!important;border-radius:0!important;padding:0.5rem 0.875rem 0.875rem 1rem!important}.nav-dropdown-trigger .nav-dropdown-item-icon{display:none!important}.nav-dropdown-trigger .nav-dropdown-item-text-container{padding-left:0!important}.nav-dropdown-trigger .nav-dropdown-item-title{font-weight:600!important}.nav-dropdown-item-title::after{display:inline-block;margin-left:0.5rem;padding:0.125rem 0.5rem;border-radius:0.375rem;font-size:0.7rem;font-weight:600;line-height:1.2;vertical-align:middle}:is(.nav-dropdown-trigger,.nav-dropdown-item):has([style*=\"/code.svg\"]) .nav-dropdown-item-title::after{content:\"Current\";color:rgb(22 163 74);background:rgb(22 163 74 / 0.12)}:is(.nav-dropdown-trigger,.nav-dropdown-item):has([style*=\"/box-archive.svg\"]) .nav-dropdown-item-title::after{content:\"Deprecated\";color:rgb(217 119 6);background:rgb(217 119 6 / 0.12)}"}],"page":{"pagePath":"api-reference/v2/procedures/update-a-procedure","slug":"/api-reference/v2/procedures/update-a-procedure","pageMetadata":{"title":"Update a procedure","description":"Updates a procedure's name, trigger, steps or status. Properties you leave out keep their value, but `steps` replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/procedures/{procedureId}","href":"/api-reference/v2/procedures/update-a-procedure","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Updates a procedure’s name, trigger, steps or status. Properties you leave out keep their value, but \", _jsx(_components.code, {\n children: \"steps\"\n }), \" replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a procedure","description":"Updates a procedure's name, trigger, steps or status. Properties you leave out keep their value, but `steps` replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/procedures/{procedureId}","href":"/api-reference/v2/procedures/update-a-procedure","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateProcedure","x-mcp":{"tool":"chatbase_update_procedure","scopes":["actions:write"],"annotations":{"idempotent":true}},"tags":["Procedures"],"summary":"Update a procedure","description":"Updates a procedure's name, trigger, steps or status. Properties you leave out keep their value, but `steps` replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.","security":["77d173ab-9570-4a8d-806a-fbaad7532753"],"parameters":["6a9dcbc0-54fe-4bdb-86e5-30bdb5699207","1ce549f5-8d4b-4ea9-ad30-c8d29637600c"],"requestBody":"c62db000-981b-4f88-aec4-806c49f204f3","responses":{"200":"b639d814-b4c9-48fb-a832-db94b3be75fe","400":"3b990968-6da7-4168-bad5-16fcb6d66270","401":"be4289ad-df6f-49bc-a54b-550e09af41c0","403":"8506d318-c788-42dc-811b-7e0b87e7a1c8","404":"8d8bd4cb-982f-427c-b12e-d68a8e513383","409":"ec1f0223-cf4a-4432-bca5-02206dc3d84c","429":"a29d7ed1-037a-481f-9fab-59d680ee9b11","500":"aec091c5-8f0a-4c96-823a-0819d5e17b54","503":"962b0181-00dd-4e24-8320-4f709180d42f"},"method":"patch","type":"path","servers":["b0a3ba49-9ed2-47ec-8a73-36f7fc096e40"],"path":"/agents/{agentId}/procedures/{procedureId}","baseUrlOptions":["https://www.chatbase.co/api/v2"],"title":"Update a procedure","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"6a9dcbc0-54fe-4bdb-86e5-30bdb5699207":{"schema":{"type":"string","minLength":1,"description":"The agent ID","example":"5QHA6VB-DIAbBhxwqxfdi","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"The agent ID","name":"agentId","in":"path"},"1ce549f5-8d4b-4ea9-ad30-c8d29637600c":{"schema":{"type":"string","format":"uuid","description":"The procedure ID","example":"b1d47c2e-5a3f-4e8b-9c1d-2f6a7b8c9d0e","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"The procedure ID","name":"procedureId","in":"path"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[^\\n\\r]+$","description":"New name: 1 to 100 characters, no line breaks, unique within the agent","example":"Refund request","uniqueKey":"name","typeLabel":"string"},"trigger":{"type":"string","minLength":1,"maxLength":500,"description":"When the agent should start the procedure, up to 500 characters","example":"The customer wants their money back","uniqueKey":"trigger","typeLabel":"string"},"steps":{"type":"array","items":{"oneOf":[{"type":"object","required":["kind","text"],"properties":{"kind":{"type":"string","enum":["instruction"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"text":{"type":"string","minLength":1,"maxLength":1000,"pattern":"^[^\\n\\r]*$","description":"What the agent does, on one line. `@` plus an action name in lowercase, with `-` written as `_`, mentions that action; `{{variable}}` inserts a variable.","example":"Ask for the order number, then call @get_order","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.text","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","branches"],"properties":{"kind":{"type":"string","enum":["branch"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.kind","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"condition":{"type":"string","minLength":1,"maxLength":500,"pattern":"^[^\\n\\r]*$","description":"When this branch runs","example":"The order is older than 30 days","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].condition","typeLabel":"string"},"steps":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["instruction"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].steps.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"text":{"type":"string","minLength":1,"maxLength":1000,"pattern":"^[^\\n\\r]*$","description":"What the agent does, on one line. `@` plus an action name in lowercase, with `-` written as `_`, mentions that action; `{{variable}}` inserts a variable.","example":"Ask for the order number, then call @get_order","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].steps.items.[INDEX].text","typeLabel":"string"}},"required":["kind","text"],"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].steps.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].steps","typeLabel":"object[]"}},"required":["condition","steps"],"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":5,"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches","typeLabel":"object[]"},"otherwise":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["instruction"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise.steps.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"text":{"type":"string","minLength":1,"maxLength":1000,"pattern":"^[^\\n\\r]*$","description":"What the agent does, on one line. `@` plus an action name in lowercase, with `-` written as `_`, mentions that action; `{{variable}}` inserts a variable.","example":"Ask for the order number, then call @get_order","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise.steps.items.[INDEX].text","typeLabel":"string"}},"required":["kind","text"],"uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise.steps.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise.steps","typeLabel":"object[]"}},"required":["steps"],"description":"Runs when no condition matches","uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise","typeLabel":"object"}},"uniqueKey":"steps.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Replaces all steps, so send the full list in order, including unchanged steps. An `instruction` step is one line; in it `@` plus an action name in lowercase, with `-` written as `_`, mentions that action (`Order-Issue` becomes `@order_issue`), and `{{variable}}` inserts one of the agent's variables. A `branch` step runs the instructions of its first matching condition (1 to 5), or else `otherwise`; a branch cannot contain another branch. Up to 15 instruction steps in total, counting those inside branches.","uniqueKey":"steps","typeLabel":"object[]"},"status":{"type":"string","enum":["enabled","disabled"],"description":"Turns the procedure on or off","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"Refund request","trigger":"The customer wants their money back","steps":[{"kind":"instruction","text":"Ask for the order number, then call @get_order"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b639d814-b4c9-48fb-a832-db94b3be75fe":{"description":"The updated procedure","content":{"application/json":{"schema":{"type":"object","required":["steps","id","name","status","trigger","unavailableActions"],"properties":{"id":{"type":"string","description":"Procedure ID","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","description":"Procedure name, unique within the agent","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"status":{"type":"string","enum":["enabled","disabled"],"description":"Whether the agent can run the procedure.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"trigger":{"type":"string","description":"When the agent should start the procedure","example":"The customer asks for a refund","isRequired":true,"uniqueKey":"trigger","typeLabel":"string"},"unavailableActions":{"type":"array","items":{"type":"string","uniqueKey":"unavailableActions.items.[INDEX]","typeLabel":"string"},"description":"Action mentions in the steps, such as `@refund_payment`, whose action is missing or disabled. While any is listed, the agent skips the procedure. It also skips the procedure on a channel where a mentioned action is switched off.","example":["@refund_payment"],"isRequired":true,"uniqueKey":"unavailableActions","typeLabel":"string[]"},"steps":{"type":"array","items":{"oneOf":[{"type":"object","required":["kind","text"],"properties":{"kind":{"type":"string","enum":["instruction"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"What the agent does. `@` plus an action name in lowercase, with `-` written as `_`, mentions that action.","example":"Ask for the order number, then call @get_order","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.0.text","typeLabel":"string"}},"uniqueKey":"steps.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","branches"],"properties":{"kind":{"type":"string","enum":["branch"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.kind","typeLabel":"enum\u003cstring>"},"branches":{"type":"array","items":{"type":"object","properties":{"condition":{"type":"string","description":"When this branch runs","example":"The order is older than 30 days","isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].condition","typeLabel":"string"},"steps":{"type":"array","items":{"$circularRef":"2b1a432a-987e-4d72-a552-f72b191a0865"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX].steps","typeLabel":"array"}},"required":["condition","steps"],"uniqueKey":"steps.items.[INDEX].oneOf.1.branches.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.branches","typeLabel":"object[]"},"otherwise":{"type":"object","properties":{"steps":{"type":"array","items":{"$circularRef":"2b1a432a-987e-4d72-a552-f72b191a0865"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise.steps","typeLabel":"array"}},"required":["steps"],"description":"Runs when no condition matches","uniqueKey":"steps.items.[INDEX].oneOf.1.otherwise","typeLabel":"object"}},"uniqueKey":"steps.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"description":"The steps in order.","isRequired":true,"uniqueKey":"steps","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","status":"enabled","trigger":"The customer asks for a refund","unavailableActions":["@refund_payment"],"steps":[{"kind":"instruction","text":"Ask for the order number, then call @get_order"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"3b990968-6da7-4168-bad5-16fcb6d66270":{"description":"The request body failed schema validation. Inspect the `details` object in the error response for field-level errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"VALIDATION_INVALID_BODY","message":"Invalid request"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_INVALID_BODY","message":"Invalid request"}}}},"exampleType":"examples"}},"exampleType":"examples"},"be4289ad-df6f-49bc-a54b-550e09af41c0":{"description":"No Authorization header present. Provide a valid API key as a Bearer token in the Authorization header: `Authorization: Bearer \u003capi-key>`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"AUTH_MISSING_API_KEY","message":"Authentication required"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"AUTH_MISSING_API_KEY","message":"Authentication required"}}}},"exampleType":"examples"}},"exampleType":"examples"},"8506d318-c788-42dc-811b-7e0b87e7a1c8":{"description":"The plan does not allow API access, or enabling the procedure would exceed its procedure limit.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"SUBSCRIPTION_API_RESTRICTED_PLAN":{"title":"SUBSCRIPTION_API_RESTRICTED_PLAN","value":{"error":{"code":"SUBSCRIPTION_API_RESTRICTED_PLAN","message":"A Basic plan or higher is required to access the API"}}},"PROCEDURE_LIMIT_REACHED":{"title":"PROCEDURE_LIMIT_REACHED","value":{"error":{"code":"PROCEDURE_LIMIT_REACHED","message":"You have reached the maximum number of enabled procedures for your plan. Disable another procedure or upgrade."}}}},"exampleType":"examples"}},"exampleType":"examples"},"8d8bd4cb-982f-427c-b12e-d68a8e513383":{"description":"No procedure matches the provided `procedureId` on this agent, or it does not belong to the authenticated account.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"PROCEDURE_NOT_FOUND","message":"Procedure not found"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"PROCEDURE_NOT_FOUND","message":"Procedure not found"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ec1f0223-cf4a-4432-bca5-02206dc3d84c":{"description":"The new name is taken, or the procedure cannot be enabled yet.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"PROCEDURE_NAME_TAKEN":{"title":"PROCEDURE_NAME_TAKEN","value":{"error":{"code":"PROCEDURE_NAME_TAKEN","message":"A procedure with this name already exists on this agent"}}},"PROCEDURE_CHANGE_NOT_ALLOWED":{"title":"PROCEDURE_CHANGE_NOT_ALLOWED","value":{"error":{"code":"PROCEDURE_CHANGE_NOT_ALLOWED","message":"This change is not allowed for this procedure"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a29d7ed1-037a-481f-9fab-59d680ee9b11":{"description":"Rate limit exceeded. Check the `X-RateLimit-Reset` response header for the Unix epoch seconds when the limit resets.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RATE_LIMIT_TOO_MANY_REQUESTS","message":"Too many requests, please try again later"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMIT_TOO_MANY_REQUESTS","message":"Too many requests, please try again later"}}}},"exampleType":"examples"}},"exampleType":"examples"},"aec091c5-8f0a-4c96-823a-0819d5e17b54":{"description":"An unhandled server error occurred. If the issue persists, contact support with the `x-request-id` response header value for debugging.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INTERNAL_SERVER_ERROR","message":"Something went wrong, please try again"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_SERVER_ERROR","message":"Something went wrong, please try again"}}}},"exampleType":"examples"}},"exampleType":"examples"},"962b0181-00dd-4e24-8320-4f709180d42f":{"description":"Chatbase is undergoing scheduled maintenance and the API is temporarily rejecting requests. This is transient; retry after a short delay. Requests are rejected before any data is read or written, so no partial changes are applied.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"description":"Field-level validation errors","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"SERVICE_UNDER_MAINTENANCE","message":"The API is temporarily unavailable for scheduled maintenance, please try again later"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"SERVICE_UNDER_MAINTENANCE","message":"The API is temporarily unavailable for scheduled maintenance, please try again later"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"77d173ab-9570-4a8d-806a-fbaad7532753":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from your account settings","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"b0a3ba49-9ed2-47ec-8a73-36f7fc096e40":{"url":"https://www.chatbase.co/api/v2","description":"Chatbase API v2"}},"schemas":{"2b1a432a-987e-4d72-a552-f72b191a0865":{"oneOf":[{"type":"object","required":["kind","text"],"properties":{"kind":{"type":"string","enum":["instruction"],"isRequired":true},"text":{"type":"string","description":"What the agent does. `@` plus an action name in lowercase, with `-` written as `_`, mentions that action.","example":"Ask for the order number, then call @get_order","isRequired":true}}},{"type":"object","required":["kind","branches"],"properties":{"kind":{"type":"string","enum":["branch"],"isRequired":true},"branches":{"type":"array","items":{"type":"object","properties":{"condition":{"type":"string","description":"When this branch runs","example":"The order is older than 30 days","isRequired":true},"steps":{"type":"array","items":{"$circularRef":"2b1a432a-987e-4d72-a552-f72b191a0865"},"isRequired":true}},"required":["condition","steps"]},"isRequired":true},"otherwise":{"type":"object","properties":{"steps":{"type":"array","items":{"$circularRef":"2b1a432a-987e-4d72-a552-f72b191a0865"},"isRequired":true}},"required":["steps"],"description":"Runs when no condition matches"}}}]}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key from your account settings","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key from your account settings","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-v2-openapi.json"},"subdomain":"chatbase","siteName":"Chatbase","title":"Update a procedure - Chatbase","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T14:07:52.781Z","originalFileLocation":"api-reference/v2/procedures/update-a-procedure.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=\"Updates a procedure\u0026#x27;s name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Chatbase\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_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=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a procedure - Chatbase\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates a procedure\u0026#x27;s name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Chatbase\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chatbase.mintlify.site/docs/_mintlify/api/og/v2?division=Procedures\u0026amp;title=Update+a+procedure\u0026amp;description=Updates+a+procedure%27s+name%2C+trigger%2C+steps+or+status.+Properties+you+leave+out+keep+their+value%2C+but+%60steps%60+replaces+all+steps.+Enabling+needs+every+action+the\u0026amp;theme=430b654938fc40910c40f1cb\u0026amp;signature=2f3842717d7208dfe12aaf902aa2c23b92bfcea4cc09ee36bb5401e6ad9be922\">\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=\"Update a procedure - Chatbase\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates a procedure\u0026#x27;s name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chatbase.mintlify.site/docs/_mintlify/api/og/v2?division=Procedures\u0026amp;title=Update+a+procedure\u0026amp;description=Updates+a+procedure%27s+name%2C+trigger%2C+steps+or+status.+Properties+you+leave+out+keep+their+value%2C+but+%60steps%60+replaces+all+steps.+Enabling+needs+every+action+the\u0026amp;theme=430b654938fc40910c40f1cb\u0026amp;signature=2f3842717d7208dfe12aaf902aa2c23b92bfcea4cc09ee36bb5401e6ad9be922\">\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=\"/docs/mintlify-assets/_mintlify/favicons/chatbase/sZYcuOsK-Dv6V9lc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Chatbase\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#18181b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/v2/procedures/update-a-procedure.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.chatbase.co/#organization\",\"name\":\"Chatbase\",\"url\":\"https://www.chatbase.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chatbase/pJU9vM3D9oN_YQME/logo/light.svg?fit=max\u0026auto=format\u0026n=pJU9vM3D9oN_YQME\u0026q=85\u0026s=a45a73af7ac778cd0920dbb6ad1aaa93\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.chatbase.co/docs#website\",\"name\":\"Chatbase\",\"url\":\"https://www.chatbase.co/docs\",\"publisher\":{\"@id\":\"https://www.chatbase.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure#webpage\",\"url\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure\",\"name\":\"Update a procedure\",\"description\":\"Updates a procedure's name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\",\"dateModified\":\"2026-11-12T14:07:52.781Z\",\"isPartOf\":{\"@id\":\"https://www.chatbase.co/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://www.chatbase.co/docs/api-reference/v2/health/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Procedures\",\"item\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/list-procedures\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a procedure\",\"item\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure#apireference\",\"headline\":\"Update a procedure\",\"name\":\"Update a procedure\",\"description\":\"Updates a procedure's name, trigger, steps or status. Properties you leave out keep their value, but steps replaces all steps. Enabling needs every action the steps mention to exist and be enabled. Changes apply to the live agent at once; publishing an older draft can undo them.\",\"url\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure\",\"mainEntityOfPage\":{\"@id\":\"https://www.chatbase.co/docs/api-reference/v2/procedures/update-a-procedure#webpage\"},\"dateModified\":\"2026-11-12T14:07:52.781Z\",\"publisher\":{\"@id\":\"https://www.chatbase.co/#organization\"},\"isPartOf\":{\"@id\":\"https://www.chatbase.co/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Chatbase\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Chatbase\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/v2/procedures/update-a-procedure.md","siteName":"Chatbase","nav":{"global":null,"tabs":[{"tab":"User Guide","pages":[{"title":"User Guide","href":"/user-guides/quick-start/introduction"}]},{"tab":"Developer Guide","pages":[{"title":"Developer Guide","href":"/developer-guides/overview"}]},{"tab":"API Reference","dropdowns":[{"dropdown":"API v2","icon":"code","groups":[{"group":"Getting Started","pages":[{"title":"API v2 Overview","sidebarTitle":"Overview","href":"/api-reference/v2/overview"},{"title":"Authentication","href":"/api-reference/v2/authentication"},{"title":"Streaming","href":"/api-reference/v2/streaming"},{"title":"Error Handling","href":"/api-reference/v2/error-handling"},{"title":"Pagination","href":"/api-reference/v2/pagination"}]},{"group":"Guides","pages":[{"title":"Agents","href":"/api-reference/v2/agents"},{"title":"User Conversations","href":"/api-reference/v2/user-conversations"},{"title":"Conversation Search","href":"/api-reference/v2/conversation-search"},{"title":"Sources","href":"/api-reference/v2/sources"},{"title":"Helpdesk","href":"/api-reference/v2/helpdesk"},{"title":"WhatsApp","href":"/api-reference/v2/whatsapp"},{"title":"Voice Sessions","href":"/api-reference/v2/voice"},{"title":"Client Actions","href":"/api-reference/v2/client-actions"}]},{"group":"Endpoints","pages":[{"group":"Health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /health","href":"/api-reference/v2/health/health-check"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents","href":"/api-reference/v2/agents/list-agents"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents","href":"/api-reference/v2/agents/create-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}","href":"/api-reference/v2/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json put /agents/{agentId}","href":"/api-reference/v2/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}","href":"/api-reference/v2/agents/delete-agent"},{"title":"Update agent styles","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json put /agents/{agentId}/styles","href":"/api-reference/v2/agents/update-agent-styles"},{"title":"Toggle auto-retrain","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json put /agents/{agentId}/auto-retrain","href":"/api-reference/v2/agents/toggle-auto-retrain"},{"title":"Clone agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/clone","href":"/api-reference/v2/agents/clone-agent"},{"title":"Train agent (deprecated)","deprecated":true,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/train","href":"/api-reference/v2/agents/train-agent-deprecated"},{"title":"Get agent analytics","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/analytics","href":"/api-reference/v2/agents/get-agent-analytics"},{"title":"Chat with an agent","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/chat","href":"/api-reference/v2/agents/chat-with-an-agent"},{"title":"Retry a message","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/conversations/{conversationId}/retry","href":"/api-reference/v2/agents/retry-a-message"},{"title":"Start a voice session","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/voice/sessions","href":"/api-reference/v2/agents/start-a-voice-session"},{"title":"Submit a tool result","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/conversations/{conversationId}/tool-result","href":"/api-reference/v2/agents/submit-a-tool-result"}]},{"group":"Conversations","pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/conversations","href":"/api-reference/v2/conversations/list-conversations"},{"title":"Export conversations","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/conversations/export","href":"/api-reference/v2/conversations/export-conversations"},{"title":"Search conversations","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/conversations/search","href":"/api-reference/v2/conversations/search-conversations"},{"title":"Get a conversation","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/conversations/{conversationId}","href":"/api-reference/v2/conversations/get-a-conversation"},{"title":"Delete conversation","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}/conversations/{conversationId}","href":"/api-reference/v2/conversations/delete-conversation"},{"title":"Update conversation status","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/conversations/{conversationId}","href":"/api-reference/v2/conversations/update-conversation-status"},{"title":"List conversation messages","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/conversations/{conversationId}/messages","href":"/api-reference/v2/conversations/list-conversation-messages"},{"title":"List conversations for a user","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/users/{userId}/conversations","href":"/api-reference/v2/conversations/list-conversations-for-a-user"},{"title":"Delete all conversations for a user","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}/users/{userId}/conversations","href":"/api-reference/v2/conversations/delete-all-conversations-for-a-user"},{"title":"Update message feedback","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedback","href":"/api-reference/v2/conversations/update-message-feedback"}]},{"group":"Collected Data","pages":[{"title":"List collected data","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/collected-data","href":"/api-reference/v2/collected-data/list-collected-data"}]},{"group":"Sources","pages":[{"title":"Get sources summary","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/sources/summary","href":"/api-reference/v2/sources/get-sources-summary"},{"title":"List sources","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/sources","href":"/api-reference/v2/sources/list-sources"},{"title":"Create source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/sources","href":"/api-reference/v2/sources/create-source"},{"title":"Get source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/sources/{sourceId}","href":"/api-reference/v2/sources/get-source"},{"title":"Update source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json put /agents/{agentId}/sources/{sourceId}","href":"/api-reference/v2/sources/update-source"},{"title":"Delete source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}/sources/{sourceId}","href":"/api-reference/v2/sources/delete-source"},{"title":"Restore source (deprecated)","deprecated":true,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/sources/{sourceId}/restore","href":"/api-reference/v2/sources/restore-source-deprecated"},{"title":"Create file source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /api/v2/agents/{agentId}/sources","href":"/api-reference/v2/sources/create-file-source"},{"title":"Update file source","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json put /api/v2/agents/{agentId}/sources/{sourceId}","href":"/api-reference/v2/sources/update-file-source"}]},{"group":"Actions","pages":[{"title":"List actions","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/actions","href":"/api-reference/v2/actions/list-actions"},{"title":"Get an action","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/actions/{actionId}","href":"/api-reference/v2/actions/get-an-action"},{"title":"Delete an action","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}/actions/{actionId}","href":"/api-reference/v2/actions/delete-an-action"},{"title":"Update an action","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/actions/{actionId}","href":"/api-reference/v2/actions/update-an-action"}]},{"group":"Procedures","pages":[{"title":"List procedures","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/procedures","href":"/api-reference/v2/procedures/list-procedures"},{"title":"Create a procedure","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/procedures","href":"/api-reference/v2/procedures/create-a-procedure"},{"title":"Get a procedure","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/procedures/{procedureId}","href":"/api-reference/v2/procedures/get-a-procedure"},{"title":"Delete a procedure","description":"Deletes a procedure from the live agent at once, together with its run history. Publishing an older draft can bring the procedure back, but not its history.","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json delete /agents/{agentId}/procedures/{procedureId}","href":"/api-reference/v2/procedures/delete-a-procedure"},{"title":"Update a procedure","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/procedures/{procedureId}","href":"/api-reference/v2/procedures/update-a-procedure"}]},{"group":"WhatsApp","pages":[{"title":"List WhatsApp templates","description":"Lists the approved WhatsApp templates available to the agent, across all of its connected WhatsApp Business Accounts. Each template's `variables` object is the shape a send request must provide. A template can only be sent from a number on its own Business Account, so pair its `wabaId` with a matching entry in `senders` to pick the `from` value. Check `complete` before treating the list as exhaustive: it is `false` when one of the agent’s Business Accounts could not be read.","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/whatsapp/templates","href":"/api-reference/v2/whatsapp/list-whatsapp-templates"},{"title":"Send a WhatsApp template message","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/whatsapp/messages/template","href":"/api-reference/v2/whatsapp/send-a-whatsapp-template-message"}]},{"group":"Helpdesk","pages":[{"title":"List ticket statuses","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/ticket-statuses","href":"/api-reference/v2/helpdesk/list-ticket-statuses"},{"title":"List teams","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/teams","href":"/api-reference/v2/helpdesk/list-teams"},{"title":"List attendance rows","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/attendance","href":"/api-reference/v2/helpdesk/list-attendance-rows"},{"title":"List activity segments","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/activity","href":"/api-reference/v2/helpdesk/list-activity-segments"},{"title":"List tickets","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/tickets","href":"/api-reference/v2/helpdesk/list-tickets"},{"title":"Create a ticket","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/helpdesk/tickets","href":"/api-reference/v2/helpdesk/create-a-ticket"},{"title":"Search tickets","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/helpdesk/tickets/search","href":"/api-reference/v2/helpdesk/search-tickets"},{"title":"Get a ticket","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/tickets/{ticketNumber}","href":"/api-reference/v2/helpdesk/get-a-ticket"},{"title":"Update a ticket","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json patch /agents/{agentId}/helpdesk/tickets/{ticketNumber}","href":"/api-reference/v2/helpdesk/update-a-ticket"},{"title":"List ticket messages","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json get /agents/{agentId}/helpdesk/tickets/{ticketNumber}/messages","href":"/api-reference/v2/helpdesk/list-ticket-messages"},{"title":"Add a message to a ticket","deprecated":null,"version":null,"openapi":"/api-v2-openapi.json post /agents/{agentId}/helpdesk/tickets/{ticketNumber}/messages","href":"/api-reference/v2/helpdesk/add-a-message-to-a-ticket"}]}]}]},{"dropdown":"API v1","icon":"box-archive","groups":[{"group":"Getting Started","pages":[{"title":"API v1 Overview","sidebarTitle":"Overview","href":"/api-reference/v1/overview"}]},{"group":"Endpoints","pages":[{"group":"Chat","pages":[{"title":"Chat with a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /chat","href":"/api-reference/v1/chat/chat-with-a-chatbot"}]},{"group":"Chatbots","pages":[{"title":"Create a new chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /create-chatbot","href":"/api-reference/v1/chatbots/create-a-new-chatbot"},{"title":"Get all chatbots","deprecated":null,"version":null,"openapi":"/openapi.yaml get /get-chatbots","href":"/api-reference/v1/chatbots/get-all-chatbots"},{"title":"Delete a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /delete-chatbot","href":"/api-reference/v1/chatbots/delete-a-chatbot"},{"title":"Update a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /update-chatbot-data","href":"/api-reference/v1/chatbots/update-a-chatbot"},{"title":"Update chatbot settings","deprecated":null,"version":null,"openapi":"/openapi.yaml post /update-chatbot-settings","href":"/api-reference/v1/chatbots/update-chatbot-settings"}]},{"group":"Conversations","pages":[{"title":"Get conversations for a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /get-conversations","href":"/api-reference/v1/conversations/get-conversations-for-a-chatbot"}]},{"group":"Leads","pages":[{"title":"Get leads for a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /get-leads","href":"/api-reference/v1/leads/get-leads-for-a-chatbot"}]},{"group":"Assets","pages":[{"title":"Upload chatbot icon","deprecated":null,"version":null,"openapi":"/openapi.yaml post /upload-chatbot-icon","href":"/api-reference/v1/assets/upload-chatbot-icon"},{"title":"Upload chatbot profile picture","deprecated":null,"version":null,"openapi":"/openapi.yaml post /upload-chatbot-profile-picture","href":"/api-reference/v1/assets/upload-chatbot-profile-picture"},{"title":"Delete chatbot icon","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /delete-chatbot-icon","href":"/api-reference/v1/assets/delete-chatbot-icon"},{"title":"Delete chatbot profile picture","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /delete-chatbot-profile-picture","href":"/api-reference/v1/assets/delete-chatbot-profile-picture"}]},{"group":"Contacts","pages":[{"title":"Get contacts for a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /chatbots/{chatbotId}/contacts","href":"/api-reference/v1/contacts/get-contacts-for-a-chatbot"},{"title":"Create contacts for a chatbot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /chatbots/{chatbotId}/contacts","href":"/api-reference/v1/contacts/create-contacts-for-a-chatbot"},{"title":"Get a specific contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /chatbots/{chatbotId}/contacts/{contactId}","href":"/api-reference/v1/contacts/get-a-specific-contact"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /chatbots/{chatbotId}/contacts/{contactId}","href":"/api-reference/v1/contacts/delete-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /chatbots/{chatbotId}/contacts/{contactId}","href":"/api-reference/v1/contacts/update-a-contact"},{"title":"Get custom attributes schema","deprecated":null,"version":null,"openapi":"/openapi.yaml get /chatbots/{chatbotId}/custom-attributes","href":"/api-reference/v1/contacts/get-custom-attributes-schema"},{"title":"Create custom attribute","deprecated":null,"version":null,"openapi":"/openapi.yaml post /chatbots/{chatbotId}/custom-attributes","href":"/api-reference/v1/contacts/create-custom-attribute"},{"title":"Update custom attribute","deprecated":null,"version":null,"openapi":"/openapi.yaml put /chatbots/{chatbotId}/custom-attributes/{name}","href":"/api-reference/v1/contacts/update-custom-attribute"}]}]}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"Help \u0026 Support","pages":[{"title":"Help \u0026 Support","href":"/faq/faq"}]}]},"basePath":"","title":"Update a procedure - Chatbase","buildId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","deploymentId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CASS2Vpq.js","utils-4k9fyWRu.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-UU-UueZb.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BgJ0LOYq.js","snippetPresets-CMgzlMR-.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BzEJegkK.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CZuQIZdk.js","shallow-Bw5arfMA.js","getApiPlaygroundDisplay-Ds834aVN.js","CodeSnippet-CKzmjw9L.js","CodeSnippets-BRpgomdp.js","Page-DvEUoD2H.js","getPastedJson-B0N-Tn76.js","icon-DASMs9nC.js","MethodPill-BA6DBLqx.js","DuplicateIcon-BMT5qfbJ.js","createIcon-CNfwVWPx.js","DynamicMarkdown-JYyBNlrJ.js","SectionHeading-BbZnmz8a.js","axios-vUo_bRtp.js","Markdown-LUU0YLpA.js","clsx-Di4ek5Ae.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-VEVWQCR4.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CPszyu99.js"]}