Face Verification
Face Verification runs server-side face checks with AWS Rekognition. One node, two operations you can combine: validating that a selfie contains a single clear face, and comparing the selfie against the photo on the ID document with a configurable similarity threshold. Unlike Liveness Verification it is synchronous — the result is immediate, with no microsite and no session.
Compare operations record a Verification (type face, provider aws) bound to the selected identity, so KYC queries it alongside liveness and signing. The node's response variable holds the verification ID (a string), never the raw provider response.
Configuration
| Option | Description |
|---|---|
operation | validate-selfie, compare-with-id, or both |
selfieImageVariable | Variable holding the selfie image (from an Ask File node) |
idImageVariable | Variable holding the ID document photo (compare operations) |
selectedIdentityKey | Identity the verification is bound to (compare operations) |
similarityThreshold | Minimum similarity percentage to pass (default 80) |
responseVariable | Where to store the verification ID |
storeInPackage | Create an audit record with operation, similarity and threshold |
testMode | Returns a passing result without calling AWS |
Reading the Images from a Variable
The selfie and the ID photo come from variables written earlier by Ask File nodes. A file variable holds either one file or a list of them (an Ask File with Multiple files turned on writes a list). The node resolves each image by the shape of the value, not by the type the variable was declared with, and it needs exactly one file per image:
- One file. The node uses it.
- A list of files. The node uses only the first one and leaves a warning notice on the conversation: "The variable X holds N files; node conversational-face-verification only uses the first one. Turn off multipleFiles in the ask-file that writes it, or read the files with a node that accepts several."
- No file. The variable is empty or does not exist. The node leaves a warning notice naming the image it could not read ("The variable X has no file, so node conversational-face-verification has no selfie to read...") and exits through Error. The same happens with the ID image when the operation compares.
- Expired link. Files captured by Ask File are signed links that expire 60 minutes after capture. The node renews an expired link on its own; only when the renewal fails twice does it leave an error-level notice ("The file URL expired and could not be renewed. Ask the customer for the file again, or run the node closer to the ask-file that captures it.") and exit through Error.
The publish gate anticipates the first two cases: the flow does not publish when the selfie or ID field points at a variable that holds a list — written by an Ask File with Multiple files, an Extract Information with per-file results, or an attachments capture stored in an array variable — or at a variable that does not exist or is not a file type. It also refuses to publish when the selfie variable is empty, or the ID variable is empty and the operation compares. See Publish Gate.
Output Handles
| Handle | When |
|---|---|
| Success | All requested checks passed |
| Error | A failed or rejected check, unreadable or missing images, or configuration errors |
Things to Know
Rejected routes through Error. A comparison below the threshold records a rejected verification and takes the Error handle, leaving a warning notice with the reason (for example similarity 72.3 below threshold 80) and the suggestion to connect the Error branch to a step that asks for the photos again or hands the case to an agent. A provider error, in contrast, leaves an error-level notice: nothing in the flow causes it and the step has to be retried once the provider recovers.
The identity must exist for compare operations. The node looks up the identity selected in selectedIdentityKey on the customer of the conversation. If the customer has no identity with that key, the node leaves a warning notice naming it and exits through Error. Run Login or Create Borrower — and the node that creates the identity — before this one.
Collect the images first. Use Ask File nodes earlier in the flow to capture the selfie and the ID photo into variables, with Multiple files turned off.
Store in Package records the result, not the photos. The audit record holds the operation, the similarity, the threshold and the verification ID. The images stay where Ask File put them.
No Uanataca equivalent. Selfie-versus-document comparison is a new capability; it does not replace liveness, it complements it.