Resolve a human-help request

View as Markdown
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. Returns 404 both when the conversation does not exist and when it is not waiting for anyone (never flagged, or already resolved). 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](/webhooks). **Access** - **Required scope:** `write`. - **Rate limit:** General API — 120 requests/min per workspace (Starter), 200 (Growth), 300 (Business), 600 (Enterprise). See [Rate limits](/rate-limits). - **Plan:** Available on every plan.

Authentication

AuthorizationBearer
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. | Scope | GET / HEAD | POST / PUT / PATCH / DELETE | Admin-only routes | | --- | --- | --- | --- | | `read` | Yes | No | No | | `write` | Yes | Yes | No | | `full` | Yes | Yes | Yes | 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](/authentication).

Path parameters

conversationIdstringRequiredformat: "uuid"

Id of the conversation whose human-help request is being resolved. Must be a UUID; the value is not pre-validated, so a malformed id fails with a 500 instead of a 400.

Response

The request was resolved.
dataobject

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error