Resolve a review item, or skip an inactive pending/failed item in a paused task (or pending in a draft) after a verified purchase using reason customer_purchased, operationId and evidenceRef; preserves attempts, costs and DNC, with durable resolution readback
A separate verified-purchase variant accepts action: skip, reason: customer_purchased, revision, operationId and evidenceRef (opaque identifiers up to 128 characters each). It skips only an inactive pending item in a draft task or pending/failed in a paused task with no unsettled calls or reservations. History, costs and DNC are preserved; GET returns the immutable items[].resolution receipt. Replay the same operation after an uncertain response without another write; a different resolution on an already resolved item returns 409 revision_conflict. Original behavior without reason: Decides about a contact waiting for review (items[].status: "review"): normally, retry puts it back in the queue without consuming another attempt and skip closes it as skipped. With retryPolicy: "lorela_enterprise", manual retry returns validation; only scheduled automatic attempts are allowed. A contact in review can appear while the task is still running, but resolve works only while the task is not running - on a running task it returns 409 task_not_editable, so wait for needs_attention or pause the task (pause). For reviewReason: "dial:destination_auto_blocked" first lift the block (POST /v1/dnc/{e164}/unblock) and only then retry; for dial:cannot_call_own_number, dial:cannot_call_volai_number, dial:invalid_number, dial:unsupported_country and dial:blocked_destination only skip helps. reviewReason: "billing_unknown" is different: the providerCallId and reserved budget remain attached until POST .../reconcile; after retry, the replacement attempt waits for the original call to settle, and after skip no replacement call is made but the original call may still be charged later (its reservation keeps counting against the budget). After retry the task therefore stays in needs_attention until the price settles; after skip it moves to paused and can be started when work remains, otherwise it waits in needs_attention and completes once the price settles. A call that was never dialed settles at 0 right away. For other review reasons, resolving the final contact moves it from needs_attention to paused (start resumes it) or completed.
Request
- Base URL: https://volai.cz
- URL: https://volai.cz/v1/tasks/{id}/items/{itemId}/resolve
- Auth: HTTP bearer
Path parameters
Request body
Response
Task after the decision
Changes
No recorded changes to this operation across all 1 revision of this API.