# Transform
URL: https://docs.awellhealth.com/docs/marketplace/transform

> For the complete documentation index, see [llms.txt](https://docs.awellhealth.com/llms.txt).



<img src="/marketplace/transform.jpg" width="48" height="48" />

Transform is an extension on Awell's Marketplace with utility functions that allows you to transform data from one type to another.

Category: Data. Adds 12 actions to a care flow.

## Actions [#actions]

Transform adds these 12 actions to a care flow. Add one to a step, then fill in its inputs.

### Combine date and time [#combine-date-and-time]

Combine a reference date with a time string to create an ISO8601 datetime in UTC.

This action can be previewed in Studio before you publish.

| Input          | Type     | Required | Description                                                                                                                              |
| -------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Reference date | `date`   | Yes      | The date you want to use as the base for the combined datetime.                                                                          |
| Time string    | `string` | Yes      | The time in ISO format HH:mm:ss (e.g., "14:30:00" not "2PM") or full ISO8601 datetime with timezone (e.g., "2025-09-06T15:34:44+02:00"). |

Returns:

| Data point         | Type   |
| ------------------ | ------ |
| `combinedDateTime` | `date` |

Combines a reference date with a time string to create a complete datetime in UTC format. This action supports two input formats for the time string:

1. \*\*Simple time format (HH:mm:ss): Combines the reference date with the specified time in ISO format (e.g., "14:30:00" not "2PM")
2. Full datetime with timezone: Accepts ISO8601 datetime strings with timezone offsets and converts them to UTC

Examples:

Example 1 - Simple time combination:

```
Reference date: 2025-09-13
Time string: 17:45:00
Result: 2025-09-13T17:45:00Z
```

Example 2 - Reference date precedence with timezone-aware datetime:

```
Reference date: 2025-09-01
Time string: 2025-09-06T15:34:44+02:00
Result: 2025-09-01T13:34:44Z (reference date takes precedence, time converted from +02:00 to UTC)
```

Example 3 - Different timezone offset\*\*:

```
Reference date: 2025-09-06
Time string: 2025-09-06T10:30:00-05:00
Result: 2025-09-06T15:30:00Z (converted from -05:00 to UTC)
```

This action is particularly useful for scheduling systems like Bland API where you need to combine dates and times from different sources, or when working with timezone-aware scheduling data that needs to be normalized to UTC.

### Feet and inches to inches [#feet-and-inches-to-inches]

Transform feet and inches to inches

This action can be previewed in Studio before you publish.

| Input  | Type      | Required | Description |
| ------ | --------- | -------- | ----------- |
| Feet   | `numeric` | Yes      | —           |
| Inches | `numeric` | Yes      | —           |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `inches`   | `number` |

Converts a measurement in feet and inches to just inches.

### Generate dynamic URL [#generate-dynamic-url]

Generate a dynamic URL based on a URL template with a placeholder and a data point

| Input        | Type     | Required | Description                                                                                                                                       |
| ------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| URL template | `string` | Yes      | The URL with the placeholder marked by double curly braces like (e.g. [https://your-url.com/\[placeholder](https://your-url.com/\[placeholder)]). |
| Value        | `string` | No       | The actual value to replace the placeholder with. When left blank, we will use the id of orchestrated care flow.                                  |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `url`      | `string` |

Generate a dynamic URL based on a URL template with placeholder and a data point value.

```
urlTemplate   https://your-url.com/{{placeholder}}
value         hello-world
outcome       https://your-url.com/hello-world
```

### HTML to PDF [#html-to-pdf]

Convert an HTML string to a PDF base64 string, to be uploaded or sent in a future action

| Input       | Type     | Required | Description                                                                                                         |
| ----------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| HTML string | `string` | Yes      | The HTML string to convert to a PDF.                                                                                |
| Options     | `json`   | No       | The options for the PDF. See [https://pptr.dev/api/puppeteer.pdfoptions](https://pptr.dev/api/puppeteer.pdfoptions) |

Returns:

| Data point  | Type     |
| ----------- | -------- |
| `base64Pdf` | `string` |

### List to comma separated text [#list-to-comma-separated-text]

Transform or parse list (string array) to a comma separated text.

| Input | Type           | Required | Description                                               |
| ----- | -------------- | -------- | --------------------------------------------------------- |
| List  | `string_array` | Yes      | The list you want to transform to a comma separated text. |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `listText` | `string` |

### Parse date to unix timestamp [#parse-date-to-unix-timestamp]

Transform or parse a date to a unix timestamp.

This action can be previewed in Studio before you publish.

| Input | Type   | Required | Description                                     |
| ----- | ------ | -------- | ----------------------------------------------- |
| Date  | `date` | Yes      | The date you want to parse to a unix timestamp. |

Returns:

| Data point      | Type     |
| --------------- | -------- |
| `unixTimestamp` | `string` |

Transform or parse a date to a unix timestamp.

### Parse number to text [#parse-number-to-text]

Transform or parse number to text (string).

This action can be previewed in Studio before you publish.

| Input  | Type      | Required | Description                                      |
| ------ | --------- | -------- | ------------------------------------------------ |
| Number | `numeric` | Yes      | The number you want to parse to a text (string). |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `text`     | `string` |

Transform or parse a number to text (string).

### Parse number to text with dictionary [#parse-number-to-text-with-dictionary]

Transform or parse a number to text based on a dictionary.

This action can be previewed in Studio before you publish.

| Input      | Type      | Required | Description                                                                                               |
| ---------- | --------- | -------- | --------------------------------------------------------------------------------------------------------- |
| Number     | `numeric` | Yes      | The number you want to parse to a text (string)                                                           |
| Dictionary | `json`    | Yes      | A JSON dictionary where each string key represents a number and maps to a corresponding string/text value |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `text`     | `string` |

Transform or parse a number to a string using a dictionary. Useful for when you have numeric data points but want to map them to strings based on a dictionary. When the action is called with a number that does not have a corresponding mapping in the provided dictionary, it simply returns the number itself as a string.

The dictionary should be structured in JSON format with string keys mapping to string values. Each key represents a number (as a string), and each value is the corresponding text representation.

**Example**:

```json
{
  "0": "Male",
  "1": "Female",
  "2": "Not known",
  // ... other number mappings ...
}
```

### Parse text to phone number [#parse-text-to-phone-number]

Transform or parse text to a phone number.

This action can be previewed in Studio before you publish.

| Input                | Type      | Required | Description                                                                                                                                               |
| -------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Text                 | `string`  | Yes      | The text you want to parse to a phone number                                                                                                              |
| Country calling code | `numeric` | No       | The country calling code you want to use for the phone number in case the phone number is not in E164 format. Enter the country calling code as a number. |

Returns:

| Data point    | Type        |
| ------------- | ----------- |
| `phoneNumber` | `telephone` |

### Parse text to number [#parse-text-to-number]

Transform or parse text (string) to a number. Will return NaN if the input data is not a number.

This action can be previewed in Studio before you publish.

| Input | Type     | Required | Description                                                                                   |
| ----- | -------- | -------- | --------------------------------------------------------------------------------------------- |
| Text  | `string` | Yes      | The text you want to parse to a number. Will return NaN if the input is not an actual number. |

Returns:

| Data point | Type     |
| ---------- | -------- |
| `number`   | `number` |

Transform or parse text (string) to a number. Will return NaN if the input data is not an actual number.

### Parse unix timestamp to date [#parse-unix-timestamp-to-date]

Transform or parse a unix timestamp to a date.

This action can be previewed in Studio before you publish.

| Input          | Type      | Required | Description                                     |
| -------------- | --------- | -------- | ----------------------------------------------- |
| Unix timestamp | `numeric` | Yes      | The unix timestamp you want to parse to a date. |

Returns:

| Data point | Type   |
| ---------- | ------ |
| `date`     | `date` |

### Serialize JSON [#serialize-json]

Serialize a JSON object

This action can be previewed in Studio before you publish.

| Input | Type   | Required | Description                                 |
| ----- | ------ | -------- | ------------------------------------------- |
| JSON  | `json` | Yes      | The data object you would like to stringify |

Returns:

| Data point       | Type     |
| ---------------- | -------- |
| `serializedJson` | `string` |

## Setup and notes [#setup-and-notes]

Transform is an extension on Awell's Marketplace with utility functions that allows you to transform data from one type to another. These functions are particularly useful e.g. when system A works with IDs that are numbers but system B works with IDs that are strings.

#### Parse unix timestamp to unix date [#parse-unix-timestamp-to-unix-date]

Transform or parse a unix timestamp to a date.

## Changelog [#changelog]

### June 2024 [#june-2024]

* Added "Feet and inches to inches" action

### March 2024 [#march-2024]

* Added "Generate dynamic URL" action

### January 2024 [#january-2024]

* Added "Parse number to text with dictionary" action

## Where this page comes from [#where-this-page-comes-from]

The settings, actions, inputs, outputs and webhooks above are generated from the
extension's own code, at `@awell-health/awell-extensions` v2.1.159. They match what the
platform actually does rather than a description of it.

Field-level detail also appears in Awell Studio when you configure the action.
Something wrong or missing? Email [support@awellhealth.com](mailto:support@awellhealth.com).
