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.
Authorizations
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"