How Blank Cells Are Evaluated in Blueprint Input and Output Columns

Use this article to understand what happens when a Blueprint cell is left blank, whether it's in an input or output column, and when the Blank Cell Matches Any Match Option is required to make it work as intended.

data-monster-relationships-connections.png

A Blueprint is a CSV-based table that defines the business logic that Insycle's Data Logic module applies to your CRM records. Blank cells in a Blueprint carry real meaning, and that meaning is different depending on whether the cell sits in an input column or an output column.

Blank Cells in Input Columns

How a blank cell behaves depends on the matching criteria configured for that column in Data Logic's Input Mapping:

  • Exact matching — a blank cell matches only records where the corresponding CRM field also has no value.
  • Any other matching criteria (Contains, Contains Word, Starts With, Ends With, Regex, or any numeric or date comparison) — a blank cell blocks the row from matching any CRM data. The blank Blueprint cell is not simply skipped or ignored — a row containing even one such blank cell can never be satisfied by any record and is permanently unusable.

Overriding the Default with Blank Cell Matches Any

The Blank Cell Matches Any Match Option changes this behavior. When enabled on an input column, a blank cell in that column acts as a genuine wildcard — matching any value in the corresponding CRM field, regardless of matching criteria. This is configured per input column in Data Logic's Input Mapping, not in the Blueprint CSV itself.

Other input columns in the same row are unaffected by this setting and still need to satisfy their own matching criteria independently.

When Blank Cell Matches Any is enabled on every input column in a row and that row is placed last in the Blueprint, the row becomes a fallback row—it catches every record not matched by an earlier row. See Fallback Row vs. Fallback Value in Designing a Blueprint CSV for the full comparison with the alternative approach.

Blank Cells in Output Columns

A blank cell in an output column behaves according to the update condition configured for that field in Data Logic's Output Mapping:

  • Always — The output field is updated on every match, regardless of its current value. A blank output cell writes an empty value, clearing whatever was there.
  • Field Empty — The output field updates only if it currently has no value. A blank output cell would write an empty value, but since this condition can only ever fire when the field is already empty, there's no observable change in practice.
  • Field Non-Empty — The output field updates only if it currently has a value. This condition is really two separate steps: a gate (does the CRM field currently have a value?) and a write (whatever the Blueprint row's output cell contains, once the gate is satisfied). The name describes the gate, not a promise about what gets written — a blank output cell still passes through the write step once the gate is open, and erases the existing value. This is a different mechanism from Output Non-Empty, which gates on the Blueprint cell instead of the CRM field.
  • Output Non-Empty — The output field updates only if the matching Blueprint row contains a value in that output column. A blank output cell skips the update entirely, leaving the existing value untouched — this is the one condition that protects a field from being cleared by a blank Blueprint cell.

Fields Serving as Both an Input and an Output

Blank cells behave independently depending on which role a field is playing. A CRM field mapped as an input column evaluates blank cells according to the input rules above; the same field mapped as an output column in the same Blueprint follows the output rules instead — one has no bearing on the other.

Examples in Practice

Two real example Blueprints illustrate how this plays out in practice.

ICP Scoring

This Blueprint scores accounts against an Ideal Customer Profile using Industry, Employee Count, Annual Revenue, and Technology stack, evaluated together in a single row.

Blueprint rows 4 through 6 leave Technology blank, matching on Industry, Employee Count, and Annual Revenue alone. Row 7 leaves both Industry and Annual Revenue blank, matching any company with fewer than 50 employees regardless of industry or revenue. Without Blank Cell Matches Any enabled on the relevant columns in the Data Logic module, none of these rows could ever match any record—Row 7 in particular would be permanently unusable, since two of its four input columns are blank.

data-logic-example-blueprint-icp-scoring-1089w.png

The image above shows a Blueprint Preview for ICP Scoring, illustrating the different-field AND pattern with sparse rows. Rows 2 and 3 populate all four input columns for a fully specific match. Rows 4 through 6 leave Technology blank, matching on Industry, Employee Count, and Annual Revenue alone. Row 7 leaves both Industry and Annual Revenue blank in addition to Technology, matching any company with 1-50 employees regardless of industry, revenue, or technology stack. ICP Score and ICP Tier are written on every matched row; ICP Flag is written only on Rows 2 through 5, since Field Empty only fires when the CRM field is currently blank; Disqualify Reason is written only on Row 7, since Field Non-Empty only fires when the CRM field already has a value, in this case overwriting it with "Already scored."

In the Data Logic module Input Mapping, Industry (Contains), Annual Revenue (Number Between), and Technology (Contains Word) all have Blank Cell Matches Any enabled. Employee Count (Number Between) does not, since every row in the Blueprint provides an employee count value — there's no row where it needs to act as a wildcard.

data-logic-input-mapping-icp-scoring-807w.png

The image above shows the Data Logic input mapping that applies the Blueprint pictured above. Industry (Contains), Annual Revenue (Number Between), and Technology (Contains Word) all have Blank Cell Matches Any enabled, allowing their blank cells in Rows 4 through 7 to act as wildcards rather than blocking those rows from matching. Employee Count (Number Between) has no Match Options enabled, since every row in the Blueprint provides an employee count value and never needs to treat that column as a wildcard.

Lead Source Harmonization

This Blueprint normalizes lead source values using three input columns — Lead Source (Contains), Lead Source Original (Exact), and Referrer Domain (Ends With) — where each row populates only one of the three, leaving the other two blank.

data-logic-example-blueprint-Lead-Source-Harmonization-1071w.png

The image above shows a Blueprint Preview for Lead Source Harmonization, illustrating the different-field AND pattern where every row is sparse rather than just one catch-all row at the bottom. Each row populates only one of the three input columns and leaves the other two blank — Rows 2, 3, 6, and 7 populate only Lead Source; Rows 4 and 5 populate only Referrer Domain; Row 8 populates only Lead Source Original. As long as Lead Source and Referrer Domain both have Blank Cell Matches Any enabled, their blank cells act as wildcards rather than blocking a row. Lead Source Original's blank cells behave differently: since it uses Exact matching with no override, its blank cells on Rows 2 through 7 already correctly match only records where that CRM field is also empty, which is why Row 8 populates it directly to catch the one case, a Direct source, that needs an exact value instead.

In the Data Logic module Input Mapping, Lead Source (Contains) and Referrer Domain (Ends With) both have Blank Cell Matches Any enabled, so a blank cell in either column acts as a wildcard rather than blocking the row — this is what allows rows 2 and 3 of the Blueprint to match on Lead Source alone, and rows 4 and 5 to match on Referrer Domain alone. Lead Source Original (Exact) does not have Blank Cell Matches Any enabled, since its default Exact behavior is already correct for this Blueprint: a blank cell in that column matches only records where the CRM field is also empty. 

Row 8 of the Blueprint, which populates Lead Source Original with "Direct," shows that column used deliberately for an exact-value match rather than left to its default blank behavior.

data-logic-input-mapping-lead-source-harmonization-794w.png

The image above shows the Data Logic input mapping that puts the Blueprint pictured above into effect. Lead Source (Contains) and Referrer Domain (Ends With) both have Blank Cell Matches Any enabled, letting their blank cells act as wildcards across the sparse rows shown above. Lead Source Original (Exact) has no Match Options enabled, since its default Exact behavior — a blank cell matching only an empty CRM field — is already the correct behavior for this column.

Blank Cells Behave Differently if Multiple Input Columns Map to the Same CRM Field

Both of the examples above map different CRM fields together, where blank cells block a row unless Blank Cell Matches Any is enabled. A separate pattern — mapping several input columns to the same CRM field — works the opposite way: blank cells in those Blueprint columns are skipped automatically, and enabling Blank Cell Matches Any on them actually breaks the pattern. 

See OR and AND Matching Patterns in a Blueprint in Designing a Blueprint CSV for the full comparison, with examples of both.

Frequently Asked Questions

What Happens When a Blueprint Input Cell Is Empty?

What happens if I leave an input cell empty in my Blueprint?

What happens when an input cell is left empty in a Blueprint depends on the matching criteria configured for that column in Data Logic. Empty cells behave differently under Exact matching versus all other criteria. This default behavior can be overridden per column using the Blank Cell Matches Any Match Option — see I want a row to apply broadly without restricting by a particular field. Can I leave that cell empty?.

Under Exact matching, an empty cell matches records where the corresponding CRM field also has no value — this is how a row with no input values can act as a catch-all for records missing data. Under any other criteria, an empty cell will never match any record; it's effectively inactive for that condition, and a Blueprint row containing a blank cell is permanently unusable unless Blank Cell Matches Any is enabled on that input column. 

This pattern is used throughout the Lead Source Harmonization Blueprint (pictured below): each row populates only one input column, leaving the others blank. For example, rows 2 and 3 populate only the Lead Source (Contains) column, leaving Lead Source Original (Exact) and Referrer Domain (Ends With) blank; rows 4 and 5 populate only Referrer Domain (Ends With), leaving Lead Source (Contains) and Lead Source Original (Exact) blank.

Lead Source (Contains) and Referrer Domain (Ends With) both require the Blank Cell Matches Any input mapping Match Option enabled, so a blank cell in either column acts as a wildcard rather than blocking the row — this is what allows rows 2 and 3 to match on Lead Source alone, and rows 4 and 5 to match on Referrer Domain alone. Lead Source Original (Exact) does not have Blank Cell Matches Any enabled, so its default Exact behavior applies: a blank cell in that column matches only records where the CRM field is also empty. Row 8, which populates Lead Source Original with "Direct," shows that column used deliberately for an exact-value match rather than left to its default blank behavior.

data-logic-example-blueprint-Lead-Source-Harmonization-1071w.png

What happens with an empty cell under Exact matching?

An empty cell under Exact matching causes Data Logic to match records whose corresponding CRM field is also empty. This is intentional — it lets you define specific outcomes for records that are missing data in a given field. In the Lead Source Harmonization Blueprint above, this is why a blank cell in the Lead Source Original (Exact) column would match records where the Lead Source Original CRM field has no value, rather than being skipped.

What happens with an empty cell under any other matching criteria?

By default, an empty cell under any matching criteria other than Exact will never match any record — it's effectively inactive for that condition, and a row containing one is permanently unusable unless Blank Cell Matches Any is enabled on that column. This applies to all other criteria: Contains, Contains Word, Starts With, Ends With, Regex, any numeric comparison, and any date comparison. The Lead Source Harmonization Blueprint above shows why this matters in practice: without Blank Cell Matches Any enabled on Referrer Domain (Ends With), rows 2 and 3 — which leave that column blank — could never match any record, regardless of the record's Lead Source CRM field value.

How does 'Blank Cell Matches Any' Match Option affect row matching?

By default, how a blank cell in a Blueprint input column is handled depends on the Matching Criteria configured for that column. With Exact matching, a blank cell matches only records where the corresponding CRM field is also empty. With any other criteria, a blank cell is skipped and places no condition on the record. With any other criteria — Contains, Starts With, Ends With, Regex, or a numeric or date comparison — a blank Blueprint input cell will never match any record; it is effectively inactive for that condition, and the Blueprint row containing the blank input cell is permanently unusable until the blank cell is resolved.

Enabling Blank Cell Matches Any on an input column changes this: a blank cell in that column matches any value in the corresponding CRM field, regardless of Matching Criteria, turning that column into a wildcard for that row. Other input columns in the same row are unaffected and still need to satisfy their own Matching Criteria.

When 'Blank Cell Matches Any' is enabled on all input columns, a row with every input cell left blank matches any record that reached it — this is called a fallback row. Placed as the last row in the Blueprint, it catches every record not matched by an earlier row. This makes it possible to build sparser Blueprints, where a single row applies broadly across one dimension — such as state or industry — while still requiring an exact match on another dimension — such as country — without needing a separate row for every combination of values.

I want a Blueprint row to apply broadly without restricting by a particular field. Can I leave that cell empty?

There are two ways to make a row apply broadly without restricting by a particular field, and they behave differently:

  1. If you want a column to never act as a condition anywhere in the Blueprint, omit that input column from the mapping entirely in Data Logic. Unmapped columns are not evaluated as conditions, so every row matches based only on the columns that are mapped.
     
  2. If you want some rows to ignore a column while other rows still use it for matching, map the column as usual and enable Blank Cell Matches Any on it. With this Match Option enabled, a blank cell in that column acts as a wildcard for that row only — rows that populate the column still match against it normally, while rows that leave it blank skip that condition.

Check out the Data Logic & Blueprints FAQs to find answers to other questions about creating, editing, and applying Data Logic and Blueprints.

Next Steps in Configuring Data Logic

With blank-cell behavior on the input side settled, the next step is configuring output mapping — including how blank cells behave on the output side, which follows a different set of rules. Continue to Configuring Data Logic Output Mapping.

This article covers one part of the Data Logic configuration. For details on the other settings available in the module, see these related articles:

Additional Resources

Related Help Articles