Company records often sit in the CRM without a region, owner, or sales tier assigned — or get assigned incorrectly when a rep manually enters the data. The Territory Assignment Example Blueprint assigns territory fields automatically based on a company's country, state, and industry, so records are routed correctly the moment they enter the system or when their location changes.
How this Blueprint Works
The Territory Assignment Example Blueprint (pictured above) matches records by evaluating country, state, and industry together, in three tiers of specificity. Rows combining all three inputs are evaluated first, followed by rows combining country and state only, and then rows matching on country alone. This ensures that a California technology company matches its specific row before a broader California row or a general US row is evaluated. Any record whose country isn't matched by an earlier row falls through to a catch-all row at the bottom of the Blueprint — called a Fallback Row — where every input cell is left blank. When a match is found, Data Logic writes region, territory owner, sales tier, and segment to the record.
- Match on country and state together — The Country (Exact) and State (Exact) columns match records by their country and state values, each of which must be satisfied simultaneously with any other inputs in that row. Rows that leave either column blank — such as the country-level rows and the catch-all row at the bottom of the Blueprint — treat that blank cell as a wildcard for that column, matching any value in the corresponding CRM field rather than requiring it to be empty. This behavior is enabled in Data Logic's input mapping, covered in the Data Logic Configuration section below.
- Match on industry within a territory — The Industry (Contains) column further qualifies rows where industry is relevant, so a California tech company matches a different row than a California finance company. Rows that leave Industry blank — such as the state-level rows and the country-only rows — treat that blank cell as a wildcard for that column, matching any industry value in the corresponding CRM field. This behavior is enabled in Data Logic's input mapping, covered in the Data Logic Configuration section below.
- Write Sales Tier on Every Match — The Sales Tier (Always) column updates that field on every matching record, regardless of existing values, keeping tier assignments current as account profiles change.
- Protect Manually Assigned Regions — The Region (Field Empty) column preserves any CRM field value already set in a record's Region field. How this is enforced is covered in the Data Logic Configuration section below.
- Protect existing territory owner assignments — The Territory Owner (Field Empty) column preserves any CRM field value already set in a record's Territory Owner field. How this is enforced is covered in the Data Logic Configuration section below.
- Write segment only when the Blueprint row contains a value — The Segment (Output Non-Empty) column updates the segment field only when the matching Blueprint row contains a segment value, so rows without a segment— such as the state-level rows for California, New York, and Texas, or any of the country-only rows — do not erase an existing CRM field value on the record.
Blueprint Row Walkthrough
The Blueprint Preview pictured above shows all 16 rows of the Territory Assignment example.
Rows 2–4: Country, State, and Industry
The most specific rows combine all three input dimensions. Row 2 matches US companies in California with Technology in their industry, assigning AMER-West, west-ae@company.com as owner, Enterprise tier, and the Tech segment. Row 3 matches US companies in New York with Financial Services in their industry, assigning AMER-East, east-ae@company.com, Enterprise tier, and the FinServ segment. Row 4 matches US companies in Texas with Energy in their industry, assigning AMER-Central, central-ae@company.com, Mid-Market tier, and the Energy segment.
Rows 5–7: Country and State, Any Industry
These rows catch companies in the same three states, without restricting by industry, and include companies that didn't match the more specific row above them. Row 5 matches any US company in California, row 6 matches any US company in New York, and row 7 matches any US company in Texas — each assigns the same region and owner as its more specific counterpart above, but Mid-Market tier and no segment value.
Rows 8–15: Country Only
Country-level rows catch any company not matched by a more specific row above. Each row leaves State and Industry blank, treating those columns as wildcards and matching any value in the corresponding CRM fields. This behavior is configured in Data Logic's input mapping, covered in the Data Logic Configuration section below.
- Row 8 is the US country-level catch-all, matching any US company not caught by rows 2–7 — for example, a company in Florida or Ohio. It assigns AMER, amer-pool@company.com as owner, and SMB tier, with no segment.
- Rows 9–11 are country-level rows for the UK, Germany, and France, each assigning EMEA, emea-ae@company.com as owner, and Mid-Market tier, with no segment.
- Row 12 matches Canada, assigning AMER rather than EMEA — Canada routes to the same region as the US, with amer-pool@company.com as owner and Mid-Market tier.
- Rows 13–15 are country-level rows for Australia, Japan, and Singapore, all of which assign APAC and apac-ae@company.com as owner. Tier varies by country: Australia and Singapore receive Mid-Market tier, while Japan receives Enterprise tier.
Row 16: Fallback Row
Row 16 is the Blueprint's Fallback Row. With Blank Cell Matches Any enabled on Country, State, and Industry, every input cell in this row acts as a wildcard, so it catches any record whose country wasn't matched by an earlier row. It assigns Region = Unassigned, unassigned-pool@company.com as owner, and Review tier, making unmatched records immediately visible rather than left blank.
Data Logic Configuration
To configure the input mapping in the Data Integrity > Data Logic module, select the object type, then select the example Blueprint under Explore Examples, and then under 2. Input Mapping, add the following:
- Blueprint column Country (Exact) maps to CRM field Country using Exact matching criteria, with Case Insensitive, Blank Cell Matches Any, and Trim Whitespace enabled.
- Blueprint column State (Exact) maps to CRM field State using Exact matching criteria, with Case Insensitive, Blank Cell Matches Any, and Trim Whitespace enabled.
- Blueprint column Industry (Contains) maps to CRM field Industry using Contains matching criteria, with Case Insensitive, Blank Cell Matches Any, and Trim Whitespace enabled.
To configure the output mapping, under 3. Output Mapping, add the following:
- Blueprint column Region (Field Empty) maps to CRM field Region with update condition Field Empty.
- Blueprint column Territory Owner (Field Empty) maps to CRM field Territory Owner with update condition Field Empty.
- Blueprint column Sales Tier (Always) maps to CRM field Sales Tier with update condition Always.
- Blueprint column Segment (Output Non-Empty) maps to CRM field Segment with update condition Output Non-Empty.
Using an Example or Reference Blueprint as a Starting Point
Example and reference Blueprints are available directly in the Data Logic module under:
- 1. Pick Blueprint > Explore Examples or
- 1. Pick Blueprint > Use Reference Data
Rather than building a Blueprint from scratch, you can use either as a starting point and tailor it to match your specific field values, scoring criteria, or business rules.
To use an example or reference Blueprint as a starting point:
- In Data Integrity > Data Logic, under 1. Pick Blueprint, select Explore Examples, or Use Reference Data.
- Select the Blueprint you want to use. Click the Preview icon to review the table structure and column values before proceeding.
- In the Blueprint Preview, click Download to save the Blueprint as a CSV file.
- Open the CSV file and tailor the values to match your CRM data — update field values, scoring ranges, date ranges, owner assignments, or any other values specific to your business.
- When your CSV is ready, navigate to Data Integrity > Blueprints and upload it as a new Blueprint.
- Return to Data Integrity > Data Logic, select your uploaded Blueprint under 1. Pick Blueprint > Select Existing, and configure your input and output mapping.
Note: Some CRM fields referenced in the example or reference Blueprints may not exist by default in your CRM and will need to be created as custom fields before configuring your input and output mapping.
If no Blueprint row matches a record, Data Logic applies the fallback values configured in your output mapping rather than leaving those fields empty. When tailoring a Blueprint, consider what default state non-matching records should receive and configure fallback values in your output mapping accordingly. For more information, see What Happens When a Record Does Not Match Any Blueprint Row? in the FAQ article.
Frequently Asked Questions
What happens if I leave an input cell empty in my Blueprint?
By default, 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 Is there a way to mark a cell as a wildcard instead of leaving it blank? below.
- Using Exact Matching Criteria, 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.
- Using any other Matching Criteria (Contains, Starts With, Ends With, Regex, numeric/date comparisons), unless the Blank Cell Matches Any Match Option is enabled on that input column, an empty Blueprint cell will never match any record. Therefore, that Blueprint row can never be satisfied by any record, rendering it unusable.
This is the pattern 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) should not have Blank Cell Matches Any enabled, so the 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.
The Territory Assignment Blueprint, covered earlier in this article, requires the Blank Cell Matches Any match option on all three input columns — Country, State, and Industry — rather than relying on each column's default empty-cell behavior. Country and State use Exact matching, where a blank cell would otherwise match only records with an empty CRM field; Industry uses Contains, where a blank cell would otherwise be permanently unmatchable. Enabling the override on all three means that a blank cell in any of them acts as a wildcard, which allows the state-level and country-level rows to apply broadly. See, I want a row to apply broadly without restricting by a particular field. Can I leave that cell empty? below for how that override works.
What happens with an empty cell under Exact matching?
Unless the Blank Cell Matches Any match option is set in the Input Mapping, blank cells in a Blueprint input column, under any matching criteria other than Exact, block the Blueprint row from matching any CRM data — the blank Blueprint cells are not simply skipped/ignored. This applies to all other matching 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 their Lead Source value.
The Territory Assignment Blueprint also uses Exact matching on its Country and State columns, but overrides this default with the Blank Cell Matches Any Match Option on both — see I want a row to apply broadly without restricting by a particular field. Can I leave that cell empty? below for how that override changes the behavior described here.
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 their Lead Source value.
I want a 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.
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 will match based only on the columns that are mapped.
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. This is the pattern used in the Territory Assignment Blueprint, where Country, State, and Industry all have Blank Cell Matches Any enabled: rows that specify a state or industry match only companies meeting that condition, while rows that leave a column blank apply broadly across that dimension.
Is there a way to mark a cell as a wildcard instead of leaving it blank?
Yes. The 'Blank Cell Matches Any' Match Option provides a dedicated, intentional way to mark a cell as a wildcard. When enabled on an input column, a blank cell in that column matches any value in the corresponding CRM field, regardless of Matching Criteria — distinct from the default empty-cell behavior described above, which depends on whether the column uses Exact matching or another criteria. See How does 'Blank Cell Matches Any' Match Option affect row matching? in the Data Logic & Blueprints FAQs for full details.
When Blank Cell Matches Any is enabled on every input column in a row, and that row is placed last in the Blueprint, it becomes a Fallback Row — see Fallback Row vs. Fallback Value, in the Module Overview, for when to use this pattern instead of a Data Logic fallback 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.