Skip to main content
This node is in preview. Its behavior may change in future releases.
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

Field rules

Each rule compares a single value on Source A against the matching value on Source B. The rule editor has these columns: The editor validates that the referenced paths exist on the chosen source and that the two sides resolve to the same type.

Comparison methods

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

Compare line items

Enable Compare line items to match rows between two arrays (for example line items) and compare columns within each matched row.

Matching by key in priority order

By key (all fields) pairs two rows only when every key field matches. A row whose mark is right but whose width was read a millimetre off stays unmatched, even when it is obviously the same line. By key (in priority order) treats the key fields as a priority list, ordered by dragging them, and works down it:
  1. First it pairs every row that matches on all key fields. Anything the all-fields strategy would have found is still found here, so this strategy never pairs fewer rows.
  2. Then it retries the rows left over on fewer key fields, dropping the last one each round. With keys mark, width, height that means a round on mark + width, then a round on mark alone.
  3. In those later rounds it pairs two rows only when exactly one row is left on each side for that value. If two rows still share the same mark and one candidate is left, none of them pair.
So with keys mark then width, a document row mark A-12, width 1200 pairs with a record row mark A-12, width 1199 as long as A-12 is the only one left on each side. A pair made this way is a full pair: the widths disagreeing is not reported anywhere.
To have a field checked but not required for pairing, list it as a key field and add it as a column rule. Key fields are matched as exact text, while a column rule gives you a comparison type and a tolerance, so 1200 and 1200.00 can count as equal.

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: 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