PUThttps://core-api.heysadie.ai/assistants/{id}/tools/{toolId}/steps/{stepId}/text-override
id toolId stepId action additional_rules wait_for_response _remove success data message metadata timestamp version path error code details fieldReplace assistants tools steps text override
Override a single step in a tool's **text instructions** for a specific assistant. Text instructions (`textInstructions` on the tool) are what the assistant follows in text conversations: SMS, WhatsApp and webchat. This works exactly like the voice step override (`PUT /assistants/{id}/tools/{toolId}/steps/{stepId}/override`), with the same body, but the two are independent: a text override never changes voice calls, and a voice override never changes text conversations. ### What you can override per step | Field | Type | Description | |-------|------|-------------| | `action` | string | Replace the step's action text | | `additional_rules` | string[] | Replace the step's additional rules | | `wait_for_response` | boolean | Change whether the assistant waits for a customer response | Only include the fields you want to change. Send `{ "_remove": true }` to skip the step entirely for this assistant. ### When it applies Text overrides apply only while the tool has `textInstructions`. If the tool has none, text conversations use the tool's `instruction` with the voice overrides, and text overrides have no effect. ### Requirements - The **assistant** must belong to your tenant. - The **tool** must belong to your tenant (or be a global tool). - The **tool must be linked** to the assistant. - The **step_id** must exist in the tool's `textInstructions.steps` array.
Try it in the API ExplorerExample request
curl -X PUT "https://core-api.heysadie.ai/assistants/ASSISTANT_ID/tools/TOOL_ID/steps/STEP_ID/text-override" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "string",
"additional_rules": [
"string"
],
"wait_for_response": true
}'Authentication
Authenticate with an API key in the Authorization header using the ApiKey scheme. See Authentication for how keys work and where to get them.
AuthorizationstringrequiredAPI key in the ApiKey scheme: ApiKey YOUR_API_KEY. Tenant keys authorize their own tenant; organization keys can act on any tenant in the organization.
X-Tenant-Idstring (uuid)optionalRequired when authenticating with an organization key: it selects the tenant the request acts on. Omit with tenant keys.
Request
Path parameters
idstringrequiredThe resource's UUID.
toolIdstringrequiredUUID of the tool.
stepIdstringrequiredUUID of the tool step.
Body application/json · required
actionstringoptionalReplacement action text for this step. If omitted, the original action is kept.
additional_rulesstring[]optionalReplacement additional rules for this step. If omitted, the original rules are kept.
wait_for_responsebooleanoptionalWhether the assistant should wait for a caller response at this step. If omitted, the original value is kept.
_removebooleanoptionalSet to true to remove this step entirely from the instruction flow for this assistant.
Responses
successbooleanrequiredtrue on every 2xx
dataobjectoptionalThe result
Show 1 child properties
messagestringrequiredmetadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested
400The request is invalid. `details` lists each field that failed
successbooleanrequiredfalse on every error
errorobjectoptionalWhat went wrong: a stable `code` to branch on and a human-readable `message`
Show 3 child properties
codeenumrequiredA parameter or body field broke a rule
"VALIDATION_ERROR"messagestringrequiredHuman-readable explanation. Do not parse it; branch on `code`
detailsobject[]optionalOne entry per field that failed
Show 2 item properties
fieldstringrequiredThe offending field
messagestringrequiredThe rule it broke
metadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested
401Missing or invalid credentials
successbooleanrequiredfalse on every error
errorobjectoptionalWhat went wrong: a stable `code` to branch on and a human-readable `message`
Show 2 child properties
codeenumrequiredNo valid credentials
"UNAUTHORIZED"messagestringrequiredHuman-readable explanation. Do not parse it; branch on `code`
metadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested
403The credentials are valid but may not use this route
successbooleanrequiredfalse on every error
errorobjectoptionalWhat went wrong: a stable `code` to branch on and a human-readable `message`
Show 2 child properties
codeenumrequiredThe credentials may not use this route
"FORBIDDEN"messagestringrequiredHuman-readable explanation. Do not parse it; branch on `code`
metadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested
404Not found, or outside the caller's scope
successbooleanrequiredfalse on every error
errorobjectoptionalWhat went wrong: a stable `code` to branch on and a human-readable `message`
Show 2 child properties
codeenumrequiredAn id names nothing the caller can see
"RESOURCE_NOT_FOUND"messagestringrequiredHuman-readable explanation. Do not parse it; branch on `code`
metadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested
500An unexpected server error
successbooleanrequiredfalse on every error
errorobjectoptionalWhat went wrong: a stable `code` to branch on and a human-readable `message`
Show 2 child properties
codeenumrequiredAn unexpected server failure
"INTERNAL_SERVER_ERROR"messagestringrequiredHuman-readable explanation. Do not parse it; branch on `code`
metadataobjectoptionalRequest metadata
Show 3 child properties
timestampstringrequiredWhen the server answered, ISO 8601 UTC
versionstringrequiredAPI version
pathstringoptionalThe URL that was requested