--- id: name-normalizer title: Name Normalizer pagination_label: Name Normalizer sidebar_label: Name Normalizer sidebar_class_name: nameNormalizer keywords: ['transforms', 'operations', 'name normalizer'] description: Clean or standardize the spelling of strings coming in from source systems. slug: /extensibility/transforms/operations/name-normalizer tags: ['Transforms', 'Transform Operations'] --- ## 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: ```json { "type": "normalizeNames", "name": "Name Normalizer Transform" } ``` ## Attributes - **Required Attributes** - **type** - This must always be set to `normalizeNames`. - **name** - This is a required attribute for all transforms. It represents the name of the transform as it will appear in the UI's dropdown menus. - **Optional Attributes** - **requiresPeriodicRefresh** - This `true` or `false` value indicates whether the transform logic should be reevaluated every evening as part of the identity refresh process. - **input** - This is an optional attribute that can explicitly define the input data passed into the transform logic. If no input is provided, the transform takes its input from the source and attribute combination configured with the UI. ## Examples This transform takes a static value and normalizes it to a consistent format. ```bash Input: "jOHN VON SmITh" Output: "John von Smith" ``` ```json { "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. ```bash Input: "Dr. JOHN D. O'BRIEN" Output: "Dr. John D. O'Brien" ``` ```json { "attributes": { "input": { "attributes": { "sourceName": "HR Source", "attributeName": "LastName" }, "type": "accountAttribute" } }, "type": "normalizeNames", "name": "Name Normalizer Transform" } ```