# 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="/files/TCcri32TBaQzy2TyC6Ou" 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="/files/d20yAb25vfuxLmIB63AH" 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="/files/3PxQh21mWqRmQRIXar6E" 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="/files/kIhUvEiDS1D6tXHTLCOM" 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="/files/hRZK0s2lzJM3JsRxUOdk" 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](/flow-control/iterators.md).

<div align="left"><figure><img src="/files/pnNPMmhjXDkHIKDuetVq" 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       |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.relay.app/built-in-actions/transform-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
