Skip to main content

System Transformers

Introduction

Neosync comes out of the box with 40+ system transformers in order to give you an easy way to get started with anonymizing or generating data. There are two kinds of system transformers:

  1. Generators - these begin with generate_ and do not anonymize existing data. They only generate net-new synthetic data.
  2. Transformers - these begin with transform_ and can anonymize existing data or generate new-new synthetic data based on how you configure it.

Reference

NameTypeCodeDescription
Generate Email
string
Generates a new randomized email address.
Generate Realistic Email
string
Generates a new realistic email address.
Transform Email
string
Transforms an existing email address.
Generate Boolean
boolean
Generates a boolean value at random.
Generate Card Number
int64
Generates a card number.
Generate City
string
Randomly selects a city from a list of predfined US cities.
Generate E164 Phone Number
string
Generates a Generate phone number in e164 format.
Generate First Name
string
Generates a random first name.
Generate Float64
float64
Generates a random float64 value.
Generate Full Address
string
Randomly generates a street address in the format: {street_num} {street_addresss} {street_descriptor} {city}, {state} {zipcode}. For example, 123 Main Street Boston, Massachusetts 02169.
Generate Full Name
string
Generates a new full name consisting of a first and last name
Generate Gender
string
Randomly generates one of the following genders: female, male, undefined, nonbinary.
Generate Int64 Phone Number
int64
Generates a new phone number of type int64 with a default length of 10.
Generate Random Int64
int64
Generates a random integer value with a default length of 4 unless the Integer Length or Preserve Length parameters are defined.
Generate Last Name
int64
Generates a random last name.
Generate SHA256 Hash
string
SHA256 hashes a randomly generated value.
Generate SSN
string
Generates a completely random social security numbers including the hyphens in the format <xxx-xx-xxxx>
Generate State
string
Randomly selects a US state and returns the two-character state code.
Generate Street Address
string
Randomly generates a street address in the format: {street_num} {street_addresss} {street_descriptor}. For example, 123 Main Street.
Generate String Phone Number
string
Generates a Generate phone number and returns it as a string.
Generate Random String
string
Creates a randomly ordered alphanumeric string with a default length of 10 unless the String Length parameter are defined.
Generate Unix Timestamp
int64
Randomly generates a Unix timestamp
Generate Username
string
Randomly generates a username in the format<first_initial><last_name>.
Generate UTC Timestamp
time
Randomly generates a UTC timestamp.
Generate UUID
uuid
Generates a new UUIDv4 id.
Generate Zipcode
string
Randomly selects a zip code from a list of predefined US zipcodes.
Transform E164 Phone Number
string
Transforms an existing E164 formatted phone number.
Transform First Name
string
Transforms an existing first name
Transform Float64
float64
Transforms an existing float value.
Transform Full Name
string
Transforms an existing full name.
Transform Int64 Phone Number
int64
Transforms an existing phone number that is typed as an integer
Transform Int64
int64
Transforms an existing integer value.
Transform Last Name
string
Transforms an existing last name.
Transform Phone Number
string
Transforms an existing phone number that is typed as a string.
Transform String
string
Transforms an existing string value.
Passthrough
string
Passes the input value through to the desination with no changes.
Null
string
Inserts a <null> string instead of the source value.

Generate Email

The generate email transformer generates a new randomized email address in the format:

<username>@<domain>.<top-level-domain>

By default, the transformer randomizes the username, domain and top-level domain while always preserving the email format by retaining the @ and . characters.

For example, the following input value: john@acme.com

Would produce the following ouput value: ytvub873@ksh0293.com

Configurations

There are no configurations for this transformer.

Examples

Example InputExample Output
N/Af98723uh@gmail.com
N/A9cd@ms0ej.com
N/AmDy@bdo3s.edu
N/Afweq23f@fheuiw78.edu

Generate Realistic Email

The generate realistic email transformer generates a new randomized email address that "looks" realistic in the format:

<username>@<domain>.<top-level-domain>

By "looks realistic", we mean that the email will look like an email that a normal person will have and won't be randomized letters and numbers. The generated email will either have a first letter initial and last name as a username and then a standardized domain name such as gmail, yahoo, hotmail, etc.

Configurations

There are no configurations for this transformer.

Examples

Example InputExample Output
N/Ajdoe@gmail.com
N/Abill.johnson@yahoo.com
N/Aataylor@hotmail.com
N/Alist.franklin@gmail.com

Transform Email

The transform email transformer can anonymize an existing email address or generate a new randomized email address in the format:

<username>@<domain>.<top-level-domain>

By default, the transformer randomizes the username, domain and top-level domain while always preserving the email format by retaining the @ and . characters.

For example, the following input value: john@acme.com

Would produce the following ouput value: ytvub873@ksh0293.com

Configurations

Depending on your logic, you may want to configure the output email. The transform email transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
PreserveDomainCarries over the input domain and top-level to the output email address.falsejohn@gmail.comfjf2903@gmail.com
PreserveLengthEnsures the output email address is the same length as the input email address.falsejohn@gmail.comhw98@k8g1s.edu

Examples

There are several ways you can mix-and-match configurations to get different potential email formats. Here are some possible combinations:

PreserveLengthPreserveDomainExample InputExample Output
falsetruejoe@gmail.comf98723uh@gmail.com
truefalsejoe@gmail.com9cd@ms0ej.com
truetruejoe@gmail.commDy@bdo3s.com
falsefalsejoe@gmail.comfweq23f@fheuiw78.edu

Generate Boolean

The genereate boolean transformer randomly generates a boolean value.

Configurations

There are no configurations for the random boolean transformer.

Examples

Here are some examples of what an output random boolean value may look like.

Example InputExample Output
N/Atrue
N/Afalse

Generate Card Number

The generate card number transformer generates a new card number that is luhn valid.

By default, the card number transformer generates a random 16 digit card number that is not luhn valid. If you want luhn validation, please set the luhn-check config to true.

Configurations

Depending on your validations, you may want to configure the output card number. The card number transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Luhn CheckGenerate a card number that can pass luhn validation.trueN/A6621238134011099

Examples

Here are some examples of an output card number:

Luhn CheckExample InputExample Output
falseN/A3627893345931223
trueN/A6621238134011099

Generate City

The generate city transformers generates a randomly selected US city. You can see the complete list of cities that are available to be randomly selected here.

If you'd rather not get back a real city value, you can use the Generate Random String Transformer to generate a random string value.

Configurations

There are no configurations for the city transformer.

Examples

Here are some examples of what an output City value may look like.

Example InputExample Output
N/AManchester
N/ALouisville

Generate E164 Phone Number

The generate e164 phone transformer generates a new international phone number including the + sign. By default, the generate e164 transformer generates a random 12 digit number with no hyphens in the format:

+34567890123

TPhone numbers also vary in length with some international phone numbers reaching up to 15 digits in length. You can set this transformer to be a certain length by passing in the length configuration. Here is more information on the e164 format. This transformer also has a min of 9 and a max of 15. If you want to generate a number that is longer than that, you can use the Generate Random int64 transformer

Configurations

Depending on your validations, you may want to configure the output e164 phone number:

NameDescriptionDefaultExample InputExample Output
LengthLength will generate a string value of that length including the + sign.12N/A+29037486752

Examples

There are several ways you can mix-and-match configurations to get different potential phone number formats. Here are some possible combinations:

LengthExample InputExample Output
12N/A5209273239
10N/A520-927-3239
9N/A520927323239
falseN/A+520922339
true+N/A+520927323921

Generate First Name

The generate first name transformer generates a valid first name from a list of predefined first name values. You can see the entire list of first name value here.

By default, the generate first name transformer randomly picks a first name with a length between 2 and 12.

Configurations

There are no configurations for this transformer.

Examples

There are several ways you can mix-and-match configurations to get different first name formats. Here are some possible combinations:

Example InputExample Output
N/ABenjamin
N/AGregory
N/AAshley

Generate Float64

The generate float transformer generates a random floating point number.

For example: 32.2432

By default, the random float transformer generates a floating point number with 3 digits before the decimal point and 3 digits after the decimal point.

Configurations

Depending on your validations, you may want to configure the output float. The random float transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
SignSets the sign of the value. Options are: positive, negative, random. positiveN/A873.923
Digits before DecimalSpecifies how many digits you want before the decimal place. This has a max of 9 digits. 3N/A94.17
Digits after DecimalSpecifies how many digits you want after the decimal place. This has a max of 9 digits. 3N/A34.8

Examples

There are several ways you can mix-and-match configurations to get different potential random float formats. Here are some possible combinations:

SignDigits before DecimalDigits after DecimalExample InputExample Output
positiveN/AN/AN/A283.824
negative41N/A-9872.8
random32N/A542.19
random23N/A-92.129

Generate Full Address

The generate full address transformer generates a randomly selected real full address that exists in the United States. You can see the complete list of full addresses that are available to be randomly selected here.

The full address transformer returns a valid United States address. For example: 123 Main Street Boston, Massachusetts, 02169

Configurations

There are no configurations for the full adddress transformer.

Examples

Here are some examples of what an output full address value may look like.

Example InputExample Output
N/A509 Franklin Street Northeast Washington, DC, 20017
N/A14 Huntingon Street Manchester, CT 06040

Generate Full Name

The generate full name transformer generates a valid full name from a list of predefined full name values. The generated full name is made from a combination of the first and last names transformers.

Configurations

There are no configurations for this transformer.

Examples

Here are some examples of what an output full name value may look like.

Example InputExample Output
N/AEdward Marshall
N/ADante Mayer
N/AGregory Johnson

Generate Gender

The generate gender transformer randomly selects a gender value from a predefined list of genders. Here is the list:

GenderAbbreviation
malem
femalef
nonbinaryn
undefinedu

By default, the gender transformer does not abbreviate the gender. If you'd like to return an abbreviated gender, pass in the abbreviate config.

Configurations

Depending on your validations, you may want to configure the output gender. The gender transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
AbbreviateAbbreviate will abbreviate the output gender so that it is only one character. falseN/Au

Examples

There are several ways you can mix-and-match configurations to get different full name formats. Here are some possible combinations:

AbbreviateExample InputExample Output
falseN/Amale
trueN/Af
falseN/Anonbinary

Generate Int64 Phone Number

The generate int64 phone number generates a random 10 digit phone number and returns it as an int64 type with no hyphens. If you want to return a string or want to include hyphens, check out the Generate String Phone transformer.

For example, the generate int64 phone number transformer could generate the following ouput value: 5698437232

Configurations

There are no configurations for this transformer.

Examples

Here are some examples of what the output values could look like:

Example InputExample Output
N/A5209273239
N/A9378463528

Generate Random Int64

The generate random int64 transformer generates a random integer and returns it as a int64 type.

For example: 6782

By default, the generate random int64 transformer generates an integer of 4 digits long.

Configurations

Depending on your validations, you may want to configure the output float. The random integer transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
SignSets the sign of the value. Options are: positive, negative, random.positiveN/A78223
LengthSpecifies how many digits you want the integer to be. This has a min of 1 and a max of 18 digits. 4N/A2782

Examples

There are several ways you can mix-and-match configurations to get different potential random integer formats. Here are some possible combinations:

SignLengthExample InputExample Output
positive5N/A23324
negative4N/A-6721
random2N/A54
random5N/A-58419

Generate Last Name

The generate last name transformer generates a valid last name from a list of predefined last name values. You can see the entire list of last name value here..

Configurations

This transformer has no configurations.

Examples

Here are some possible output examples:

Example InputExample Output
N/ADach
N/ASporer
N/ARodriguezon

Generate SHA256 Hash

The generate sha256 hash transformer generates a random SHA256 hash and hex encodes the resulting value and returns it as a string.

Configurations

There are no configurations for the hash transformer.

Examples

Here are some examples of what an output hash value may look like.

Example InputExample Output
N/A1b836d86806e16bd45164b9d665ce86dac9d9d55bf79d0e771265da9fbf950d1
N/Ac74f07e35232c844a6639fef0c82ad093351cfa1a1b458fd2afc44cc19211508C
N/A18dd7ce288e5538fbdd9c736aa9951ddb317e42c0b928e2b4db672414a82f811

Generate SSN

The generate ssn transformer randomly generates a social security number and returns it with hyphens as a string.

For, example: 123-45-6789

Configurations

There are no configurations for the ssn transformer.

Examples

Here are some examples of what an output street address value may look like.

Example InputExample Output
N/A892-23-7634
N/A479-82-3224

Generate State

The generate state transformer generates a randomly selected US state. You can see the complete list of states that are available to be randomly selected here..

If you'd rather not get back a real state value, you can use the Random String Transformer to generate a random string value.

Configurations

There are no configurations for the state transformer.

Examples

Here are some examples of what an output state value may look like.

Example InputExample Output
N/ARhode Island
N/AMissouri

Generate Street Address

The generate street address transformer generates a randomly selects a real street address that exists in the United States. You can see the complete list of street addresses that are available to be randomly selected here..

The street address transformer returns a valid United States address. For example: 123 Main Street Boston

Configurations

There are no configurations for the street adddress transformer.

Examples

Here are some examples of what an output street address value may look like.

Example InputExample Output
N/A509 Franklin Street Northeast
N/A14 Huntingon Street

Generate String Phone Number

The generate string phone transformer generates a random string phone number. By default, the string phone transformer generates a random 10 digit phone number with no hyphens.

Configurations

Depending on your validations, you may want to configure the output phone number. The generate string phone number transformer has the following configuration:

NameDescriptionDefaultExample InputExample Output
Include hyphensIncludes hyphens in the output phone numnber. Note that this config can only be used with default 10 digit phone numbers. falseN/A290-374-8675

Examples

There are several ways you can mix-and-match configurations to get different potential phone number formats. Here are some possible combinations:

Include HyphensExample InputExample Output
falseN/A5209273239
trueN/A520-927-3239
falseN/A2927323921

Generate Random String

The generate random string transformer generates a random string of alphanumeric characters.

For example: h2983hf28h92

By default, the random string transformer generates a string of 10 characters long.

Configurations

Depending on your validations, you may want to configure the output string. The generate string transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
lengthSpecifies how many digits you want the string to be. 6N/AnoIB8a

Examples

There are several ways you can mix-and-match configurations to get different potential random integer formats. Here are some possible combinations:

LengthExample InputExample Output
5N/Aje7R6
10N/A29h23rega9
2N/Ah2

Generate Unix Timestamp

The generate unix timestamp transformer randomly generates a unix timestamp in UTC timezone and returns back an int64 representation of that timestamp.

By default, the generated timestamp will always be in the past.

Configurations

There are no configurations for this transformer.

Examples

Here are some examples of what an output state value may look like.

Example InputExample Output
N/A2524608000
N/A946684800

Generate Username

The generate username transformer generates a random string in the format of <first_initial><last_name>. The last names are pulled from the last name transformer(/transformers/system#generate-last-name).

Configurations

There are no configurations for the state transformer.

Examples

Here are some examples of what an output state value may look like.

Example InputExample Output
N/Ajdoe
N/Alsmith

Generate UTC Timestamp

The generate utc timestamp transformer randomly generates a utc timestamp in UTC timezone and returns back an time.Time representation of that timestamp.

By default, the generated timestamp will always be in the past.

Configurations

There are no configurations for this transformer.

Examples

Here are some examples of what an output state value may look like.

Example InputExample Output
N/AJuly 8, 2025, 00:00:00 UTC
N/ASeptember 21, 1989, 00:00:00 UTC

Generate UUID

The generate UUID transformer generates a new UUID v4.

For example: 6d871028b072442c9ad9e6e4e223adfa

Configurations

Depending on your validations, you may want to configure the output uuid. The uuid transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Include hyphensIncludes hyphens in the output UUID. Note: For some databases, such as Postgres, it will automatically convert any UUID without hyphens to having hyphens. falseN/A6817d39c-ea4f-45ec-a81c-bc0801355576

Examples

Here are some example UUID values that the uuid transformer can generate:

Include HyphensExample InputExample Output
falseN/A53ef1f16cd0d455cb45c4cb6434ae807
trueN/Aab6b676b-0d0e-4e38-b98a-3935a832da7d

Generate Zipcode

The generate zipcode transformer generates a randomly selected US zipcode. You can see the complete list of zipcodes that are available to be randomly selected here..

If you'd rather not get back a real zipcode value, you can use the Random String Transformer to generate a random string value.

Configurations

There are no configurations for the zipcode transformer.

Examples

Here are some examples of what an output zipcode value may look like.

Example InputExample Output
N/A27563
N/A90237

Transform E164 Phone Number

The transform e164 phone transformer can anonymize an existing e164 phone number or completely generate a new one. It returns a string value with the format +<number>.

For example, the following input value: +7829828714

Could produce the following ouput value: +5698437232

E164 Phone numbers vary in length with some international phone numbers reaching up to 15 digits in length. You can set this transformer to respect the length of the input value in order maintain the same shape as the input value.

Configurations

Depending on your validations, you may want to configure the output e164 phone number. The transform e164 phone number transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Preserve LengthPreserve Length will ensure that the output e164phone number is the same length as the input phone number. If set to false, it will generate a value between 9 and 15 characters long.false+8923786243+290374867526

Examples

Here are some examples of what the transform e164 phone number tranformer can output:

Preserve LengthExample InputExample Output
false+2890923784+520927392
true+62890923784+52092732393

Transform First Name

The transform first name transformer generates a valid first name from a list of predefined first name values. You can see the entire list of first name value here..

By default, the first name transformer generates a first name of random length. To preserve the length of the input first name, you can set the preserveLength config.

Configurations

Depending on your validations, you may want to configure the output first name. The first name transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
PreserveLengthPreserve Length will ensure that the output first name is the same length as the input first name. The preserveLength config only preserves names up to 12 characters long.falseJohnathanBill

Examples

Here are some examples of what the transform first name tranformer can output:

PreserveLengthExample InputExample Output
falseJoeBenjamin
trueFrankDante

Transform Float64

The transform float transformer can anonymize an existing float64 value or generate a compeletely random floating point number.

For example: 32.2432

By default, the random float transformer generates a floating point number with 3 digits before the decimal point and 3 digits after the decimal point.

Configurations

Depending on your validations, you may want to configure the output float. The random float transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Preserve LengthPreserves the length of the input float to the output float while maintaining the placement of the decimal.false1.34873.923
PreserveSignPreserves the sign of the value. If false, will always return a positive value. true-67.2-71.523

Examples

There are several ways you can mix-and-match configurations to get different potential random float formats. Here are some possible combinations:

PreserveLengthPreserve SignExample InputExample Output
falsetrue89.232233.824
truefalse2.3449.813
truetrue-8.23-4.19

Transform Full Name

The transform full name transformer generates a valid full name from a list of predefined full name values. The generated full name is made from a combination of the first and last names transformers.

By default, the full name transformer generates a full name of random length. To preserve the length of the input full name, you can set the preserveLength config.

Configurations

Depending on your validations, you may want to configure the output full name. The full name transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
PreserveLengthPreserve Length will ensure that the output full name is the same length as the input full name by preserving the length of the first and last names. The preserveLength config only preserves first and/or last names up to 12 characters long. So the max full name length is 25 characters.falseJohnBill

Examples

There are several ways you can mix-and-match configurations to get different full name formats. Here are some possible combinations:

PreserveLengthExample InputExample Output
falseJoe SmithEdward Marshall
trueFrank JonesDante Mayer
falseAidan BellGregory Johnson

Transform Int64 Phone Number

The transform int64 phone transformer can anonymize an existing phone number or completely generate a new one. By default, the transform int64 phone number transformer generates a random 10 digit phone number.

For example, the following input value: 7829828714

Would produce the following ouput value: 5698437232

You can see we generated a new phone integer value that can be used as an integer phone number. Also, note that we don't include hyphens in this transformer since the output type is an integer.

#Configurations

Depending on your validations, you may want to configure the output phone number.

NameDescriptionDefaultExample InputExample Output
PreserveLengthPreserve Length will ensure that the output phone number is the same length as the input phone number.false8923877862432903748675392

Examples

Here are some possible example output values:

PreserveLengthExample InputExample Output
false28909237845209273239
true38393049576395745371

Transform Int64

The random integer transformer generates a random integer.

For example: 6782

By default, the random int transformer generates an integer of 4 digits long.

Configurations

Depending on your validations, you may want to configure the output integer. The random integer transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Preserve LengthPreserves the length of the input float to the output float while maintaining the placement of the decimal.false1.34873.923
PreserveSignPreserves the sign of the value. If false, will always return a positive value. true-672-71523

Examples

There are several ways you can mix-and-match configurations to get different potential random int64 values. Here are some possible combinations:

PreserveLengthPreserve SignExample InputExample Output
falsetrue89232233824
truefalse23449813
truetrue-823-439

Transform Last Name

The transform last name transformer generates a valid last name from a list of predefined last name values. You can see the entire list of last name value here..

By default, the last name transformer generates a last name of random length. To preserve the length of the input last name, you can set the preserveLength config.

Configurations

Depending on your validations, you may want to configure the output last name. The last name transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
PreserveLengthPreserve Length will ensure that the output last name is the same length as the input last name. The preserveLength config only preserves names up to 12 characters long.falseHillsKunze

Examples

There are several ways you can mix-and-match configurations to get different last name formats. Here are some possible combinations:

PreserveLengthExample InputExample Output
falseLeiDach
trueLittelSporer
falseJohnsonstonRodriguezon

Transform Phone Number

The transform phone transformer can anonymize an existing phone number or completely generate a new one. This transformer specifically takes a string value and returns a string value.

By default, the transform phone transformer generates a random 10 string value phone number with no hyphens.

For example, the following input value: 7829828714

Would produce the following ouput value: 5698437232

Configurations

Depending on your validations, you may want to configure the output phone number. Here are the configurations for the transform string phone number transformer.

NameDescriptionDefaultExample InputExample Output
Include hyphensIncludes hyphens in the output phone numnber. Note that this config can only be used with default 10 digit phone numbers. false9238724378290-374-8675
PreserveLengthPreserve Length will ensure that the output phone number is the same length as the input phone number.false892387243786243290374867526392

Examples

There are several ways you can mix-and-match configurations to get different potential phone number formats. Here are some possible combinations:

PreserveLengthInclude HyphensExample InputExample Output
falsefalse28909237845209273239
falsetrue2890923784520-927-3239
truefalse289092378423520927323239
truetrue2890923784520-922-3539

Transform String

The random string transformer generates a random string of alphanumeric characters.

For example: h2983hf28h92

By default, the random string transformer generates a string of 10 characters long.

Configurations

Depending on your validations, you may want to configure the output string. The random string transformer has the following configurations:

NameDescriptionDefaultExample InputExample Output
Preserve LengthPreserves the length of the input integer to the output string.falsehello9Fau3

Examples

There are several ways you can mix-and-match configurations to get different potential random integer formats. Here are some possible combinations:

PreserveLengthExample InputExample Output
falsebillje7R6
trueloremi1NMe

Passthrough

The passthrough tranformer simplfy passes the input data out to the output without making any modications to it. This is useful in many circumstances but cautious of accidently leaking sensitive data through this transformer.

Null

The null transformer simply returns a null value. This may be useful if you a column that can't be null but don't have a specific value that you want to insert.

Configurations

There are no configurations for the null transformer.

Examples

Here are some examples of what an output null value may look like.

Example InputExample Output
N/Anull