Skip to main content

Name Normalizer

Overview

Use the name normalizer transform to clean or standardize the spelling of strings coming in from source systems. The most common use for this transform is for names and other proper nouns, but the transform is not necessarily limited to those data elements.

The normalization logic within the transform handles a wide range of use cases:

  • Proper casing/capitalization of names
    • Any string containing either a space, a hyphen or an apostrophe - the transform splits these by that character and capitalizes the first character of each resulting substring.
  • Special replacements of patterns that include "MC" and "MAC" (or case-based variations of those two strings)
    • The transform automatically converts "MC" to "Mc" and "MAC" to "Mac" when they are part of a patronymic last name.
  • Consistent capitalization of strings that are part of a toponymic surname or a generational suffix:
    • Convert "VON" to "von"
    • Convert "DEL" to "del"
    • Convert "OF" to "of"
    • Convert "DE" to "de"
    • Convert "LA" to "la"
    • Convert "Y" to "y"
    • Convert Roman numeral suffixes to all capitalized letters (e.g., "iii" becomes "III")

Transform structure

The name normalizer transform only requires the transform's type and name attributes:

{
"type": "normalizeNames",
"name": "Name Normalizer Transform"
}

Top-level properties (required)

  • type string (required)
    Must be set to normalizeNames.

  • name string (required)
    The name of the transform as it will appear in the UI's dropdown menus.

  • requiresPeriodicRefresh boolean (optional)
    Whether the transform logic should be reevaluated every evening as part of the identity refresh process. Default is false.

Attributes

The name normalizer transform only requires top-level properties:

{
"type": "normalizeNames",
"name": "Transform Name"
}

attributes (required)

The attributes object contains the configuration for the normalizer transform.

Optional

  • input object (optional)
    Explicitly defines the input data passed into the transform. If not provided, the transform uses input from the source and attribute combination configured in the UI.

Examples

This transform takes a static value and normalizes it to a consistent format.

Input: "jOHN VON SmITh"
Output: "John von Smith"
{
"attributes": {
"input": {
"attributes": {
"value": "jOHN VON SmITh"
},
"type": "static"
}
},
"type": "normalizeNames",
"name": "Name Normalizer Transform"
}

 

This transform takes the user's "LastName" attribute from the "HR Source" and normalizes the name to a consistent format.

Input: "Dr. JOHN D. O'BRIEN"
Output: "Dr. John D. O'Brien"
{
"attributes": {
"input": {
"attributes": {
"sourceName": "HR Source",
"attributeName": "LastName"
},
"type": "accountAttribute"
}
},
"type": "normalizeNames",
"name": "Name Normalizer Transform"
}