Match and Normalize Values Across Two Fields Using Data Logic

Use this article to standardize inconsistent free-text values into clean, structured categories using Data Logic — configuring a Blueprint that matches values in one field and writes a normalized result to another, with a Deal/Opportunity Loss Reason example that walks through picking a Blueprint, mapping inputs and outputs, filtering records, and previewing changes before updating your CRM.

data-monster-tennis-match.png

Free-text fields often collect the same underlying value in inconsistent ways — different reps, different integrations, and different manual entries all produce their own variations of what should really be a single, consistent value. When that happens, it becomes difficult to filter, report on, or route records reliably, because the CRM sees each variation as a distinct value rather than recognizing that they all mean the same thing.

Insycle's Data Logic module solves this by matching values in one field against a Blueprint — a lookup table you configure once — and writing a clean, standardized value to a separate field whenever a match is found. Instead of manually reconciling inconsistent values after the fact, Data Logic evaluates your records and applies your normalization rules automatically.

For example, Deal and Opportunity records often capture a loss reason as free text, entered by the rep who closed the deal. The same underlying reason ends up recorded a dozen different ways — "lost to competitor," "went with another vendor," "chose Competitor X" — which makes it difficult to run reliable win/loss reporting or spot patterns across your pipeline.

This article walks through building a Blueprint that normalizes Loss Reason values on Deal or Opportunity records into a consistent Loss Reason Category, using Contains matching to catch the many ways the same reason gets written.

Process Summary

  1. Pick the Blueprint that defines your normalization logic. 
  2. Map the input column that tells Data Logic how to match records against the Blueprint. 
  3. Map the output column that tells Data Logic what to update when a match is found. 
  4. Filter the records Data Logic evaluates. 
  5. Preview the changes, then apply them to your CRM records.

 

Step-by-Step Instructions

Step 1: Pick a Blueprint 

  1. Navigate to Data Management > Data Logic, then select your Deal or Opportunity object type.

  2. Under 1. Pick Blueprint, select Select Existing, then choose the Blueprint you created for loss reason normalization from the dropdown.

    data-logic-pick-blueprint-select-existing-deal-loss-reason-646w.png

    The image above shows the 1. Pick Blueprint step in Data Logic with Select Existing chosen as the source and the Deal Loss Reason Normalization Blueprint selected from the dropdown.

  3. Alternatively, if you haven't yet created your Blueprint under Operations > Blueprints, you can upload it directly from within Data Logic. 

    1. Under 1. Pick Blueprint, select Create from CSV.

    2. Click Upload and select your CSV file. This creates a new Blueprint without leaving the Data Logic module, and makes it available for reuse under Operations > Blueprints going forward.

  4. Once a Blueprint is selected, a Preview icon appears beside the Blueprint field. Click it to open the Blueprint Preview popup and confirm the table data before proceeding to input and output mapping. 

    data-logic-blueprint-preview-deal-loss-reason-normalization-646w.png

    The image above shows the Blueprint Preview popup for the Deal Loss Reason Normalization Blueprint, displaying the Loss Reason (Contains) and Loss Reason Category (Always) columns with six configured rows.

Step 2: Map Input Columns to Define How Records Are Matched

Note: Some CRM fields referenced in this Blueprint, such as Loss Reason and Loss Reason Category, may not exist by default in your CRM and may need to be created as custom fields before configuring your input and output mapping.

Click 2. Input Mapping of the Data Logic module, and configure the following fields:

  • Blueprint Column — select Loss Reason (Contains).
  • CRM Field — select your CRM's Loss Reason field.
  • Matching Criteria — select Contains. This tells Data Logic to match records where the Loss Reason field contains the Blueprint value anywhere within it, so a value like "Lost to competitor after final demo" still matches on "competitor."
  • Match Option — select Case Insensitive. Since this is a free-text field entered by reps, values like "Competitor," "competitor," and "COMPETITOR" would all need to match your Blueprint's "competitor" value. Without Case Insensitive enabled, Contains matching is case-sensitive by default, so casing inconsistencies would cause otherwise-matching records to be skipped.
data-logic-input-mapping-deal-loss-reason-646w.png

The image above shows the 2. Input Mapping step in Data Logic, with Loss Reason (Contains) mapped to the CRM Loss Reason field using Contains matching criteria and the Case Insensitive match option.

  Note: If a Loss Reason value could reasonably match more than one row — for example, "Lost to a competitor over budget concerns" — row order determines which category is applied, since Data Logic uses the first matching row. Order your rows from most to least specific. For a full explanation of row order and precedence, see Row Order in the Blueprints article.

Step 3: Map Output Columns to Define What Gets Updated

Click 3. Output Mapping of the Data Logic module, and configure the following fields:

  • Blueprint Column — select Loss Reason Category (Always).
  • CRM Field — select your CRM's Loss Reason Category field.
  • Update Condition — select Always. This tells Data Logic to write the normalized category to the field for every matching record, keeping the classification current if the Blueprint is later updated.
data-logic-output-mapping-deal-loss-reason-646w.png

The image above shows the 3. Output Mapping step in Data Logic, with Loss Reason Category (Always) mapped to the CRM Loss Reason Category field using the Always update condition.

Step 4: Filter Records to Evaluate

  1. Click 4. Filter Records of the Data Logic module.
  2. Configure the filter to limit Data Logic to Closed Lost deals or opportunities:
    • Field — select Deal Stage
    • Condition — select any of 
    • Value — select Closed Lost
  3. After configuring your filter, click Search to see which records currently match. The results appear below in a paginated list, showing the CRM fields relevant to this Blueprint — including Loss Reason, Loss Reason Category, and Deal Name — so you can confirm the filter is scoping to the correct records before moving on to Preview and Update in Step 5. If you adjust the filter, click Search again to refresh the results.

This ensures that Data Logic only evaluates deals or opportunities that have actually been marked Closed Lost, rather than checking the Loss Reason field on open or won deals where it wouldn't be populated.

data-logic-filter-deal-stage-closed-lost-646w.png

The image above shows the 4. Filter Records step in Data Logic with one filter configured for Deal Stage any of Closed Lost, and the matching record list below showing three deals displaying their Loss Reason, Loss Reason Category, and Deal Name field values.

Step 5: Preview Changes and Update the CRM

  1. Once your input mapping, output mapping, and filters are configured, click Review at the bottom of the Data Logic module.
  2. Select Preview to simulate the operation without making any changes to your CRM. This shows which records would be updated and what values would be written, so you can confirm the results before committing. 
  3. Review the Preview CSV sent to your email to confirm that the Loss Reason Category is being written correctly for the deals or opportunities you expect to match.
  4. Once you've confirmed the results look correct, click Review again and select Update to apply the changes directly to your CRM.
⚠️ Update mode applies changes directly to your CRM. Run in Preview mode first to confirm the results before committing changes.
data-logic-run-update-mode-646w.png

The image above shows the Run step in the Data Logic module with Update mode selected.

Once you're satisfied with the results, save your configuration as a template and set up automation to keep CRM fields consistent as new records come in and existing records change over time.

Additional Resources

Frequently Asked Questions

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

Related Help Articles

Related Blog Posts