Skip to main content
The reconcile node compares two upstream sources (Source A and Source B) value by value and records the differences, so you can catch where an extracted document disagrees with an external system (or a second extraction) before the data is delivered.

When to use reconcile

  • Compare extracted invoice or PO data against an external system of record, fetched via a connector or HTTP action.
  • Cross-check two extractions of the same document against each other.
  • Gate runs to pause for review only when the two sources disagree out of tolerance. Pair this node with a downstream Review node.
Reconcile needs two upstream sources connected to it. Connect both records you want to compare before configuring the node.

Configuration

FieldTypeRequiredDescription
Source AselectYesOne of the two records being compared, chosen from the upstream nodes connected to this node
Source BselectYesThe other record being compared, chosen from the upstream nodes connected to this node
Field rulesrule editorNoPer-field comparisons between Source A and Source B (see below)
Compare line itemstoggleNoEnable row-by-row comparison of two arrays (see below)
Carry forwardselectYesWhich source becomes the step output that flows downstream

Field rules

Each rule compares a single value on Source A against the matching value on Source B. The rule editor has these columns:
ColumnDescription
Source AA field reference, for example {{total}}, relative to the chosen Source A
Source BThe matching field reference, relative to the chosen Source B
CompareThe comparison method (see below)
SeverityBlock or Warn (see below)
ToleranceShown only for numeric tolerance comparisons
The editor validates that the referenced paths exist on the chosen source and that the two sides resolve to the same type.

Comparison methods

MethodBehavior
ExactThe two values must match exactly
Numeric tolerance (%)The two numbers must be within a percentage of each other. Requires a positive tolerance
Numeric tolerance (absolute)The two numbers must be within a fixed amount of each other. Requires a positive tolerance
Date equalsThe two values must be the same calendar date
Normalized textThe two text values must match ignoring case and extra spacing
The methods offered depend on the field type:
  • Number gives Exact plus the two numeric tolerances.
  • String gives Exact, Normalized text, and Date equals.
  • Boolean gives Exact only.

Severity

SeverityBehavior
BlockA blocking mismatch that stops auto-approval and needs review
WarnRecorded as a warning but still auto-approves

Compare line items

Enable Compare line items to match rows between two arrays (for example line items) and compare columns within each matched row.
FieldRequiredDescription
Source A array pathYesThe array to compare on Source A, for example {{line_items}}
Source B array pathYesThe array to compare on Source B, for example {{line_items}}
Row matchingYesBy key matches rows that share a key value such as a SKU, in any order (configure one or more key field pairs). By position pairs rows by their order in each list
Severity for unmatched rowsYesThe severity for a row present on one source with no match on the other
Column rulesYesAt least one column rule is required when line items are enabled. Each column rule uses the same Source A, Source B, Compare, Severity, and Tolerance shape as field rules

Carry forward

Choose Source A or Source B. The chosen source becomes the step output that flows downstream, while the other source is the record written back to.

Output

The output is the carried-forward source payload plus a metadata.reconciliation object:
FieldTypeDescription
overallMatchbooleantrue when there are no blocking mismatches
blockMismatchCountnumberThe number of blocking mismatches found
warnMismatchCountnumberThe number of warning mismatches found
The node auto-approves when there are no blocking mismatches.

Routing mismatches to review

To pause only the runs that disagree out of tolerance, add a Review node after Reconcile and set its pause mode to Reconcile mismatch. Runs whose reconciliation result has no blocking mismatches continue automatically; only runs with out-of-tolerance results pause for a reviewer.

Inputs and outputs

Allowed inputs: Reconcile requires two upstream sources. Output: The carried-forward payload with the reconciliation result in metadata.

Common pitfalls

With no field rules and no line-item column rules, there is nothing to compare, so every run auto-approves. The editor requires at least one field rule or line-item column rule before you can save.
A numeric tolerance of blank or 0 collapses to an exact match, which is almost never what you want for amounts. The editor rejects a numeric tolerance comparison without a positive tolerance.
Turning on Compare line items without adding a column rule compares nothing inside the matched rows. At least one column rule is now required when line items are enabled.
The Reconcile mismatch pause mode only fires when a Reconcile node sits upstream of the Review node. The editor hides or rejects this pause mode when no Reconcile predecessor is connected.

Review action

Pause for review when sources disagree

Extract action

Extract structured data before reconciling

HTTP action

Fetch a system of record to compare against

Validation

Validate data with rules before delivery