Skip to main content

Identity comparison

Compares identity details from two different sources

Ensures the identity information collected from different steps or documents refers to the same person, improving decision accuracy. This page covers both versions of the Identity comparison step:

  • BASIC_IDENTITY_COMPARISON:v1 — stable; operands configured in options.
  • BASIC_IDENTITY_COMPARISON:v2 (preview) — operands wired via inputMapping.

Both versions are supported; v1 is not deprecated. Use v2 for new flows that need to disambiguate two BasicIdentity sources via named input slots.


Key features

  • Dual source comparison: Compares identity data from two distinct BasicIdentity data blocks.
  • Configurable attributes: Allows selection of specific attributes to compare (givenName, familyName, name, birthDate, birthPlace).
  • Dual comparison modes: Supports both strict and tolerant comparison modes.
  • ComparisonResults output: Produces a ComparisonResults data block with a detailed verdict and traceability on all routes.

Configuration

BASIC_IDENTITY_COMPARISON:v1

OptionTypeRequiredDescription
leftOperandstringYesThe id of the step that produced the first BasicIdentity data block.
rightOperandstringYesThe id of the step that produced the second BasicIdentity data block. Must differ from leftOperand.
attributesarrayYesBasicIdentity attribute names to compare (e.g. familyName, givenName, birthDate). At least one required.
modeenumYesComparison mode: 'strict' or 'tolerant'. See Comparison mode details.

BASIC_IDENTITY_COMPARISON:v2

Preview

BASIC_IDENTITY_COMPARISON:v2 is available as a preview. BASIC_IDENTITY_COMPARISON:v1 remains the stable version.

In v2, the operand steps are wired via inputMapping rather than options, allowing the workflow engine to resolve and validate the data flow at publish time.

OptionTypeRequiredDescription
attributesarrayYesBasicIdentity attribute names to compare (e.g. familyName, givenName, birthDate). At least one required.
modeenumYesComparison mode: 'strict' or 'tolerant'. See Comparison mode details.

Both leftOperand and rightOperand input slots must be wired using inputMapping as step ID strings:

"inputMapping": {
"leftOperand": "doc-id-step",
"rightOperand": "eids-step"
}

The workflow engine validates at publish time that the referenced steps are reachable and each produces a BasicIdentity data block.

Comparison mode details

ModeName comparisonDate comparison
strictAll words from both names must have a "close enough" match.Dates must be exactly equal.
tolerantAt least one word from the first name must have a "close enough" match in the second name.Year and month must match; day is ignored.

Input data blocks

BASIC_IDENTITY_COMPARISON:v1

The flow validation system ensures the steps referenced by leftOperand and rightOperand are reachable and each produces a BasicIdentity data block.

Data blockRequiredDescription
BasicIdentityYesFirst identity source (from the leftOperand step).
BasicIdentityYesSecond identity source (from the rightOperand step).

BASIC_IDENTITY_COMPARISON:v2

Slot aliasData blockRequiredDescription
leftOperandBasicIdentityYesFirst identity source — wired via inputMapping.
rightOperandBasicIdentityYesSecond identity source — wired via inputMapping.

Comparison logic

The step produces an internal ComparisonVerdict recorded in the ComparisonResults data block. The flow exposes two routes — match and failure — so both noMatch and inconclusive verdicts route to failure.

Internal verdictRouteDescription
matchmatchAll specified attributes were successfully compared according to the configured mode, and all values matched.
noMatchfailureAt least one pair of compared attribute values did not match. Takes priority over inconclusive when both missing values and mismatches are present.
inconclusivefailureOne or more required attribute values are missing, making comparison impossible. No mismatches were detected among the available attributes.

Routes

RouteDescription
matchAll specified attributes were successfully compared according to the configured mode, and all values matched.
failureAt least one pair of compared attribute values did not match, or one or more required attribute values were missing (see Comparison logic).

Output data blocks

RouteData blocks producedNotes
matchComparisonResultsAll specified attributes matched between the two BasicIdentity sources.
failureComparisonResultsOne or more attributes did not match or were missing.

Example payloads

ComparisonResults — match

{
"dataBlockId": "01941a3c-0000-7000-8000-000000000001",
"type": "ComparisonResults",
"verdict": "match",
"leftOperand": "doc-id-step",
"rightOperand": "eid-step",
"attributesCompared": ["givenName", "familyName", "birthDate"],
"mismatchedAttributes": [],
"missingAttributes": []
}

ComparisonResults — failure (no match)

{
"dataBlockId": "01941a3c-0000-7000-8000-000000000002",
"type": "ComparisonResults",
"verdict": "noMatch",
"leftOperand": "doc-id-step",
"rightOperand": "eid-step",
"attributesCompared": ["givenName", "familyName", "birthDate"],
"mismatchedAttributes": ["familyName"],
"missingAttributes": []
}

ComparisonResults — failure (inconclusive)

{
"dataBlockId": "01941a3c-0000-7000-8000-000000000003",
"type": "ComparisonResults",
"verdict": "inconclusive",
"leftOperand": "doc-id-step",
"rightOperand": "eid-step",
"attributesCompared": ["givenName", "familyName", "birthDate"],
"mismatchedAttributes": [],
"missingAttributes": ["birthDate"]
}