Resolve a human-help request
Marks the agent’s request for a person on this conversation as handled by setting
needs_human_resolved_at. The thread drops out of GET /api/conversations?needsHuman=waiting
and out of the needsHumanWaiting count.
Nothing is sent to the contact. The contact is never told a person got involved.
Answering them is a separate action, POST /api/conversations/{conversationId}/messages.
The conversation’s status does not change, and the agent keeps answering.
On an Instagram or Messenger thread that a person took over, it also hands the thread back to the agent: the human takeover ends and the agent answers the next inbound message. This works even when no help request was open.
Returns 404 both when the conversation does not exist and when it is not waiting for anyone (never flagged or already resolved, and not taken over by a person). The two are deliberately indistinguishable.
Side effects. Updates the conversation, clears the inbox list cache and writes an audit entry. The detail cache is not cleared and may show the old state for up to 30 seconds.
Idempotency. Safe to retry. The first call resolves, and repeats return 404 with no further change. If the agent raises a new request later, it must be resolved again.
Webhook events. audit.log_recorded for subscribers that selected it explicitly. See Webhooks.
Access
- Required scope:
write. - Rate limit: General API — 120 requests/min per workspace (Starter), 200 (Growth), 300 (Business), 600 (Enterprise). See Rate limits.
- Plan: Available on every plan.
Authentication
Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the
dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once,
at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.
Operations restricted to admins or owners reject keys without the full scope with 403, and say so in
their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret —
that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds.
See Authentication.
Path parameters
Id of the conversation whose human-help request is being resolved. Must be a UUID. The route does not check the format itself; a malformed id is refused by the database lookup and answered with 400 VALIDATION_FAILED.

