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 in an awaiting review state after extraction and cleaning: no email is sent, no webhook fires and no Bucket row is written 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
  • New suppliers or new formats, until you trust the flow

Two ways a run gets paused

A run can be sent for review in two ways: the flow-level switch pauses every run, or a conditional action inside a Cleaner pauses only the runs that match a rule. Both can be active at once, and when they are, the two reviewer lists are combined.

TriggerWhat pausesBest for
Flow settingEvery 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 actionOnly the runs where a row matched your 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.
You do not have to review everything

Reviewing every run defeats the point of automating extraction. The conditional route is usually the right one: set up a Cleaner with a Conditional Actions field, give it a condition such as total > 10,000, and add the review action. Only matching runs stop.

When a Cleaner 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.

Turn on review for a flow

Review is configured per flow, 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 find the Human in the Loop panel in its settings.
  2. 2Toggle review on.
  3. 3Select one or more reviewers from your org members.
  4. 4Process one document and confirm it lands in the reviewers' Human in the Loop queue.

A flow with review switched on and no reviewers assigned will pause runs that nobody can approve. The app warns you when you save in that state — 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 — converted currencies, reformatted dates, computed columns and all. That is what will be delivered, so it is the right thing to check.

The review queue

Assigned reviewers get an email the moment a run needs attention, and the Human in the Loop page in the sidebar lists everything waiting. It is filtered to runs assigned to you — reviewers do not see each other's queues.

  • Summary figures at the top: how many runs are waiting, how long the oldest has been waiting, your role, and how many flows are contributing
  • One card per run with the filename, the flow it came from, when it arrived and its status
  • Newest first
  • A dot on the sidebar icon whenever something is waiting for you, refreshed automatically

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 toggle 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 one value to the selection.
Drop a row from the outputUntick it — excluded rows are not delivered.
Add or remove a columnUse the toolbar. A removed column can be restored before you approve.
See what triggered the pauseRows a Cleaner rule matched are flagged.
See what you changedEdited cells stay highlighted until you approve.
  • The document panel handles PDFs with page navigation as well as image files
  • 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 completion.Everything the flow is configured to do, in order: email output, webhook, Bucket export, form filling.
RejectThe run is cancelled and your reason is recorded.Nothing. No email, no webhook, no Bucket row.
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 review. Refresh the queue to see the current state.

Approval can fail on credits

Some downstream steps consume credits when the run resumes. If the balance has run out while the run was waiting, the approval is refused rather than half-completed. Top up and approve again.

Who can review

Only members explicitly assigned as reviewers on a flow can see or act on that flow's paused runs. 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.

  • Reviewer lists are managed per flow, by an Owner or an Admin
  • A Cleaner's review action carries its own reviewer list, which is combined with the flow's
  • A reviewer's queue shows only the runs they are assigned to

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

The append-only audit trail

Every action in a review 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.
Run viewedA reviewer opens the review screen.
Cell editedA value is changed, with the old and new value.
Row added / row removedThe reviewer adds or drops a row.
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.