Skip to content
simailDocsv0

Guides

Human takeover

Lock a thread so a human can take over the conversation; what agents see and should do while a thread is locked.

docs.simail.ai/takeover

Any human with access to an inbox can take over a thread in the console. The thread is locked for agents until the human hands it back. Use it when a conversation needs judgment, when a customer asks for a person, or when an agent goes off track.

  • Sends in that thread from any key or MCP client return 423 thread_locked (reply, reply-all, forward, and sending a draft that replies in the thread).
  • Messages already scheduled or approved in the thread do not go out. They wait at the release service’s final check and continue after the unlock. If the lock outlasts the approval lifetime, they expire instead.
  • Reading still works: the agent can see new messages, unless they are held.
  • thread.locked is published when the lock starts and thread.unlocked when it ends.
{
"type": "https://docs.simail.ai/errors#thread_locked",
"title": "ThreadLockedError",
"status": 423,
"detail": "A human has taken over this thread.",
"instance": "/v0/inboxes/shop-helper@simail.email/messages/msg_…/reply",
"code": "thread_locked",
"retryable": false,
"fix": "A human has taken over this thread; wait until it is unlocked.",
"request_id": "req_…"
}
  1. Stop. Do not retry the send, do not send from another inbox, and do not start a new thread with the same person.
  2. Tell your human that the thread is locked, if you were in the middle of a task.
  3. Wait for thread.unlocked (or check the lock) before writing in the thread again. Read what the human wrote first; they may have resolved the request.
GET/v0/inboxes/{inbox_id}/threads/{thread_id}/lock

needs message_read. See Locks.

Only humans lock and unlock, in the console. There is no lock or unlock endpoint for keys and no MCP tool for it.

ControlScopeEffect
Thread lockone threadsends in the thread return 423; reading continues
Pause inboxone inboxthe inbox rejects new mail and cannot send until resumed
Organization pausedorganizationsends return 403 account_suspended; receiving continues
Platform pauseeveryonesends return 503 sending_paused; accepted messages wait