Edit the draft configuration
Send `expectedUpdatedAt` (the `updatedAt` you last read) for optimistic concurrency; a mismatch returns 409 with the authoritative config unless `forceOverwrite` is set. Editing the draft does NOT affect live calls until you publish. The bot’s models are configured by Mediflo and are not part of this body; a model change from a key without a Mediflo staff member’s authority is refused with 403 `BOT_MODEL_CONFIG_STAFF_ONLY`. Required scope: `bots.write`.
/bots/{botId}/configAuthorization
ApiKeyAuth An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/bots/497f6eca-6276-4993-bfeb-53cbbbba6f08/config" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "botId": "58ed41f0-04bf-402f-9853-7143ef7dd5ce", "updatedAt": "2019-08-24T14:15:22Z", "agentPromptText": "string", "remarksPromptText": "string", "remarksLlmModelId": "61dba459-df9c-4002-a591-7e86bec83d9b", "remarksFallbackLlmModelIds": [ "25cd54b2-ac54-4f0d-8bb9-3cdcb88f159c" ], "remarksTemperature": 0, "remarksOutputSchemaJson": null, "toolsConfig": null, "guardrailsConfig": null, "greetingConfig": null, "channelSettings": null, "sessionInitConfig": null, "turnTakingMode": "string", "promptVariableMetadata": null, "modelConfig": null, "currentConfigSnapshotId": "c9e4146c-56e5-412d-a7c1-86311b72b35e", "entryProcedureId": "2fd6edee-ae37-4588-8083-09bfb58841c3" }}Get the draft configuration GET
Required scope: `bots.read`.
Publish the draft as an immutable snapshot POST
Freezes the draft and points the bot at it, including channelSettings. Required before the bot can be dispatched. Returns 400 `BOT_CONFIG_INCOMPLETE` with `missingFields` when the draft is not publishable — when `remarksLlmModelId` is among them, `details.hint` names the endpoint the id comes from. Procedure problems come back as 400 `BOT_CONFIG_PROCEDURES_INVALID` with `details.blockers`; a SUCCESSFUL publish may still carry `procedureWarnings` — read them. They include procedure findings and also chat prompt warnings, Terminarz/booking warnings (including WEB_CHAT_BOOKING_WIDGET_MISSING and WEB_CHAT_BOOKING_SMS_MISSING) and AI_DISCLOSURE_NOT_FOUND. None of those block the publish. Required scope: `bots.write`.