Skip to content
GuideAPIANT.aiv2

Human approval

View .md

How the Human Interaction app pauses an APIANT automation until a person approves or denies an item from a moderation queue link, with timeouts, custom button labels and the rules for placing the wait.

The Human Interaction app pauses a run until a person approves or denies an item. The automation adds the item to a moderation queue, sends the approver a link, and waits. The approver needs no APIANT account: the link opens the queue, and their decision resumes the run with approved or denied.

Build an approval step

Describe the decision and who makes it, for example: "When a refund request over $500 arrives in the webhook, email the finance manager an approval link. If they approve, issue the refund in Stripe; if they deny, email the customer. Deny automatically after 48 hours."

An approval flow has these steps:

  1. Configure moderation queue UI (optional) sets the queue's header and button labels.
  2. Get moderation request link adds the item to the queue and outputs the Moderation link.
  3. A step from another app sends the link, such as an email or a chat message. The Human Interaction app does not send it.
  4. Await human moderation, or Await human moderation with timeout, pauses the run.
  5. A condition branches on the await step's Result, which is approved or denied in lowercase.

Operations

InputRequiredPurpose
TitleYesThe item's title in the queue list
DescriptionYesShown when the approver opens the item. Plain text or HTML. A value starting with http:// or https:// is shown as an embedded page instead.
ScopeNoGroups items into separate queues. Configure moderation queue UI applies to items with the same scope.

Output: Moderation link.

HTML in Description is rendered with basic formatting, links, lists, tables and images; scripts and other elements are removed. If it includes data from an untrusted source, such as a form submission, ask Claude to strip or escape the HTML first.

Await human moderation

No inputs. Waits with no time limit. Output: Result.

Await human moderation with timeout

InputRequiredPurpose
Wait untilYesThe deadline, as natural language such as in 3 days or as Unix epoch seconds
ModifiersNoAdjustments such as +48h or -30m
Timezone offset secondsNoACCOUNT, ACCOUNT_UTC, a number of seconds, or empty
Default moderation resultYesapproved or denied, used when the deadline passes with no decision

Output: Result.

Configure moderation queue UI

Without this step, the queue uses the defaults below. When you add the step, set all four labels.

InputDefault
HeaderModeration Queue
Dialog TitleApprove or Deny
Approve button textApprove
Deny button textDeny
ScopeNone

The labels do not need to say approve and deny. A queue of sync issues can use Fixed and Ignore; the run still receives approved or denied.

The approver's view

The link opens the moderation queue for that automation and scope. The approver sees their item and any other pending items in the same queue, can search the list, and opens an item to read its description and choose. After a decision the page shows "Your response has been processed." and the item leaves the queue.

The moderation queue lists pending items by title, and opening one shows its description with the two decision buttons.

Anyone who has the link can decide every pending item in that automation's queue for that scope. Send it only to the approver.

Rules for placing the wait

  • Keep the automation on. While an automation is off, its queue shows "This moderation queue's automation is not turned on." and refuses decisions; nothing is recorded. The waiting run is kept. Once the automation is back on, the approver can decide and the run resumes.
  • One await per run. Two await steps in the same run are paired by position, so the first decision to arrive resumes the first await, whichever item it was for. To decide several items independently, give each its own run, for example by calling a subroutine or another automation once per item.
  • Not inside a parallel branch, a waited-on child automation, or a polling run. The await step fails in a parallel branch, in an automation that another automation calls and waits for, and in a run started by a polling or collector trigger. It works in the main sequence, in a subroutine, and in an automation started without waiting. Use a webhook or manual trigger for approval flows.
  • Stopping on denial. Put the denial actions in the condition's else branch. If steps after the condition must not run on denial, add Halt data row processing from the Flow Control app to that branch; the run is recorded as successful.

Finding a waiting run

Runs paused on an approval show in Execution history with a View in moderation queue button that opens the pending item. To cancel a waiting run so it never resumes, ask Claude to cancel it.

Troubleshooting

SymptomCause and fix
The queue shows a notice instead of itemsThe automation is off or was deleted. Turn it back on; items of a deleted automation cannot be decided.
The run fails at the await stepThe step is inside a parallel branch or a waited-on child automation, or the automation has a polling or collector trigger. Move the step to the main sequence or a subroutine, or use a webhook or manual trigger.
An approval resumed the wrong awaitThe run has two await steps. Split the items into separate runs.
The custom labels do not appearScope on Configure moderation queue UI does not match Scope on Get moderation request link.
The approver never got the linkNo step sends it, or the sending step failed. Check the run in Execution history.

Next steps

Related docs

Last updated September 15, 2026