TrustWixDocs
Console handbook

Manual review

The queue of cases the engine would not decide, and how to decide one properly

Some verifications the engine will not settle on its own. Either a check came back genuinely uncertain, or one of your own rules said a person should look at this one whatever the checks concluded. Those land here.

Everything you record on this page is recorded against the applicant's session, is sent to your webhook endpoints, and in most cases is emailed to the applicant.

The queue

The list shows open cases with how long each has been waiting, the engine's verdict and score, and the reason codes behind it. Filter by review status, flow, verdict, assignee and when it was queued, search by name, email, document or session id, and sort oldest or newest first. Oldest first is the right default for a team trying not to keep anyone waiting.

Two tabs sit above the queue: Queue is everything open, Mine is what you are holding.

Claiming a case

If your organization has claims switched on, a case has to be taken from the queue before it can be decided. Claiming holds it for a set period and then releases it back if you never finished, so nothing is lost when somebody closes their laptop. You can hand one back deliberately with Give it back.

This is what stops two reviewers reaching opposite conclusions about the same applicant, which is why the setting exists and why leaving it off is a real decision rather than a default. Both are configured on the Team page.

If someone else already has a case open, the console says who, and you are asked to pick another rather than fight over it.

When somebody decided it first

Two people can still reach the same case at once, most easily when one of them is working through your own systems rather than through this console. Only one decision is ever recorded. If yours is the one that did not land, the console now tells you exactly that, and what the case was decided as, so you can move on instead of wondering whether your click registered.

There are two other things it can say, and they mean different things. If the case is no longer assigned to you, nothing was decided at all: your hold ran out or it was routed to a colleague, and the case is still open for somebody. If it is simply no longer available, reload the queue.

When the person is already approved

Approving is refused if you already hold a binding approval for the same person. The console names the verification that stopped you and which identifier matched, their customer reference, their email address, or the document itself.

This is not a mistake on your part, and nothing about the case is wrong. It happens when two verifications for one person are open at the same time, usually because they started twice under two different accounts. Neither blocks the other while both are waiting, because neither has been decided yet. By the time you reach the second one the first has been approved, and approving again would record two approvals for one human, which is exactly what your re-verification setting exists to prevent.

Your decision is not recorded and the case stays open and still yours, so nothing is lost. Read the approval it names. If the two really are the same person verifying twice, the second case is a duplicate and rejecting or retiring it is the honest answer. If you genuinely intend to approve again, issue a re-verification grant against the existing approval first, and then decide.

Rejecting is never refused. A rejection cannot duplicate an approval, so a case you want to close stays closable.

Cases that leave the queue on their own

While your re-verification setting is on, two things keep one person from holding more than one open question with you.

An approval closes the person's other open cases. When a verification is approved, automatically or by one of your team, any other case for the same person still waiting in the queue is taken off it. Nobody decided that case, so no decision is recorded on it and the applicant is not emailed. In Verifications it shows as expired with the reason ALREADY_VERIFIED, and the approval that closed it is on the same person's person page. If a case you were holding disappears from Mine, this is the usual reason. A case somebody has escalated is left alone, because a colleague is waiting on an answer there.

A new attempt is refused while a case is open. If the same person starts again while their case is waiting on a reviewer, the new attempt does not join the queue. It shows as expired with the reason REVIEW_IN_PROGRESS, and the applicant is told their verification is already being reviewed. The case you already have is the one to decide. The one exception is a case that is only here because a check failed in a way the applicant was invited to retry, such as a selfie that was too dark: their retry is allowed, and if it is approved, the failed attempt leaves the queue as above.

The same person is recognised by your customer reference, their email address, or their document, including the national id printed on it, so a person who comes back with a driving licence after verifying with an ID card is still recognised.

Cases handed out rather than taken

Your organization can hand cases out instead, either by a person assigning them or automatically as they arrive. When that is how you work, Mine is where your work appears and you are notified when something lands there. Owners and review managers still see everything.

Reading a case

What each check found is the heart of it. Each check is written in plain language rather than in codes: the face matches the document, liveness failed and this may be a spoof, the document needs a human look. A check that could not run at all says so, which is a different thing from a check that failed and should not be read as evidence against the applicant.

Applicant shows who they claim to be. Where a name was transliterated by us rather than printed on the document, it is labelled as such, so you are never comparing our rendering against the scan and calling it a mismatch.

Evidence is the captures. Open them large, and zoom.

Internal note is for your team. Say what you checked and what tipped it. The applicant never sees it.

Correcting what the engine read

If the fields are wrong but the decision is not, use Edit under the applicant on the case. It puts the scan beside every field the document prints so you can fix what was misread, and asks for a reason (the document was read wrong, a field was not read, the applicant asked, the document changed, or other) with an optional note for your team.

Editing changes the stored applicant data only. It re-runs no check and approves and rejects nothing, so correct the fields first and then decide the case. Every save is kept as a new version with your name, nothing is ever deleted, and your webhook endpoints receive verification.data_updated. Fields that did not come from the document are not editable here, and the verbatim machine output is shown but never edited, because it is the evidence the parsed fields are checked against.

Once a case has been edited, its applicant section turns amber with a Modified badge showing the version and how many times it was edited, and History lists every version with who changed what, when and why. Any version can be restored. The same editing works after the case is decided, from the verification's own page; see Editing applicant data for what changes once a decision has been made.

Deciding

Approve or reject, then write the outcome.

Start from a saved reason, or from scratch. Saved reasons come from Reason templates, and one of them can be preselected for this decision. Picking one inserts its text, which you are then free to edit. What you send is what is in the box.

Decide whether the applicant gets an explanation. The toggle is off by default, and with it off the email says the outcome and nothing more.

Check the language. It defaults to the flow's default language, or to the language the applicant used. If the flow has no default you have to choose one before the decision can be recorded, because nobody should receive an outcome in a language they did not use.

Check who it comes from. The delivery panel names the address the email leaves from. If you have registered and verified your own mailbox, it is yours. If not, applicants hear from the shared sender, and the panel tells you so.

Confirm. Approving records an approve verdict, closes the case and marks the verification approved. Rejecting closes it too, and the applicant has to start a new verification.

Write to them, not about them

The message goes to a person who is trying to use your service and has just been told no. Say what happened and what they can do next. An internal shorthand pasted into an applicant email is the single most common cause of a support ticket about a rejection.

If nothing will be emailed, because there is no address and no sender, the console says so before you confirm. The decision is still recorded and still reaches your webhook endpoints.

Escalating

When you honestly cannot decide, escalate instead of guessing. You say why, optionally recommend what you would do, and optionally mark what you were able to check. It goes to an owner or a review manager, who is notified.

Your recommendation is an opinion, not the outcome. Whoever takes it still decides, and they can return the case to you with a note saying what to look at.

Escalating and resolving somebody else's escalation are separate permissions on purpose, so nobody resolves their own.

When you cannot decide

If your role can read the queue but not decide, the console says so and the buttons are disabled. Ask an owner. If your seat cannot see applicant details on a case, it says that too: deciding without seeing who it is would be guesswork, so the two normally travel together.

Retiring cases you will never work

Some cases are never going to be decided. A flow you have retired, a backlog that came across when you migrated, applicants who moved on months ago. Approving or rejecting them would be dishonest, because nobody assessed them, and rejecting in particular would overwrite the status each record already carries and tell those people they failed a check that was never run.

Retiring takes those cases off the queue without deciding them. It is available to owners and review managers, and it is a separate permission from deciding, so a reviewer who works your queue every day never sees it.

Retiring records no outcome. Each verification keeps the status and result it already had and stays in your verification records in full, with its checks, its documents and its extracted details. No applicant is emailed, no webhook is sent, and nothing is deleted.

There are two ways to do it. Ticking cases in the queue gives you Retire in the bar that appears with the selection, for a handful you have looked at. Choosing a flow in the filters gives you Retire every open case on this flow, which is the one to use for a migrated backlog: naming the flow is the selection, and there is deliberately no way to say "everything in the queue".

Either way the console tells you how many cases will go before you confirm, and how many are left afterwards. Large backlogs are cleared several hundred at a time, so if the message says cases remain, run it again.

A retired case is not closed forever. It carries no decision, so if the answer ever arrives, from a platform you migrated from or from anyone else settling it, that real decision still lands on the record. What retiring removes is the demand on your reviewers' attention, not the case itself.

Cases somebody has escalated are left alone. An escalation is a colleague waiting on an answer, and those want a person rather than a bulk action.

Cases decided without you

Your organization can switch on automatic decisions, which settle cases at or beyond the score thresholds you set and leave everything in between for your reviewers. A case with any failed check is never approved automatically. Those decisions are real, so applicants and your webhooks are notified, and each case shows it was decided automatically. It is off unless you turn it on, and it lives on the Team page.

On this page