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 | Type | Required | Description |
|---|---|---|---|
| Source A | select | Yes | One of the two records being compared, chosen from the upstream nodes connected to this node |
| Source B | select | Yes | The other record being compared, chosen from the upstream nodes connected to this node |
| Field rules | rule editor | No | Per-field comparisons between Source A and Source B (see below) |
| Compare line items | toggle | No | Enable row-by-row comparison of two arrays (see below) |
| Carry forward | select | Yes | Which 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:| Column | Description |
|---|---|
| Source A | A field reference, for example {{total}}, relative to the chosen Source A |
| Source B | The matching field reference, relative to the chosen Source B |
| Compare | The comparison method (see below) |
| Severity | Block or Warn (see below) |
| Tolerance | Shown only for numeric tolerance comparisons |
Comparison methods
| Method | Behavior |
|---|---|
| Exact | The 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 equals | The two values must be the same calendar date |
| Normalized text | The two text values must match ignoring case and extra spacing |
- Number gives Exact plus the two numeric tolerances.
- String gives Exact, Normalized text, and Date equals.
- Boolean gives Exact only.
Severity
| Severity | Behavior |
|---|---|
| Block | A blocking mismatch that stops auto-approval and needs review |
| Warn | Recorded 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.| Field | Required | Description |
|---|---|---|
| Source A array path | Yes | The array to compare on Source A, for example {{line_items}} |
| Source B array path | Yes | The array to compare on Source B, for example {{line_items}} |
| Row matching | Yes | By 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 rows | Yes | The severity for a row present on one source with no match on the other |
| Column rules | Yes | At 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 ametadata.reconciliation object:
| Field | Type | Description |
|---|---|---|
overallMatch | boolean | true when there are no blocking mismatches |
blockMismatchCount | number | The number of blocking mismatches found |
warnMismatchCount | number | The number of warning mismatches found |
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 inmetadata.
Common pitfalls
A reconcile node with no rules always auto-approves
A reconcile node with no rules always auto-approves
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.
Numeric tolerance with a blank or zero tolerance
Numeric tolerance with a blank or zero tolerance
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.Compare line items enabled with no column rule
Compare line items enabled with no column rule
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.
Reconcile mismatch on a Review node with no Reconcile predecessor
Reconcile mismatch on a Review node with no Reconcile predecessor
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.
Related
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