# Transform Data

Relay.app has a powerful transform data step that lets you transform your data in any way you want. This is very useful in case you need to do things such as multiplying a number, converting a number to a string, or adding a couple of days to date.

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-bbab264f6886758ae59e586909cb6f7e7ae08c67%2FCleanShot%202025-02-21%20at%2016.09.41.png?alt=media" alt="Relay.app step creation dialog showing Transform data option highlighted in the Utilities section" width="563"><figcaption><p>You can find the 'Transform data' step in the 'Utilities' menu</p></figcaption></figure></div>

\
Here is a short video on how to use and configure the transform data step:

{% embed url="<https://youtu.be/XZ5dTAZ8ZJU?si=0lgv6uGBE8gDEaW1>" %}

## Data Transformation examples

### 1. Format a Date the way you need it

Use the "Format as text" option in the transform menu to format a date or date-time into a specifically formatted string

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-f5e2aeeaa04744272aea9ebb5106917e7782dc70%2FCalendar%20-%20Date%20to%20Text.png?alt=media" alt="Transform data step showing date formatting configuration with input date and output text format" width="375"><figcaption><p>Format a date</p></figcaption></figure></div>

### 2. Extract the (company) domain from an email address

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-a084371375143f3eaa72e92bb88ec703e011271b%2FGmail%20-%20Extract%20domain%20from%20email%20address.png?alt=media" alt="Transform data step configured to extract domain from email address using Extract domain transformation" width="375"><figcaption><p>Extract the @domain from an email address</p></figcaption></figure></div>

### 3. Add/subtract/multiply/divide numbers

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-fba33475cd1e0a951faa360190a0b3ebdfd3fb6b%2FSheets%20-%20Arithmetic.png?alt=media" alt="Transform data step showing arithmetic operations configuration with number input and mathematical transformation options" width="375"><figcaption><p>Perform arithmetic operations on numbers</p></figcaption></figure></div>

### 4. Format a number as a currency

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-0c2392c6c3c541b463376f84098fc7f592484835%2FSheets%20-%20ARR%20to%20text.png?alt=media" alt="Transform data step configured to format a number as currency using the As currency transformation" width="375"><figcaption><p>Format a number as any currency</p></figcaption></figure></div>

### 5. Convert comma-separated-values into a List

Use this powerful data transformation to split comma-separated values of text (e.g. `Jane, John, Mike, Alex` ) into a List that can be used with an [Iterator](https://docs.relay.app/flow-control/iterators).

<div align="left"><figure><img src="https://647519108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXkKoEy3xMIYaIwd4mRAB%2Fuploads%2Fgit-blob-cc8d4a39789d5787efd5bcecce90d5fc5ba9cc67%2FWebhook%20-%20CSV%20to%20List.png?alt=media" alt="Transform data step showing Split into list transformation converting comma-separated text into a list format" width="375"><figcaption><p>Split comma-separated values into a List</p></figcaption></figure></div>

## Full list of Data Transformations

*Updated : 2025-11-28*

| Input     | Transformation             | Output    |
| --------- | -------------------------- | --------- |
| Text      | Adjust case                | Text      |
| Text      | Append text                | Text      |
| Text      | Base64 decode              | Text      |
| Text      | Base64 encode              | Text      |
| Text      | From A to B                | Text      |
| Text      | Get value at pointer       | Text      |
| Text      | Hash                       | Text      |
| Text      | HMAC                       | Text      |
| Text      | Length                     | Number    |
| Text      | Lowercase                  | Text      |
| Text      | Pad end                    | Text      |
| Text      | Pad start                  | Text      |
| Text      | Parse as date              | Date      |
| Text      | Parse as date/time         | DateTime  |
| Text      | Parse as Email             | Email     |
| Text      | Parse as HTML              | Rich Text |
| Text      | Parse as JSON              | Text      |
| Text      | Parse as Markdown          | Rich Text |
| Text      | Parse as number            | Number    |
| Text      | Parse as phone number      | Phone     |
| Text      | Parse as URL               | URL       |
| Text      | Prepend text               | Text      |
| Text      | Replace all                | Text      |
| Text      | Replace text               | Text      |
| Text      | Split and take             | Text      |
| Text      | Split into list            | List      |
| Text      | Trim                       | Text      |
| Text      | Uppercase                  | Text      |
| Text      | URL encode                 | Text      |
| Rich Text | Plain text                 | Text      |
| Rich Text | Plain text (as Markdown)   | Text      |
| Number    | Absolute                   | Number    |
| Number    | Add                        | Number    |
| Number    | As currency                | Text      |
| Number    | As ordinal                 | Text      |
| Number    | As text                    | Text      |
| Number    | As words                   | Text      |
| Number    | Ceiling                    | Number    |
| Number    | Divide by                  | Number    |
| Number    | Floor                      | Number    |
| Number    | Logarithm                  | Number    |
| Number    | Modulo by                  | Number    |
| Number    | Multiply by                | Number    |
| Number    | Parse as duration in unit  | Duration  |
| Number    | Parse as Unix milliseconds | DateTime  |
| Number    | Parse as Unix seconds      | DateTime  |
| Number    | Raise to power             | Number    |
| Number    | Round                      | Number    |
| Number    | Subtract                   | Number    |
| DateTime  | Add                        | DateTime  |
| DateTime  | Add duration               | DateTime  |
| DateTime  | As date/time text          | Text      |
| DateTime  | As ISO 8601 string         | Text      |
| DateTime  | As Unix milliseconds       | Number    |
| DateTime  | As Unix seconds            | Number    |
| DateTime  | Difference to now          | Duration  |
| DateTime  | Extract date               | Date      |
| DateTime  | Extract day of week        | Text      |
| DateTime  | Extract time               | Time      |
| DateTime  | Nearest working day        | DateTime  |
| DateTime  | Next working day           | DateTime  |
| DateTime  | Set time                   | DateTime  |
| DateTime  | Shift to time zone         | DateTime  |
| DateTime  | Start of                   | DateTime  |
| DateTime  | Subtract                   | DateTime  |
| DateTime  | Subtract duration          | DateTime  |
| DateTime  | Time since                 | Duration  |
| DateTime  | Time until                 | Duration  |
| Date      | Add                        | Date      |
| Date      | Add duration               | Date      |
| Date      | As date/time text          | Text      |
| Date      | As ISO 8601 string         | Text      |
| Date      | As Unix milliseconds       | Number    |
| Date      | As Unix seconds            | Number    |
| Date      | Difference to now          | Duration  |
| Date      | Extract day of week        | Text      |
| Date      | Nearest working day        | Date      |
| Date      | Next working day           | Date      |
| Date      | Set time                   | DateTime  |
| Date      | Start of                   | DateTime  |
| Date      | Subtract                   | Date      |
| Date      | Subtract duration          | Date      |
| Date      | Time since                 | Duration  |
| Date      | Time until                 | Duration  |
| Time      | As ISO 8601 string         | Text      |
| Time      | As text                    | Text      |
| Time      | As text with format        | Text      |
| Duration  | Add                        | Duration  |
| Duration  | Add to date                | DateTime  |
| Duration  | Add to date                | Date      |
| Duration  | As ISO 8601 string         | Text      |
| Duration  | As number                  | Number    |
| Duration  | As text                    | Text      |
| Duration  | Subtract                   | Duration  |
| Duration  | Subtract from date         | DateTime  |
| Duration  | Subtract from date         | Date      |
| List      | Join list items            | Text      |
| List      | Maximum list item          | Number    |
| List      | Maximum list item          | Duration  |
| List      | Minimum list item          | Number    |
| List      | Minimum list item          | Duration  |
| List      | Size                       | Number    |
| List      | Sum list items             | Number    |
| List      | Sum list items             | Duration  |
| Name      | Get family name            | Text      |
| Name      | Get given name             | Text      |
| Email     | Extract domain             | Text      |
| Email     | Lowercase                  | Email     |
| URL       | Add URL parameter          | URL       |
| URL       | Extract domain             | Text      |
| URL       | Remove URL parameter       | URL       |
