---
schema_version: "1"
id: 29756e5073ed8aab86c819948cf51c7e8d37bf1017aeb022782a1c0b82f258a4
title: List Input for Omnistudio Data Mappers (Managed Package)
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/os_list_input_for_dataraptors.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_list_input_for_dataraptors.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 1f7e759d53a93c9bd1007044b44981a6c5df99efd0024e75fcffb68b300b87d5
description: For the managed package runtime, Data Mappers can perform list transformations. For mapping input to output, Data Mappers require a list input in which every value is paired with a key.
products:
  - Omnistudio
release: "264"
---
# List Input for Omnistudio Data Mappers (Managed Package)

For the managed package runtime, Data Mappers can perform list transformations. For mapping input to output, Data Mappers require a list input in which every value is paired with a key.

![Managed Package app icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/resources-global/_corporate/images/managedpackageicon.png) This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see [Omnistudio Help](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_standard.htm&language=en_US).

For example, the following lists are valid, and each can be converted to the other.

List 1:

```
{
 "Oldest": "Huey",
 "Middle": "Dewey",
 "Youngest": "Louie"
}
```

List 2:

```
{
    "Nephews": [
        {
            "Name": "Huey"
        },
        {
            "Name": "Dewey"
        },
        {
            "Name": "Louie"
        }
    ]
}
```

List 1 lacks a JSON node for the list as a whole, and each value has a different key. List 2 has its own JSON node, and each list item has the same key.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/images/icon_note.png)

Note

Loop Block components in Integration Procedures require input that is structured like List 2. The list-item key itself can contain key-value pairs.

To convert List 1 to List 2, use the following mappings on the Transforms tab of a Data Mapper Transform. The `|1`, `|2`, and `|3` are list position indexes.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col>
        <col>
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d125419e82">
            <p style="margin-bottom:0;">Input JSON Path</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d125419e88">
            <p style="margin-bottom:0;">Output JSON Path</p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e82 ">
            <p style="margin-bottom:0;">Oldest</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e88 ">
            <p style="margin-bottom:0;">Nephews|1:Name</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e82 ">
            <p style="margin-bottom:0;">Middle</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e88 ">
            <p style="margin-bottom:0;">Nephews|2:Name</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e82 ">
            <p style="margin-bottom:0;">Youngest</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e88 ">
            <p style="margin-bottom:0;">Nephews|3:Name</p>
          </td>

        </tr>
      </tbody>
    </table>

To convert List 2 to List 1, use the reverse mappings.

To download data packs of Data Mapper Transforms for these mappings, click these links:

- [List 1 to List 2 example](https://volt.my.salesforce.com/sfc/p/o0000000IKm8/a/3m0000005uIf/k27OjF0ToHjUKpEahqhKqxBrwkzPwRvXeTxECK9E6Q0) for Omnistudio for Managed Packages
- [List 2 to List 1 example](https://volt.my.salesforce.com/sfc/p/o0000000IKm8/a/3m0000005uIk/w0O5JwMBi2BqSgq5dN2xW4Jly3nranzNA8a2xQ7AYks) for Omnistudio for Managed Packages

Importing Omnistudio for Managed Packages data packs into Omnistudio orgs is supported, and conversion is automatic. However, importing Omnistudio data packs into Omnistudio for Managed Packages orgs isn't supported.

In the following list, values don't have keys.

List 3:

```
{
  "Nephews": [
    "Huey",
    "Dewey",
    "Louie"
  ]
}
```

You can convert List 1 to List 3 using the following mappings:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col>
        <col>
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d125419e200">
            <p style="margin-bottom:0;">Input JSON Path</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d125419e206">
            <p style="margin-bottom:0;">Output JSON Path</p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e200 ">
            <p style="margin-bottom:0;">Oldest</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e206 ">
            <p style="margin-bottom:0;">Nephews|1</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e200 ">
            <p style="margin-bottom:0;">Middle</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e206 ">
            <p style="margin-bottom:0;">Nephews|2</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Input JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e200 ">
            <p style="margin-bottom:0;">Youngest</p>
          </td>

          <td data-label="Output JSON Path" class="slds-cell-wrap" style="vertical-align:top;" headers="d125419e206 ">
            <p style="margin-bottom:0;">Nephews|3</p>
          </td>

        </tr>
      </tbody>
    </table>

However, you can't convert List 3 to either List 1 or List 2.

To convert List 2 to List 3, and to perform such conversions of lists of any length, see [Convert a List of Objects to a List of Values (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_convert_a_list_of_objects_to_a_list_of_values.htm&release=264.0.0&type=5 "For the managed package runtime, you can convert a list of JSON objects (key-value pairs in braces) to a list of single values, regardless of the length of the list. The trick is to use a formula to remove the second level of the hierarchy.").

If each object of a list has a different key, Data Mapper Transform creates a single map with combined key and value pairs from that list, and ignores any empty values. Here’s an example for products for an ecommerce website:

```json
{
    "Cleaning products": [
        {
            "Name": "WonderProduct"
            "Property": ""
        },
        {
            "Name": ""
            "Property": "Fast-acting"
        },
        {
            "Scent": "Lavender"
        }
    ]
}
```

Transformed output list:

```json
{
    "Cleaning products": [
        {
            "Name": "WonderProduct"
            "Property": "Fast-acting"
            "Scent": ":Lavender"
        }
    ]
}
```

For more that you can do with lists, see:

- AVG, FILTER, IF, LIST, LISTMERGE, LISTMERGEPRIMARY, LISTSIZE, MAX, MIN, SORTBY, and SUM functions in the [Function Reference (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_function_reference.htm&release=264.0.0&type=5 "For the managed package runtime, use these operators and functions in Omnistudio Data Mappers and Integration Procedures, and in Vlocity Intelligence, eligibility rules, underwriting rules, state rules, and calculation procedures.").
- [Process Arrays Using Loop Blocks (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_process_arrays_using_loop_blocks.htm&release=264.0.0&type=5 "For the managed package runtime, a Loop Block iterates over the items in a data array, enabling the Actions within it to repeat for each item. For example, in ​Salesforce Industries Communications, Media, and Energy, without a Loop Block, adding four products to a cart would require running four separate Remote Actions. But one Remote Action within a Loop Block can add all four products.") in Integration Procedures
- [List Merge Action for Integration Procedures (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_list_merge_action_for_integration_procedures.htm&release=264.0.0&type=5 "For the managed package runtime, the List Merge Action merges multiple lists by matching values of specified list item JSON nodes. A basic merge matches node names exactly. An advanced merge matches nodes that have different names and/or reside at different levels in the incoming lists.") in Integration Procedures
- [Integration Procedure Action for Integration Procedures (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action_for_integration_procedures.htm&release=264.0.0&type=5 "For the managed package runtime, the Integration Procedure Action runs a subordinate Integration Procedure.") in Integration Procedures (the example transforms a list)