IdentityNow Transforms - Name Normalizer

IdentityNow Transforms - Name Normalizer

Overview

The name normalizer transform allows you to clean or standardize the spelling of strings coming in from source systems. Most commonly, this pertains to 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 array of use cases:

  • Proper casing/capitalization of names

    • Any string containing either a space, a hyphen or an apostrophe will be split by that character and the first character of each resulting substring will be capitalized
  • Special replacements of patterns that include "MC" and "MAC" (or case-based variations of those two strings)

    • The transform will automatically convert "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")

Other Considerations

  • N/A

 

Transform Structure

The transform for name normalizer is quite simple. All that is necessary is the transform's type and name attributes, as described in the below example:

Example

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

Attributes

  • Required Attributes

    • type - This must always be set to normalizeNames
    • name - This is a required attribute for all transforms, and represents the name of the transform as it will appear in the UI's dropdowns
  • Optional Attributes

    • requiresPeriodicRefresh - A true or false value that indicates whether the transform logic should be re-evaluated every evening as part of the identity refresh process.
    • input - This is an optional attribute that can explicitly define the input data which will be fed into the transform logic. If input is not provided, the transform will take its input from the source and attribute combination configured via the UI.

 

Examples

Example 1

Input: "jOHN VON SmITh"

Output: "John von Smith"

{
    "attributes": {
        "input": {
            "attributes": {
                "value": "jOHN VON SmITh"
            },
            "type": "static"
        }
    },
	"type": "normalizeNames",
    "name": "Test Name Normalizer Transform"
}

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

Example 2

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": "Test Name Normalizer Transform"
}

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

 

References

  • N/A
Comments

Can this transform automatically remove accent marks (i.e. Colón = Colon)?

Also, I tested this transform and it seemed to work for many of my uses cases but one of my user's last name had changed when it shouldn't have been (i.e. Macasek = MacAsek)  I understand the transform saw the 'Mac' and performed it's predetermined action but is there a way to edit either the transform itself or write in an exception for an individual?

@colonm 
Did you find a way in transforms to convert accent characters ?

Version history
Revision #:
3 of 3
Last update:
‎Dec 09, 2021 05:13 PM
Updated by:
 
Contributors