Pending Actions
The agent writes a proposal into the approval queue. You review it at Ad Ops. Pending Actions cover budget changes, campaign enables, bid updates, catalog ads, lead form writes, dynamic creative writes, and other high-risk changes. Approving a proposal does not skip the queue. The approved payload is what later runs.list_pending_actions shows what is waiting. Rejecting an item leaves the live campaign unchanged.
Decisions
manage_action requires action_id. The actor defaults to system.
A missing id returns
pending_action_not_found. A failed queue insert returns persistence_write_failed. Approval records the decision. The platform write runs later through execute_queued_action.
Workflow runs
list_workflow_runs is a read. Optional filters are tenant_id, account_id, workflow_type, status, trace_id, and limit. The result key is workflow_runs. A read failure returns workflow_run_read_failed.
resume_workflow_after_approval requires workflow_run_id, approved_action_id, and payload_hash. Optional arguments are tenant_id, account_id, and worker_id. A locked run returns workflow_run_locked. A missing run returns workflow_run_not_found. A tenant mismatch returns workflow_tenant_mismatch. An account mismatch returns workflow_account_mismatch.
When the run is found and those checks pass, the handler returns ok: false and error_code: workflow_resume_not_supported. The Python agent keeps workflow state in the LangGraph checkpointer. This call is a status response, and the checkpointer remains the place workflow state continues.
Execution Queue
Approved work moves to the Execution Queue at Execution Queue. This screen is limited to admins.list_execution_queueshows approved items that have not finished.execute_queued_actionruns one approved item.- The payload hash must still match the approved payload. If the draft changed after approval, execution stops.
Dead letter
If an approved action fails, it is not retried on its own. It lands in the dead-letter queue.list_dead_letter_queueshows the failed item and error.- Read the platform error before changing anything.
retry_queued_actionruns only after you approve a corrected attempt.resolve_dead_letter_actioncloses the item once the corrective path is explicit.
get_action_audit is the history of what was proposed, approved, and executed.
When something looks wrong
Use Diagnostics withget_recent_errors, get_request_trace, and search_service_events. Diagnostics is an admin screen. It explains a failure. It does not approve a new spend change.