Transformer Reference

Reference guide for supported transformation functions and parameters for attribute transformers

This page includes a comprehensive list of all supported transformer functions and parameters. Some commonly used transformation functions include:

  • Replacing a character with a different one

  • Removing domains from email addresses

  • Transforming to upper, lower, title, sentence, camel, or snake case

  • Using a substring from the original value

See Attribute Sync and Transformers for configuration details, or Understanding Conditions and Transformers for terminology definitions.

Reading the Examples

Each transformer below includes three types of examples:

  1. Basic Usage: Shows the transformer used alone with a simple source attribute

  2. In a Pipeline: Demonstrates chaining multiple transformers together

  3. Example: Provides practical context from Lifecycle Management scenarios

Copy-paste these examples directly into your attribute transformer configuration, adjusting attribute names to match your source of identity.

chevron-rightAPPENDhashtag

APPEND

This transformer enables string concatenation by appending text to the end of attribute values during identity provisioning workflows.

Parameter Format

Characters (STRING, required)

Basic Usage

  • Destination Attribute: email

  • Formatter: {username}

  • Then Apply: | APPEND, "@company.com"

  • Result: If username = john.smith, output is [email protected]

In a Pipeline

  • Destination Attribute: display_name

  • Formatter: {first_name}

  • Then Apply: | APPEND, " " | APPEND, "{last_name}"

  • Result: If first_name = John and last_name = Smith, output is John Smith

Example

  • Destination Attribute: user_principal_name

  • Formatter: {first_name}.{last_name}

  • Then Apply: | LOWER | APPEND, "@contoso.com"

  • Use case: Generate standardized email addresses for Azure AD user provisioning

chevron-rightASCIIhashtag

ASCII

Removes non-printable characters and replaces non-ASCII characters with their closest ASCII equivalents. Particularly useful for Active Directory sAMAccountName and other legacy systems with strict character requirements.

Note: The ASCII transformer performs operations on the base level, not the extended set.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: username

  • Formatter: {first_name}

  • Then Apply: | ASCII

  • Result: If first_name = Łukasz, output is Lukasz

In a Pipeline

  • Destination Attribute: login_name

  • Formatter: {first_name}.{last_name}

  • Then Apply: | ASCII | LOWER | REMOVE_WHITESPACE

  • Result: If first_name = José María, last_name = García, output is josemaria.garcia

Example

  • Destination Attribute: sAMAccountName

  • Formatter: {first_name}

  • Then Apply: | ASCII | SUB_STRING, 0, 1 | LOWER

  • Use case: Generate Active Directory account names that comply with character restrictions while handling international names (converts "Łukasz" to "l")

chevron-rightASSUME_TIME_ZONEhashtag

ASSUME_TIME_ZONE

Interprets the incoming time string as if it were in the specified time zone, then converts it to a UTC time. (example: if the input is "1/2/2025 11pm" and the defined time zone is America/Los_Angeles the function will treat "1/2/2025 11pm" as local time in Los Angeles and output the corresponding UTC time "1/3/2025 7am")

Parameter Format

String - Time Zone String (Optional) - Format

Usage Example

Input:

{activation_date | ASSUME_TIME_ZONE, "America/Los_Angeles"}

{activation_date | ASSUME_TIME_ZONE, "America/Los_Angeles", "RFC3339"}

{activation_date | ASSUME_TIME_ZONE, "-07:00"}

{activation_date | ASSUME_TIME_ZONE, "-07:00", "RFC3339"}

chevron-rightCOUNTRY_CODE_ISO3166hashtag

COUNTRY_CODE_ISO3166

Transforms country code to ISO 3166 format.

ISO 3166arrow-up-right defines codes for the representation of country names, dependent territories, and their subdivisions

Parameter Format

Format (STRING, optional): [alpha2, alpha3, numeric], defaults to alpha2

Usage Example

Input:

{"US" | COUNTRY_CODE_ISO3166, "alpha3"}

Output:

USA

chevron-rightDATE_ADJUSThashtag

DATE_ADJUST

Adjusts date values based on hour, day, month, and year inputs. Provides full control over all time components for complex date manipulation.

Parameter Format

Parameter
Type
Required
Description

Hours

INTEGER

Yes

Number of hours to add (use negative values to subtract)

Days

INTEGER

No

Number of days to add

Months

INTEGER

No

Number of months to add

Years

INTEGER

No

Number of years to add

Format

STRING

No

Output format (defaults to auto-detection)

Usage Example

Input:

{activation_date | DATE_ADJUST, +1, 2, 3, -1}

Adjusts the date by adding 1 hour, 2 days, 3 months, and subtracting 1 year.

{activation_date | DATE_ADJUST, +1, 2, 3, -1, "RFC3339"}

{activation_date | DATE_ADJUST, +1, 2, 3, -1, "2006-01-02T15:04:05Z07:00"}

Example

If the input date is 2021-01-01 00:00:00 and you apply DATE_ADJUST, +1, 2, 3, -1, the output is 2020-04-03 01:00:00 (added 1 hour, 2 days, 3 months, subtracted 1 year).

chevron-rightDATE_ADJUST_DAYhashtag

DATE_ADJUST_DAY

A convenience transformer that adjusts date values by a specified number of days only. Use this for simple day-based calculations; use DATE_ADJUST for more complex adjustments involving hours, months, or years.

Parameter Format

Parameter
Type
Required
Description

Days

INTEGER

Yes

Number of days to add (use negative values to subtract)

Format

STRING

No

Output format (defaults to auto-detection)

Usage Example

Input:

{activation_date | DATE_ADJUST_DAY, +1}

Adds 1 day to the activation date.

{activation_date | DATE_ADJUST_DAY, +1, "RFC3339"}

{activation_date | DATE_ADJUST_DAY, +1, "2006-01-02T15:04:05Z07:00"}

Example

If the input date is 2021-01-01 00:00:00 and you apply DATE_ADJUST_DAY, +1, the output is 2021-01-02 00:00:00.

DATE_FORMAT

Description: Converts a timestamp to a formatted date string using Go time layout syntax.

Syntax: {attribute | DATE_FORMAT, "layout"} or {attribute | DATE_FORMAT, "output_layout", "input_layout"}

Parameters:

Parameter
Required
Type
Description

layout

Yes

String

Go time format layout or named alias (see tables below)

input_layout

No

String

Format of the input data (if non-standard)

Returns: String — the formatted date/time string

Examples:

Input
Expression
Output

2024-03-15T14:30:00Z

{hire_date | DATE_FORMAT, "2006-01-02"}

2024-03-15

2024-03-15T14:30:00Z

{hire_date | DATE_FORMAT, "01/02/2006"}

03/15/2024

2024-03-15T14:30:00Z

{hire_date | DATE_FORMAT, "Jan 2, 2006"}

Mar 15, 2024

2024-03-15T14:30:00Z

{hire_date | DATE_FORMAT, "dateonly"}

2024-03-15

03-15-2024

{start_date | DATE_FORMAT, "2006-01-02", "01-02-2006"}

2024-03-15

circle-exclamation

Go date format reference

The reference date Mon Jan 2 15:04:05 MST 2006 breaks down as:

Component
Reference Value
Meaning

Year

2006

4-digit year

Year

06

2-digit year

Month

01

2-digit month (01-12)

Month

1

1 or 2-digit month (1-12)

Month

Jan

3-letter abbreviation

Month

January

Full month name

Day

02

2-digit day (01-31)

Day

2

1 or 2-digit day (1-31)

Day

_2

Space-padded day

Hour

15

24-hour format (00-23)

Hour

03 or 3

12-hour format (01-12 or 1-12)

Minute

04

Minutes (00-59)

Second

05

Seconds (00-59)

AM/PM

PM

Uppercase AM/PM

AM/PM

pm

Lowercase am/pm

Timezone

MST

Timezone abbreviation

Timezone

-0700

Numeric offset

Timezone

Z0700

Z for UTC, offset otherwise

Common format patterns

Output Format
Go Layout String
Example Output

ISO 8601 / RFC3339

2006-01-02T15:04:05Z07:00

2023-03-15T14:30:25-07:00

US date

01/02/2006

03/15/2023

European date

02/01/2006

15/03/2023

LDAP/AD format

20060102150405Z

20230315143025Z

Human readable

Jan 2, 2006

Mar 15, 2023

Date only

2006-01-02

2023-03-15

Named format aliases

Instead of Go layout strings, you can use these named aliases (case-insensitive):

Alias
Equivalent Layout
Example Output

dateonly

2006-01-02

2023-03-15

timeonly

15:04:05

14:30:25

datetime

2006-01-02 15:04:05

2023-03-15 14:30:25

rfc3339

2006-01-02T15:04:05Z07:00

2023-03-15T14:30:25-07:00

win32

Active Directory FILETIME

133234218250000000

For the full list of named aliases (including kitchen, rfc822, rfc1123, stamp, and others), see Go's standard time package constantsarrow-up-right.

circle-info

The win32 format outputs the Windows FILETIME format used by Active Directory for attributes like accountExpires. This represents 100-nanosecond intervals since January 1, 1601 UTC.

Notes:

  • Input must be a valid timestamp

  • Use with ASSUME_TIME_ZONE or UTC_TO_TIME_ZONE for timezone handling

  • When parsing non-standard input dates, provide both output and input layouts

chevron-rightFIRST_Nhashtag

FIRST_N

Picks the first N characters of a string. Useful for creating shortened identifiers or initials.

Parameter Format

Length (NUMBER, required): Number of characters to return

Basic Usage

  • Destination Attribute: initial

  • Formatter: {first_name}

  • Then Apply: | FIRST_N, 1

  • Result: If first_name = John, output is J

In a Pipeline

  • Destination Attribute: username

  • Formatter: {first_name}.{last_name}

  • Then Apply: | FIRST_N, 1 | LOWER

  • Result: If first_name = John, output is j

Example

  • Destination Attribute: username

  • Formatter: {first_name}

  • Then Apply: | FIRST_N, 1 | LOWER

  • Use case: Create abbreviated usernames in the format "j.smith" by combining first initial with last name

chevron-rightFROM_ENTITY_ATTRIBUTEhashtag

FROM_ENTITY_ATTRIBUTE

Looks up an entity in the Veza graph by matching an attribute value, then returns a different attribute from that entity. This is useful for cross-referencing related entities, such as finding a manager's email from an employee ID.

Parameter Format

Parameter
Type
Required
Description

EntityType

STRING

Yes

The type of graph entity to search (e.g., Employee, OktaUser, ActiveDirectoryUser)

SourceAttribute

STRING

Yes

The attribute on the entity to match against the input value

TargetAttribute

STRING

Yes

The attribute to return from the matched entity. Use id or type for built-in entity properties.

DefaultValue

STRING

No

Value to return if no matching entity is found

How It Works

  1. The input value (before the |) is used as the search term

  2. The transformer finds an entity of type EntityType where SourceAttribute equals the input value

  3. It returns the TargetAttribute value from that entity

  4. If no entity is found and DefaultValue is provided, the default is returned; otherwise an error occurs

Special Behaviors

Scenario
Behavior

Empty input value

Returns empty string "" (no error)

Input wrapped in brackets [value]

Brackets are automatically stripped before lookup

TargetAttribute is id

Returns the entity's unique graph ID

TargetAttribute is type

Returns the entity's type name

No entity found, no default

Returns error with details about the failed lookup

Target attribute missing on entity

Returns error (unless default provided)

circle-info

When used in sync workflows, this transformer checks previously computed values from the current job before querying the graph cache. This optimization prevents redundant lookups during batch operations.

Usage Examples

Example 1: Get manager's name from employee ID

  • Input: 12345 (an employee ID)

  • Finds: An Employee entity where employee_id = 12345

  • Returns: The manager_name attribute from that employee (e.g., Jane Smith)

Example 2: Get department from email with a default value

Example 3: Chain with other transformers

  • Takes the employee ID from Workday

  • Looks up the employee's cost center

  • Converts the result to uppercase

Example 4: Get entity's graph ID

  • Looks up an OktaUser by login

  • Returns the entity's unique graph ID (useful for subsequent lookups)

chevron-rightFROM_MANY_ENTITIES_ATTRIBUTEhashtag

FROM_MANY_ENTITIES_ATTRIBUTE

Looks up multiple entities in the Veza graph by matching an attribute value, then returns a specified attribute from all matching entities as a combined string. Use this when an input value may match multiple entities and you need all their values.

Parameter Format

Parameter
Type
Required
Description

EntityType

STRING

Yes

The type of graph entity to search (e.g., Employee, OktaUser)

SourceAttribute

STRING

Yes

The attribute on entities to match against the input value

TargetAttribute

STRING

Yes

The attribute to return from all matched entities. Use id or type for built-in entity properties.

Separator

STRING

No

Character(s) to join multiple results (defaults to ,)

How It Works

  1. The input value (before the |) is used as the search term

  2. The transformer finds ALL entities of type EntityType where SourceAttribute equals the input value

  3. It collects the TargetAttribute value from each matched entity

  4. Results are joined using the separator (comma by default)

  5. If no entities are found, returns an empty string

Special Behaviors

Scenario
Behavior

Empty input value

Returns empty string "" (no error)

Input wrapped in brackets [value]

Brackets are automatically stripped before lookup

No entities found

Returns empty string "" (no error)

Target attribute missing on some entities

Those entities are skipped (no error logged)

TargetAttribute is id

Returns the entity's unique graph ID

TargetAttribute is type

Returns the entity's type name

Result ordering

Results appear in graph discovery order (not guaranteed to be consistent)

circle-exclamation

Usage Examples

Example 1: Get all group names for a user

Example 2: Custom separator for multi-value attributes

  • Input: 12345 (an owner ID)

  • Finds: All Application entities owned by this user

  • Returns: Slack;Salesforce;Jira (semicolon-separated)

Example 3: Get all entity IDs

  • Finds all employees in the Engineering department

  • Returns their graph IDs as a comma-separated list

Example 4: Get entity types

  • Looks up all identity nodes with the given email

  • Returns their type names (e.g., OktaUser,ActiveDirectoryUser,WorkdayWorker)

chevron-rightLANGUAGE_RFC5646hashtag

LANGUAGE_RFC5646

Transforms language to RFC 5646 format.

RFC 5646arrow-up-right defines "Tags for Identifying Languages." It does not contain a fixed, exhaustive list of language codes within the RFC itself. Instead, it specifies the structure and rules for constructing language tags, which are then built using codes from various external standards and registries.

Parameter Format

None (no parameters required)

Usage Example

Input:

{"Spanish" | LANGUAGE_RFC5646}

Output:

es

chevron-rightLAST_Nhashtag

LAST_N

Picks the last N characters of a string, where N is the number of characters to return.

Parameter Format

Length (NUMBER, required)

Usage Example

Input:

{"helloworld" | LAST_N, 5}

Output:

world

chevron-rightLEFT_PADhashtag

LEFT_PAD

Adds padding characters to the left side of a string until it reaches the specified length. Useful for creating fixed-width identifiers.

Parameter Format

Length (NUMBER, required): Target string length Pad (CHARACTER, optional): Character to use for padding (default is space)

Basic Usage

  • Destination Attribute: employee_id

  • Formatter: {id}

  • Then Apply: | LEFT_PAD, 5, "0"

  • Result: If id = 123, output is 00123

In a Pipeline

  • Destination Attribute: formatted_code

  • Formatter: {cost_center}

  • Then Apply: | TRIM_CHARS, "0" | LEFT_PAD, 6, "0"

  • Result: If cost_center = 001234, output is 001234 (first removes then re-applies padding)

Example

  • Destination Attribute: employee_id

  • Formatter: {employee_id}

  • Then Apply: | REMOVE_CHARS, "#" | TRIM_CHARS, "0" | LEFT_PAD, 6, "0"

  • Use case: Standardize employee IDs to 6-digit format (converts "##001234##" to "001234")

chevron-rightLOOKUPhashtag

LOOKUP

Transforms a value using a lookup table defined in your Lifecycle Management policy. Essential for mapping codes to descriptive values or standardizing data across systems.

Parameter Format

Parameter
Type
Required
Description

TableName

STRING

Yes

Name or ID of the lookup table

ColumnName

STRING

Yes

Column to search for the input value

ReturnColumnName

STRING

Yes

Column whose value to return

DefaultValue

STRING

No

Value to return if lookup fails

How It Works

  1. The transformer first tries to match TableName against configured lookup table names

  2. If no name match is found, TableName is treated as a table ID

  3. The input value is searched in ColumnName

  4. If found, the corresponding ReturnColumnName value is returned

  5. If not found and DefaultValue is provided, the default is returned

  6. If not found and no default, an error is returned

circle-exclamation

Special Behaviors

Scenario
Behavior

Table name not found

Falls back to treating the parameter as a table ID

Value not found in table, default provided

Returns the default value

Value not found in table, no default

Returns error with lookup details

Other lookup errors

Returns error with full context

Basic Usage

  • Destination Attribute: city

  • Formatter: {location_code}

  • Then Apply: | LOOKUP, "locationTable", "location_code", "city"

  • Result: If location_code = IL001 and locationTable contains that code, output is Chicago

With Default Value

  • Destination Attribute: region

  • Formatter: {office_code}

  • Then Apply: | LOOKUP, "regionTable", "code", "region_name", "Unknown Region"

  • Result: Returns mapped region name, or Unknown Region if code not in table

In a Pipeline

  • Destination Attribute: office_email_domain

  • Formatter: {office_code}

  • Then Apply: | LOOKUP, "officeTable", "code", "domain" | LOWER

  • Result: Looks up domain from table, then converts to lowercase

Example

  • Destination Attribute: office_location

  • Formatter: {location}

  • Then Apply: | LOOKUP, "locationTable", "location_code", "city"

  • Use case: Convert abbreviated location codes (like "IL001", "CA002") to full city names for user profiles, maintaining consistency across different source systems

LOWER

Description: Converts all characters in a string to lowercase.

Syntax: {attribute | LOWER}

Parameters:

Parameter
Required
Type
Description

(none)

This function takes no parameters

Returns: String — the input value with all characters converted to lowercase

Examples:

Input
Expression
Output

JOHN

{first_name | LOWER}

john

MixedCase123

{code | LOWER}

mixedcase123

Notes: Only affects alphabetic characters. Numbers and special characters pass through unchanged.

chevron-rightLOWER_SNAKE_CASEhashtag

LOWER_SNAKE_CASE

Transforms string to lowercase with underscores.

Parameter Format

None (no parameters required)

Usage Example

Input:

{"Hello World" | LOWER_SNAKE_CASE}

Output:

hello_world

chevron-rightLOWER_CAMEL_CASEhashtag

LOWER_CAMEL_CASE

Transforms a string to lower camel case (also known as dromedaryCase). The first word is lowercase, and subsequent words are capitalized with no separators.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: identifier

  • Formatter: {field_name}

  • Then Apply: | LOWER_CAMEL_CASE

  • Result: If field_name = hello world, output is helloWorld

In a Pipeline

  • Destination Attribute: api_field

  • Formatter: {attribute_name}

  • Then Apply: | TRIM | LOWER_CAMEL_CASE

  • Result: If attribute_name = User Display Name , output is userDisplayName

Example

  • Destination Attribute: json_property

  • Formatter: {column_name}

  • Then Apply: | LOWER_CAMEL_CASE

  • Use case: Convert database column names or display names to JSON property names following JavaScript/TypeScript conventions

chevron-rightNEXT_NUMBERhashtag

NEXT_NUMBER

Generates a set of alternative values by appending sequential numbers. Essential for handling unique constraint conflicts during user provisioning. Returns an empty string first, then "2", "3", "4", etc.

Parameter Format

Start Integer (NUMBER, required): First number in sequence Length (NUMBER, required): How many alternatives to generate

Basic Usage

  • Destination Attribute: username

  • Formatter: {first_name}.{last_name}

  • Then Apply: | LOWER | NEXT_NUMBER, 2, 3

  • Result: Generates john.smith, john.smith2, john.smith3, john.smith4 as fallback options

In a Pipeline

  • Destination Attribute: email

  • Formatter: {first_name}{last_name}

  • Then Apply: | LOWER | NEXT_NUMBER, 2, 5 | APPEND, "@company.com"

  • Result: Creates email alternatives: [email protected], [email protected], etc.

Example

  • Destination Attribute: user_principal_name

  • Formatter: (see conditional example below)

  • Then Apply: N/A (used within IF statement)

  • Use case: Intelligent username generation with length-based fallbacks:

This handles both name length constraints and uniqueness conflicts automatically.

chevron-rightNEXT_NUMBER Max Lengthhashtag

NEXT_NUMBER Max Length

This transformer supports an optional maximum length parameter to simplify complex username generation workflows. It automatically evaluates combined strings (such as {first_name}_{last_name}) and truncates to specified character limits before appending numerical suffixes.

Generates a set of integers as strings.

Parameter Format

Integer (NUMBER, required), Length (NUMBER, required)

Usage Example

Input:

{"foobar" | NEXT_NUMBER, 1, 12, 4}

Output:

foob foo1 foo2 foo3 foo4 foo5 foo6 foo7 foo8 foo9 fo10 fo11 fo12

chevron-rightNOWhashtag

NOW

Returns the current time in UTC. An optional argument indicates the outgoing time format; by default, the RFC3339 format.

Parameter Format

String (Optional) - Format

Usage Example

Input:

{NOW}

{| NOW, "RFC3339"}

{NOW, "RFC3339"}

{NOW, "2006-01-02T15:04:05Z07:00"}

chevron-rightPHONE_NUMBER_E164hashtag

PHONE_NUMBER_E164

Transforms a phone number into the E.164 format.

E. 164 numbers are formatted [+] [country code] [subscriber number including area code] and can have a maximum of fifteen digits. Parameter Format

Region (STRING, optional): ISO 3166-1 alpha-2 format

Usage Example

Input:

{"+1-800-555-1212" | PHONE_NUMBER_E164}

Output:

+18005551212

chevron-rightPREPENDhashtag

PREPEND

Adds text to the beginning of attribute values. Useful for adding prefixes like organization codes or type indicators.

Parameter Format

Characters (STRING, required): Text to add at the beginning

Basic Usage

  • Destination Attribute: location_code

  • Formatter: {city_code}

  • Then Apply: | PREPEND, "CORP_"

  • Result: If city_code = NYC, output is CORP_NYC

In a Pipeline

  • Destination Attribute: contractor_username

  • Formatter: {username}

  • Then Apply: | PREPEND, "c-" | LOWER

  • Result: If username = JSmith, output is c-jsmith

Example

  • Destination Attribute: account_name

  • Formatter: {username}

  • Then Apply: | PREPEND, "c-"

  • Use case: Identify contractor accounts by prefixing their usernames (converts "jsmith" to "c-jsmith" to distinguish from employee accounts)

chevron-rightRANDOM_ALPHANUMERIC_GENERATORhashtag

RANDOM_ALPHANUMERIC_GENERATOR

Generates a random alphanumeric string.

Parameter Format

Length (NUMBER, required)

Usage Example

Input:

{| RANDOM_ALPHANUMERIC_GENERATOR, 8}

Output:

a1B2c3D4

Note: This transformer generates an alphanumeric string with eight characters.

chevron-rightRANDOM_INTEGERhashtag

RANDOM_INTEGER

Generates a random integer value between specified minimum and maximum values (inclusive). Useful for creating unique test IDs or temporary identifiers. Does not require an input value.

Parameter Format

Min (NUMBER, required): The minimum value (inclusive) Max (NUMBER, required): The maximum value (inclusive)

Basic Usage

  • Destination Attribute: test_id

  • Formatter: TEST

  • Then Apply: | RANDOM_INTEGER, 1000, 9999

  • Result: Output is TEST followed by random number like TEST4827

In a Pipeline

  • Destination Attribute: temp_username

  • Formatter: user

  • Then Apply: | RANDOM_INTEGER, 1, 100 | APPEND, "@temp.local"

  • Result: Output like [email protected]

Example

  • Destination Attribute: temporary_id

  • Formatter: TEST

  • Then Apply: | RANDOM_INTEGER, 1000, 9999

  • Use case: Generate unique test identifiers for sandbox environments (produces values like "TEST4827", "TEST8391")

chevron-rightRANDOM_NUMBER_GENERATORhashtag

RANDOM_NUMBER_GENERATOR

Generates a random number string.

Parameter Format

Length (NUMBER, required)

Usage Example

Input:

{| RANDOM_NUMBER_GENERATOR, 4}

Output:

4829

Note: This transformer generates a random numeric string with four characters.

chevron-rightRANDOM_STRING_GENERATORhashtag

RANDOM_STRING_GENERATOR

Generates a random string.

Parameter Format

Length (NUMBER, required)

Usage Example

Input:

{| RANDOM_STRING_GENERATOR, 6}

Output:

uFkLxw

Note: This transformer generates a random alpha string with six characters.

chevron-rightREMOVE_CHARShashtag

REMOVE_CHARS

Removes all instances of specified characters from a string. Useful for cleaning up data and removing unwanted punctuation or special characters.

Parameter Format

Characters (STRING, required): String containing all characters to be removed

Basic Usage

  • Destination Attribute: username

  • Formatter: {email}

  • Then Apply: | REMOVE_CHARS, "@."

  • Result: If email = [email protected], output is johndoeexamplecom

In a Pipeline

  • Destination Attribute: phone

  • Formatter: {phone_number}

  • Then Apply: | REMOVE_CHARS, "()- "

  • Result: If phone_number = (123) 456-7890, output is 1234567890

Example

chevron-rightREMOVE_DIACRITICShashtag

REMOVE_DIACRITICS

Removes diacritics (accents, etc.) from input string.

Parameter Format

None (no parameters required)

Usage Example

Input:

{"José" | REMOVE_DIACRITICS}

Output:

Jose

chevron-rightREMOVE_DOMAINhashtag

REMOVE_DOMAIN

Removes the domain portion from an email address, leaving only the username. One of the most frequently used transformers for generating usernames from email addresses.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: username

  • Formatter: {email}

  • Then Apply: | REMOVE_DOMAIN

  • Result: If email = [email protected], output is john.smith

In a Pipeline

  • Destination Attribute: login_name

  • Formatter: {email}

  • Then Apply: | REMOVE_DOMAIN | REPLACE_ALL, ".", "_"

  • Result: If email = [email protected], output is john_smith

Example

  • Destination Attribute: username

  • Formatter: {email}

  • Then Apply: | REMOVE_DOMAIN

  • Use case: Extract usernames for target systems that don't use email-style logins (converts "[email protected]" to "jsmith")

chevron-rightREMOVE_WHITESPACEhashtag

REMOVE_WHITESPACE

Removes all whitespace characters (spaces, tabs, newlines) from a string. Useful for creating compact identifiers and ensuring data consistency.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: username

  • Formatter: {display_name}

  • Then Apply: | REMOVE_WHITESPACE

  • Result: If display_name = John A. Doe, output is JohnA.Doe

In a Pipeline

  • Destination Attribute: tag

  • Formatter: {department}

  • Then Apply: | REMOVE_WHITESPACE | LOWER

  • Result: If department = Human Resources, output is humanresources

Example

  • Destination Attribute: cost_center_code

  • Formatter: {cost_center}

  • Then Apply: | REMOVE_WHITESPACE

  • Use case: Ensure cost center codes have no embedded spaces for system integration (converts "CC 12345" to "CC12345")

REPLACE_ALL

Description: Replaces all occurrences of a substring with a replacement string.

Syntax: {attribute | REPLACE_ALL, "search", "replacement"}

Parameters:

Parameter
Required
Type
Description

search

Yes

String

The substring to find

replacement

Yes

String

The string to replace matches with

Returns: String — the input with all occurrences of search replaced by replacement

Examples:

Input
Expression
Output

John Smith

{display_name | REPLACE_ALL, " ", "_"}

John_Smith

EMP-12345

{employee_id | REPLACE_ALL, "-", ""}

EMP12345

{email | REPLACE_ALL, " ", "."}

Notes:

  • Case-sensitive matching

  • To remove characters, use an empty string as the replacement: REPLACE_ALL, "x", ""

  • For removing multiple different characters, consider REMOVE_CHARS instead

chevron-rightRIGHT_PADhashtag

RIGHT_PAD

Right pads a string with a character.

Parameter Format

Length (NUMBER, required),

Pad (CHARACTER, optional): Default is space

Usage Example

Input:

{"123" | RIGHT_PAD, 5, "0"}

Output:

12300

chevron-rightSENTENCE_CASEhashtag

SENTENCE_CASE

Capitalizes only the first non-whitespace character of a string and lowercases the rest. Preserves any leading whitespace. Useful for standardizing sentence-formatted text fields.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: description

  • Formatter: {notes}

  • Then Apply: | SENTENCE_CASE

  • Result: If notes = THE QUICK BROWN FOX, output is The quick brown fox

In a Pipeline

  • Destination Attribute: formatted_notes

  • Formatter: {comment}

  • Then Apply: | TRIM | SENTENCE_CASE

  • Result: If comment = IMPORTANT MESSAGE HERE , output is Important message here

Example

  • Destination Attribute: job_description

  • Formatter: {job_title}

  • Then Apply: | SENTENCE_CASE

  • Use case: Normalize job descriptions from all-caps source data to sentence case for cleaner display

chevron-rightSPLIThashtag

SPLIT

Splits a string and returns the string at the given index.

Parameter Format

Split String (STRING, required), Index (NUMBER, required)

Usage Example

Input:

{"[email protected]" | SPLIT, "@", 0}

Output:

first.last

Note: This transformer returns the results where the index starts at zero (0).

SUB_STRING

Description: Extracts a portion of a string starting at a specified position.

Syntax: {attribute | SUB_STRING, offset, length}

Parameters:

Parameter
Required
Type
Description

offset

Yes

Integer

Starting position (0-based index)

length

Yes

Integer

Number of characters to extract

Returns: String — the extracted substring

Examples:

Input
Expression
Output

John

{first_name | SUB_STRING, 0, 1}

J

EMP12345

{employee_id | SUB_STRING, 3, 4}

1234

{email | SUB_STRING, 0, 10}

john.smith

Notes:

  • Index is 0-based (first character is position 0)

  • If offset + length exceeds the string length, returns characters up to the end

  • For extracting just the first N characters, consider FIRST_N as a simpler alternative

chevron-rightTITLE_CASEhashtag

TITLE_CASE

Capitalizes the first letter of each word and lowercases the rest. Also handles dot-separated values by capitalizing the first letter of each segment. Useful for formatting names and titles.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: display_name

  • Formatter: {full_name}

  • Then Apply: | TITLE_CASE

  • Result: If full_name = john doe, output is John Doe

In a Pipeline

  • Destination Attribute: formatted_name

  • Formatter: {name}

  • Then Apply: | TRIM | TITLE_CASE

  • Result: If name = JANE SMITH , output is Jane Smith

Example

  • Destination Attribute: display_name

  • Formatter: {username}

  • Then Apply: | TITLE_CASE

  • Use case: Format dot-separated usernames for display (converts "john.doe" to "John.Doe")

chevron-rightTRIMhashtag

TRIM

Removes leading and trailing whitespace from a string. Essential for cleaning up data from external systems.

Parameter Format

None (no parameters required)

Basic Usage

  • Destination Attribute: username

  • Formatter: {display_name}

  • Then Apply: | TRIM

  • Result: If display_name = " John Doe ", output is John Doe

In a Pipeline

Example

  • Destination Attribute: display_name

  • Formatter: {display_name}

  • Then Apply: | TRIM

  • Use case: Clean up imported user data that may have padding whitespace from CSV files or database fields

chevron-rightTRIM_CHARShashtag

TRIM_CHARS

Removes all specified characters from both the beginning and end of a string. Useful for removing padding characters or cleaning up formatted data.

Parameter Format

Characters (STRING, required): String containing all characters to remove from both ends

Basic Usage

  • Destination Attribute: employee_id

  • Formatter: {id_number}

  • Then Apply: | TRIM_CHARS, "0."

  • Result: If id_number = 000.123.000, output is 123

In a Pipeline

  • Destination Attribute: clean_code

  • Formatter: {code}

  • Then Apply: | TRIM_CHARS, "-_" | UPPER

  • Result: If code = ---ABC123___, output is ABC123

Example

  • Destination Attribute: office_code

  • Formatter: {office_code}

  • Then Apply: | TRIM_CHARS, ".0" | TRIM_CHARS_RIGHT, ".USCA"

  • Use case: Clean up office codes with variable padding (converts "000.8675309.USCA" to "8675309")

chevron-rightTRIM_CHARS_LEFThashtag

TRIM_CHARS_LEFT

Removes all specified characters from the beginning of a string only. Useful for removing leading zeros or prefixes.

Parameter Format

Characters (STRING, required): String containing all characters to remove from the beginning

Basic Usage

  • Destination Attribute: cost_center

  • Formatter: {cost_center_code}

  • Then Apply: | TRIM_CHARS_LEFT, "0"

  • Result: If cost_center_code = 00012345, output is 12345

In a Pipeline

  • Destination Attribute: identifier

  • Formatter: {raw_id}

  • Then Apply: | TRIM_CHARS_LEFT, "x" | UPPER

  • Result: If raw_id = xxxABC123, output is ABC123

Example

  • Destination Attribute: cost_center

  • Formatter: {cost_center}

  • Then Apply: | TRIM_CHARS_LEFT, "0"

  • Use case: Remove leading zeros from cost center codes while preserving trailing zeros (converts "00012345" to "12345")

chevron-rightTRIM_CHARS_RIGHThashtag

TRIM_CHARS_RIGHT

Removes all specified characters from the end of a string only. Useful for removing trailing characters or suffixes.

Parameter Format

Characters (STRING, required): String containing all characters to remove from the end

Basic Usage

  • Destination Attribute: office_code

  • Formatter: {raw_office_code}

  • Then Apply: | TRIM_CHARS_RIGHT, "0"

  • Result: If raw_office_code = ABC12300, output is ABC123

In a Pipeline

  • Destination Attribute: clean_code

  • Formatter: {code}

  • Then Apply: | TRIM_CHARS_RIGHT, "temp" | UPPER

  • Result: If code = ABC123temp, output is ABC123

Example

  • Destination Attribute: office_code

  • Formatter: {office_code}

  • Then Apply: | TRIM_CHARS_RIGHT, "0"

  • Use case: Remove trailing zeros from office codes while preserving leading zeros (converts "ABC12300" to "ABC123")

UPPER

Description: Converts all characters in a string to uppercase.

Syntax: {attribute | UPPER}

Parameters:

Parameter
Required
Type
Description

(none)

This function takes no parameters

Returns: String — the input value with all characters converted to uppercase

Examples:

Input
Expression
Output

sales

{department | UPPER}

SALES

john smith

{username | REMOVE_WHITESPACE | UPPER}

JOHNSMITH

Smith

{name | UPPER}

SMITH

Notes: Only affects alphabetic characters. Numbers and special characters pass through unchanged.

chevron-rightUPPER_CAMEL_CASEhashtag

UPPER_CAMEL_CASE

Transforms a string to upper camel case.

Parameter Format

None (no parameters required)

Usage Example

Input:

{"hello world" | UPPER_CAMEL_CASE}

Output:

HelloWorld

chevron-rightUPPER_SNAKE_CASEhashtag

UPPER_SNAKE_CASE

Transforms string to uppercase with underscores.

Parameter Format

None (no parameters required)

Usage Example

Input:

{"hello world" | UPPER_SNAKE_CASE}

Output:

HELLO_WORLD

chevron-rightUTC_TO_TIME_ZONEhashtag

UTC_TO_TIME_ZONE

Interprets the incoming time string as if it were in UTC and then converts it to the specified time zone. (example: if the input is "1/2/2025 11pm" and the specified time zone is America/Los_Angeles the function will treat "1/2/2025 11pm" as the UTC time zone and output the corresponding America/Los_Angeles time "1/2/2025 3pm") Note: When using the time zone parameter, a named time zone (America/Los_Angeles) accounts for daylight saving time, whereas a time zone offset (-07:00) is always calculated from UTC, ignoring daylight saving time.

Parameter Format

String - Time Zone String (Optional) - Format

Usage Example

Input:

{activation_date | UTC_TO_TIME_ZONE, "America/Los_Angeles"}

{activation_date | UTC_TO_TIME_ZONE, "America/Los_Angeles", "RFC3339"}

{activation_date | UTC_TO_TIME_ZONE, "-07:00"}

{activation_date | UTC_TO_TIME_ZONE, "-07:00", "RFC3339"}

chevron-rightUUID_GENERATORhashtag

UUID_GENERATOR

Generates a UUID.

A UUID (Universally Unique Identifier) is a 128-bit identifier used to uniquely identify information in computer systems.

Parameter Format

None (no parameters required)

Usage Example

Input:

{| UUID_GENERATOR}

Output:

123e4567-e89b-12d3-a456-426614174000

chevron-rightZERO_PADhashtag

ZERO_PAD

Adds left zero-padding to numerical string values until they reach the specified length. If the input is non-numeric, it passes through unchanged. If the numeric value is already longer than the specified length, it remains unchanged.

Parameter Format

Length (NUMBER, required): Target string length for zero-padding

Basic Usage

  • Destination Attribute: employee_id

  • Formatter: {id}

  • Then Apply: | ZERO_PAD, 6

  • Result: If id = 1234, output is 001234

Example

  • Destination Attribute: badge_number

  • Formatter: {badge_id}

  • Then Apply: | ZERO_PAD, 6

  • Use case: Standardize badge numbers to 6-digit format for access control systems (converts "1234" to "001234", leaves "12345678" unchanged, and passes non-numeric values like "admin" through unchanged)

Last updated

Was this helpful?