curl --request PUT \
--url https://{subdomain}.mihu.ai/api/v1/conversations/{uuid}/mode \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"mode": "copilot"
}
'{
"success": true,
"message": "Conversation mode updated",
"data": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "copilot",
"take_over": true
}
}Choose who answers: AI, Co-Pilot or Human
Decides who writes the next reply on this one conversation.
- ai — the AI answers by itself, no operator involved.
- copilot — the AI stops answering and instead writes drafts the operator reviews and sends (
POST /conversations/{uuid}/drafts). - human — the AI stops answering and writes nothing; the operator types the reply.
When to use it. When an operator takes a conversation off the AI — a complaint, a negotiation, anything the AI should not be handling alone — and again when they hand it back. Sending ai returns the thread to automatic answering.
Why it is stored server-side. The next operator to open the conversation sees the same mode, on any device: the state belongs to the conversation, not to one browser tab.
Relationship to take_over. copilot and human both set take_over to true — the flag every channel checks before letting the AI reply — and ai clears it. Both fields are returned on the conversation object.
Starting value. A new conversation follows the mode of its queue’s channel assignment (autopilot / copilot / human_first). This endpoint is the per-conversation override; it does not change the queue.
Who can call it. A workspace API token, or a per-user JWT holding loop.conversations.mode. JWTs only reach conversations in their active queues (404 otherwise). A JWT is attributed to its own user; a workspace token carries no identity, so pass user_email to record who switched the mode.
curl --request PUT \
--url https://{subdomain}.mihu.ai/api/v1/conversations/{uuid}/mode \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"mode": "copilot"
}
'{
"success": true,
"message": "Conversation mode updated",
"data": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "copilot",
"take_over": true
}
}Authorizations
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"