Skip to content
Tools

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 field

Replace 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 Explorer

Example request

Terminal
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.

Authorizationstringrequired

API 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)optional

Required when authenticating with an organization key: it selects the tenant the request acts on. Omit with tenant keys.

Request

Path parameters

idstringrequired

The resource's UUID.

toolIdstringrequired

UUID of the tool.

stepIdstringrequired

UUID of the tool step.

Body application/json · required

actionstringoptional

Replacement action text for this step. If omitted, the original action is kept.

additional_rulesstring[]optional

Replacement additional rules for this step. If omitted, the original rules are kept.

wait_for_responsebooleanoptional

Whether the assistant should wait for a caller response at this step. If omitted, the original value is kept.

_removebooleanoptional

Set to true to remove this step entirely from the instruction flow for this assistant.

Responses

200
successbooleanrequired

true on every 2xx

dataobjectoptional

The result

Show 1 child properties
messagestringrequired
metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

400The request is invalid. `details` lists each field that failed
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 3 child properties
codeenumrequired

A parameter or body field broke a rule

Allowed values:"VALIDATION_ERROR"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

detailsobject[]optional

One entry per field that failed

Show 2 item properties
fieldstringrequired

The offending field

messagestringrequired

The rule it broke

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

401Missing or invalid credentials
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

No valid credentials

Allowed values:"UNAUTHORIZED"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

403The credentials are valid but may not use this route
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

The credentials may not use this route

Allowed values:"FORBIDDEN"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

404Not found, or outside the caller's scope
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

An id names nothing the caller can see

Allowed values:"RESOURCE_NOT_FOUND"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

500An unexpected server error
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

An unexpected server failure

Allowed values:"INTERNAL_SERVER_ERROR"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested