Human in the Loop

What Human in the Loop does

Human in the Loop puts a review checkpoint between extraction and delivery. A run that needs review stops after extraction and cleaning with the status Awaiting approval: no email is sent, no webhook fires, no Bucket row is written and no linked agent starts until a named reviewer approves it.

The important word is before. Review is not a correction you apply after bad data has already reached your ERP; the delivery step has not run yet. When the reviewer approves, the run resumes from exactly where it paused, carrying their edits.

  • High-value data that must be verified before it moves downstream
  • A compliance requirement for a documented manual approval step
  • Documents where extraction is usually right but occasionally expensive to get wrong
  • Values only a person can supply, such as an internal cost center or an approval code
  • New suppliers or new formats, until you trust the flow

Flow runs are the main case, but the same queue also collects paused matches, inspections and fills. See Other things that wait for review below.

Three ways a flow run gets paused

The flow-level switch is one way to send runs for review, not the only one. A Cleaner attached to the flow can pause runs on its own, even with the switch off. When several triggers apply to the same run, their reviewer lists are combined.

TriggerWhat pausesBest for
Flow setting (Human in the Loop panel)Every run of the flow, regardless of what was extracted.A document type that always needs sign-off, or a flow you have just built and do not trust yet.
Cleaner Conditional Actions rule with the Human in the Loop actionOnly the runs where a row matched the rule, for example a total above a threshold or a missing tax ID.High volume where most runs are fine and you only want eyes on the exceptions.
Cleaner Human Input fieldEvery run that goes through the Cleaner, because a person has to type or pick the value.Data that is not in the document at all and has to be added by someone.
You do not have to review everything

Reviewing every run defeats the point of automating extraction. The conditional route is usually the right one: in the Cleaner, add a Conditional Actions field, give it a condition such as total > 10,000, add the Human in the Loop action and pick its reviewers. Only matching runs stop. The flow switch can stay off.

When a Cleaner rule triggers the pause, Tavnit records which rows and which fields matched. The review screen flags exactly those cells, so the reviewer starts at the reason the run was held rather than reading the whole table. If the rule is fed by an Anomaly Check field, the reviewer also sees why each value was flagged.

Turn on review for a flow

The flow switch lives in the flow's own settings. Only an Owner or Admin can change it. Reviewers are picked from your organization's members.

  1. 1Open the flow and select the Human in the Loop panel in its sidebar.
  2. 2Toggle review on.
  3. 3Under Reviewers, pick one or more members of your organization.
  4. 4Process one document and confirm it appears as Awaiting review in the reviewers' Human in the Loop queue.

With review switched on and no reviewers assigned, the panel warns “No reviewers selected — approvals won't reach anyone.” Paused runs then have nobody who can approve them. Assign at least one reviewer before you send documents through.

With a Cleaner attached, reviewers see cleaned data

When the flow has a Cleaner, the pause happens after cleaning, so the table under review is the cleaned output, with converted currencies, reformatted dates and computed columns. That is what will be delivered, so it is the right thing to check.

Human Input fields

A Human Input field is a Cleaner column that is never extracted: a reviewer fills it in on the review screen. Use it for a cost center, a GL account, an internal approval code, or anything else the document cannot tell you.

OptionWhat it does
Free textThe reviewer types the value.
MenuThe reviewer picks from the distinct values of a Bucket column (Options Bucket and Options Column), optionally filtered by conditions, including conditions on the current row's fields.
Value is mandatoryApproval is blocked until every row has a value. Turn it off to allow blanks.
ReviewersWho may fill the field and approve; combined with the flow's reviewers.

Every run that goes through a Cleaner with a Human Input field pauses for review, whether or not the flow switch is on. On the review screen the column is marked Needs human input with a count of rows filled, and Approve stays blocked (“Fill all required human input values to approve”) until every mandatory value is in.

The review queue

The Human in the Loop page in the sidebar lists everything waiting for you, newest first. It shows only items you are a reviewer on; reviewers do not see each other's queues.

  • Summary figures at the top: Awaiting Review, Oldest Pending, Your Role, and Flows With HITL
  • One card per item: the file name and flow for a run, with a Match or Fill chip for those kinds, and the status Awaiting review
  • A red dot on the sidebar icon whenever something is waiting for you. It updates in real time, without refreshing the page
  • Assigned reviewers also get an email with a direct link the moment a run, match, inspection or fill needs them

Reviewing a run

The review screen is a split view: the extracted table on the left, the original document on the right. You check a value against the source without leaving the page, correct it in place, and approve. The divider is draggable, and on mobile you switch between the two panels.

The Tavnit review screen for a run awaiting review: an editable data grid on the left showing Subtotal, Amount and Weight columns with row checkboxes, the source invoice rendered on the right, and Reject and Approve buttons in the header.
A run awaiting review. The grid on the left is the cleaned output that will be delivered; the source document sits alongside it for checking.
In the data grid you canHow
Edit a valueDouble-click the cell and type.
Change many cells at onceSelect by dragging, Shift-clicking, or clicking a column header, then Apply to selected.
Drop a row from the outputUntick it. Excluded rows are not delivered.
Add or remove a columnUse Add column or Remove column. A removed column can be restored before you approve.
See what triggered the pauseCells a Cleaner rule matched are flagged.
Fill Human Input fieldsType the value, or pick it from the menu.
See what you changedEdited cells stay highlighted until you approve.
  • The document panel shows PDFs with page navigation as well as image files; spreadsheets can be downloaded
  • Fit to width, Fit to height and manual zoom; drag to pan
  • Ctrl/Cmd + and − to zoom, Ctrl/Cmd + 0 to reset

Approving and rejecting

Approving folds your edits into the run and releases it downstream. Rejecting cancels the run and delivers nothing. Both decisions are final for that run: the pause is a one-time gate, not a state you can toggle back and forth.

DecisionWhat happens to the runWhat is delivered
ApproveYour edited table replaces the extracted output and the run resumes to Completed, with a HITL Approved badge.Everything the flow is configured to do: email output, webhook, Bucket export, form filling and a linked agent, all with the approved data.
RejectThe run becomes Cancelled, with a HITL Rejected badge, and your reason (optional but recommended) is recorded.Nothing. No email, no webhook, no Bucket row, no agent run.
The first decision wins

You do not need every assigned reviewer to sign off. The first approval or rejection resolves the run; if a second reviewer had it open, their decision is refused because the run is no longer awaiting approval. Refresh the queue to see the current state.

The run's page shows who decided (Approved by or Rejected by).

Other things that wait for review

Matchers, Inspectors and Fillers have their own review settings, and their paused items land in the same queue, with the same first-decision-wins rule and the same audit trail.

ItemWhen it pausesWhat the reviewer does
MatchWhen human review is turned on for the Matcher: every match.Checks and corrects the AI pairing of rows across documents, can exclude rows, then approves or rejects.
InspectionWhen human review is on for the Inspector, or when a failing check requests review through its on-fail actions.Waives failing checks with a reason, then approves to finalise the verdict, or rejects to cancel the inspection.
FillWhen human review is on for the Filler, or whenever it has Human fill fields mapped.Reviews the filled forms, types the Human fill values, then approves to release the forms, or rejects.

Who can review

Only the people assigned as reviewers can approve or reject a flow run. Being an Admin is not enough on its own: an Admin who is not on the reviewer list does not get the run in their queue and cannot approve it.

  • Flow reviewer lists are managed by an Owner or an Admin
  • A Cleaner's Human in the Loop action and each Human Input field carry their own reviewers, combined with the flow's
  • Any member can be a reviewer, whatever their role
  • The HITL Only role is made for reviewers: those members see only the Human in the Loop queue and can review, but cannot run or change anything else

See user roles and permissions for what each role can change.

The append-only audit trail

Every review action is written to a permanent, append-only log with a timestamp and the reviewer's identity. Entries cannot be edited or deleted, so the record of who changed what, and what the data looked like before they touched it, survives the review.

Recorded eventWhen it is written
Reviewers notifiedThe run enters the review queue and the reviewers are emailed.
Cell editedA value is changed, with the old and new value.
Row added / row removedThe reviewer adds a row or excludes one.
Column added / column removedThe reviewer changes the table's shape.
ApprovedThe decision, the reviewer, and how many edits were made.
RejectedThe decision, the reviewer, and the reason given.
The pre-review data is kept too

Tavnit stores the output as it was before the reviewer touched it, alongside the approved version. An auditor can compare the extraction against the delivered result without reconstructing it from the event log.

Troubleshooting

SymptomLikely cause and fix
Runs pause although the flow switch is offThe flow's Cleaner has a Conditional Actions rule with the Human in the Loop action, or a Human Input field.
A run is Awaiting approval but not in my queueYou are not on its reviewer list. Ask an Owner or Admin to add you to the flow (or to the Cleaner rule that paused it).
Approve is refused as not a configured reviewerOnly assigned reviewers can decide. If no reviewer was assigned, add one on the flow; nobody else can release the run.
Approve is refused because the run is not awaiting approvalAnother reviewer decided first. Refresh the queue.
Approve is blocked with missing human inputA mandatory Human Input field is still empty in some rows. Fill them, or make the field optional in the Cleaner.
The linked agent did not runIt runs only after approval. A rejected run never starts it.
Review is not free of time

A paused run waits as long as it takes. If results feed a time-sensitive process, make sure reviewers watch their queue or their email, or narrow the pause to the exceptions with a Cleaner rule.