Skip to main content

Overview

Data normalization helps you maintain clean, consistent contact data across your organization. By mapping inconsistent source values (like “US”, “United States”, “USA”, and “U.S.A.”) to a single standardized target, you ensure reliable reporting, accurate audience segmentation, and effective personalization - without manual data cleanup.
Key Concepts
  • Source field: The contact field containing raw, inconsistent data (e.g., country).
  • Output field: The contact field where normalized values are written. This can be the same as the source field (overwrite), or a different field.
  • Normalized value: A clean, standardized value that one or more source values map to (e.g., “United States”).
  • Source value: A raw value from your data that maps to a normalized value (e.g., “US”, “USA”, “U.S.A.”). Source values are case-insensitive. “usa” and “USA” are treated as the same value. Click the Tt icon to view all case variants in your data.
  • Unmapped values: Source values that have not yet been assigned to any normalized value. Unmapped values are kept as-is, their original value is preserved unchanged
  • Backfill: Applying normalization to existing historical records, not just new incoming data.
Normalization is available for contact fields only. Within the contact entity, only string fields can be normalized.Certain default fields are restricted from normalization, including email, id, first_name, and last_name. Other default string fields like company_name and title are eligible.Navigate to Database → Data Normalization → Available Fields to see which fields are eligible. Fields that cannot be normalized display an explanation of why.Available Fields tab listing contact string fields eligible for normalization
  1. Navigate to Database → Data Normalization → Available Fields.
  2. Click Normalize next to the field you want to configure.
  3. Configure how the AI-powered mapping engine should generate initial mappings. Both options below are optional, can be used independently or together, and the combined input must stay under 10,000 characters.
    • Let AI decide: Provide optional instructions to guide the AI (e.g., “Use 2 letter ISO codes for Country”). The AI analyzes your instructions alongside the existing source values and suggests groupings. If you don’t provide instructions, the AI generates mappings based on patterns in your data.
    • Use my own list: Provide your own target normalized values by typing or pasting them directly, or by uploading a CSV file (max 3 MB). If the source field has a linked Salesforce picklist, the picklist values are automatically loaded as your target list. The AI then maps your source values to the values in your list.
    You can use both at the same time, for example, provide a list of target values and add instructions for how the AI should handle edge cases. Mapping Guidance step with Let AI decide instructions and Use my own list options
  4. Click Generate Mappings to run the AI mapping.
AI mapping is non-deterministic. If you are not happy with the initial results, go back, refine your prompt or list, and generate again.
For fields with a large number of unique values, AI mapping may take longer to process. If you have a high-cardinality fields above 10,000 values, reach out to your Customer Success team, and they can help you plan the best approach and involve the Inflection team if needed.
After the AI generates mappings, review the results. The screen shows:
  • A table of normalized values (left column) with their source values (right column), each showing a record count
  • An Unmapped Values section at the bottom showing source values the AI could not confidently assign
  • A header showing total unique values, total records, and a count of values still to review

Review and approve mappings

Each normalized value group shows a count of values “to review”. These are AI-generated mappings that you haven’t yet confirmed. Click Approve on a group to confirm its mappings, or click Approve All in the header to approve every group at once.Mapping Configuration screen with normalized value groups and Approve buttons

Edit mappings

  • Drag and drop: Drag a single source value from one group to another, or from the unmapped section into a group. Dragging a source value between normalized value groups
  • Bulk move from unmapped values: Use the search bar in the Unmapped Values section to filter values (e.g., typing “was” shows all unmapped values containing “was”). A “Move all (N) to…” button appears with the count of matching results. Click it to see a searchable list of existing normalized value groups, then select a destination, all matching values move to that group at once. Unmapped Values section with search filter and Move all button
  • Bulk move within a normalized value group: When a group has more than 3 source values, click +N MORE to open the Source Values drawer for that group. Use the search bar in the drawer to filter values, then click “Move all (N) to…” to select a different normalized value group or Unmapped as the destination. Source Values drawer with search and bulk move options for a group
  • Add a source value to a group: Click + Add next to any group’s source values to manually type in a new source value.
  • Add a new normalized value: Use the “Add normalized value…” input at the top of the mapping table and click + Add to create a new empty group, then drag or bulk-move values into it.
  • View case variants: Click the Tt icon next to a source value to see all the different case variations that exist in your data (e.g., “Google”, “google”, “GOOGLE”). Source values are still matched case-insensitively, you cannot map different casings to different buckets but this lets you see exactly what forms appear in your raw data. Case variants popover showing all casings of a source value
  • Remove a source value from a group: Click the X on a source value tag to move it back to unmapped.
  • Remove an entire group: Click the X on the group row to move all its source values back to unmapped and delete the group.

Handle unmapped values

Before you can save, all unmapped values must be resolved. Values you don’t want to assign to a specific normalized value are automatically kept as-is the original value is preserved unchanged in the output field. You can click Approve to confirm them in bulk.Unmapped Values section with values kept as-is and an Approve button
Configure the output field where normalized values are written:
  • Overwrite original field: Replace the source field values with normalized values. Note that this overwrites the raw data; if you want to preserve the original values, use one of the options below instead.
  • Write to existing field: Select a different contact field as the output.
  • Create new field: Create a new custom contact field directly from this screen. The field is created as a Contact Field in Inflection Settings step with output field options: overwrite, existing field, or create new field
If you want to preserve your raw data while also sending normalized values to an external system like Salesforce, consider writing to a separate output field. For example, you could keep the source field as read-only (to preserve raw values) and set the output field to two-way sync so normalized data flows to Salesforce.
Review a summary of your configuration:
  • Total normalized values and source values
  • Output field selection
  • Count of Unmapped values kept as-is
Click Save & Apply. You’ll be asked how to apply the configuration:
  • Apply going forward only: Only normalize new incoming data. Existing records remain unchanged.
  • Backfill historic values: Apply normalization to all existing records. This runs in the background and may take some time. You’ll see a “backfill started” entry in the Normalization Activity Log, and a “backfill completed” entry when it finishes.
When new source values appear in your data that don’t match any existing mapping, they surface in the Normalization Configurations tab with an ‘unmapped’ status indicator showing the count of new unmapped values.Normalization Configurations tab with an unmapped status indicator on a configurationTo resolve them:
  1. Click on the configuration with unmapped values.
  2. Review the new unmapped values in the Mapping Configuration step.
  3. Drag them into existing groups, create new normalized values, bulk-move them, or keep them as-is.
  4. Save your changes.
  1. Navigate to Database → Data Normalization → Normalization Configurations.
  2. Click on the configuration you want to edit.
  3. The edit flow has three steps: Mapping Configuration, Settings, and Review & Save (the Mapping Guidance step is skipped since mappings already exist).
  4. Modify mappings as needed: add new normalized values, reassign source values, or approve new mappings.
  5. Click Save & Apply and choose your backfill preference.
Existing approved mappings are preserved when you edit. Only new or changed mappings are applied.
The Normalization Activity Log tab records all configuration-level changes:
  • Configuration created: Logged when a new normalization configuration is saved.
  • Configuration updated: Logged with the source and output field names and details of what changed.
  • Backfill started: Logged when a backfill process begins.
  • Backfill completed: Logged when the backfill process finishes.
Each log entry includes:
  • Timestamp (date and time)
  • Actor (user name or “System” for automated changes)
Filter logs by date range (30 days, 90 days, or custom) to find specific entries.
When normalization modifies a contact’s field value, either through real-time normalization of new data or through a backfill, an entry is recorded in that individual contact’s Activity Log. This lets you trace exactly when and how a specific contact’s data was changed by normalization.To view these entries, navigate to a contact’s profile and open their Activity Log.Contact Activity Log entries showing field value changes made by normalization
  • Start with high-impact fields: Focus on fields used in reporting and segmentation first, like job title, company name, or industry.
  • Leverage Salesforce picklists for fields synced from Salesforce to keep both systems aligned.
  • Review new unmapped values regularly: New source values appear as your data grows. Periodic review ensures your normalization stays current.
  • Iterate on your prompt: AI mapping is non-deterministic. If the initial results aren’t right, go back and refine your prompt or add more specific instructions, then regenerate.
  • Preserve raw data when needed: If you want to keep the original source values intact, write normalized values to a separate output field rather than overwriting the source field.
  • Reach out for high-cardinality fields: If your field has a very large number of unique values, contact your Customer Success team for guidance. They can involve the Inflection team to help plan the best approach.

Frequently Asked Questions

Only string fields on the Contact entity are eligible. Certain default fields like email, id, first_name, and last_name are restricted. Other default string fields like company_name and title can be normalized.
No. Source value matching is case-insensitive “United States”, “united states”, and “UNITED STATES” are all treated as the same source value. However, the casing of the normalized value you define is preserved exactly as you enter it. You can click the Tt icon next to any source value to see all the case variations that exist in your data.
Yes. Select Overwrite original field in the Settings step. The raw value is replaced with the normalized value. Keep in mind this overwrites the original data.
Yes. Two separate normalization configurations can use the same source field, as long as each has a different output field.
This creates a circular mapping and is not allowed. The system prevents you from moving a value that is already a normalized value for another group.
CSV files used for list-based mapping are limited to 3 MB.
It depends on your choice at save time. If you select Backfill historic values, all existing records are updated asynchronously in the background. If you select Apply going forward only, existing records remain unchanged.
Configurations can be edited at any time. However, if you backfilled historical records and used the Overwrite original field option, the original raw values have been replaced. If you wrote to a different output field, your original source field data is untouched.
AI mapping is non-deterministic, running it again with the same prompt may produce different results. Go back to the Mapping Guidance step, refine your prompt or adjust your target value list, and click Generate Mappings again. You can iterate as many times as needed before saving.
Yes. In the Unmapped Values section, use the search bar to filter values, then click “Move all (N) to…” to select a target normalized value group. All matching values move at once. You can also drag and drop individual values. For normalized value groups with more than 3 source values, click +N MORE to open the drawer, where the same search and bulk move functionality is available.
For high-cardinality fields, AI mapping may take longer and require more manual review. Reach out to your Customer Success team, they can help you plan the best approach and involve the Inflection team if needed.
New values matching an existing normalization configuration are normalized immediately upon ingestion.
Currently, normalization is available for the Contact entity only.
Yes. Click + Add next to any group’s source values to type in a value that may not be in the current dataset yet.
Check the Normalization Activity Log. You’ll see a “backfill started” entry when the process begins and a “backfill completed” entry when it finishes.
Individual contact-level normalization changes appear in that contact’s Activity Log on their profile page, not in the Normalization Activity Log.