# Data Mapper types, input and output formats

*Omnistudio Developer Study Guide · Data Mappers · Last updated October 27, 2026 · https://www.certifyforce.com/study-guide/omnistudio-developer/data-mappers/data-mapper-types-input-and-output-formats*

The four Data Mapper types and the Input Type and Output Type each one allows: XML conventions and element order, custom Apex input and output classes, PDF and Docusign targets, and calling a Data Mapper from Apex or the Data Mapper REST API.

- Certification: Salesforce Omnistudio Developer
- Exam section: Data Mappers
- Study guide: https://www.certifyforce.com/study-guide/omnistudio-developer

**Official exam objective:**

> Define and configure Data Mappers to extract, transform, load and map data between source (JSON, XML, Custom Apex class, etc.) and target (JSON, XML, Custom Apex class, sObject, PDF, Docusign, etc.).

## What the exam expects

- Pick the Interface Type (Extract, Turbo Extract, Load, Transform) and set an Input Type and Output Type that the type allows.
- Read and build XML input and output: the #text, @ and # conventions, and element order through Expected XML Output.
- Configure a Custom Input Class or Custom Output Class backed by an Apex class that implements Callable.
- Target an sObject, a PDF or a Docusign template, and know the prerequisites each target has.
- Invoke a Data Mapper from Apex with the Connect API and from an external system with the Data Mapper REST API.

Key terms: **Interface Type** (the Data Mapper type, fixed once created), **Input Type / Output Type** (the data format the Data Mapper reads and returns), **Expected XML Output** (the pane whose element order controls XML serialization), **Custom Input Class** (the Apex class that parses a non-JSON, non-XML input), **executeDataMapper** (the Connect API method Apex uses to run a Data Mapper), **bundleName** (the Data Mapper name in a REST request body).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Interface Type | Can't be changed after the Data Mapper is created | [Design for Performance](https://trailhead.salesforce.com/content/learn/modules/omnistudio-data-mapper-fundamentals/design-data-mappers-for-performance) |
| Load Output Type | sObject only; a Load's output is always a Salesforce object | [Design for Performance](https://trailhead.salesforce.com/content/learn/modules/omnistudio-data-mapper-fundamentals/design-data-mappers-for-performance), [Custom I/O](https://help.salesforce.com/s/articleView?id=xcloud.os_custom_input_and_output_for_dataraptors_in_omnistudio_47987.htm&language=en_US&type=5) |
| Turbo Extract | No formulas; Output Type JSON or Custom | [Data Mapper APIs](https://developer.salesforce.com/docs/atlas.en-us.psc_api.meta/psc_api/omnistudio_data_mapper_apis.htm), [Design for Performance](https://trailhead.salesforce.com/content/learn/modules/omnistudio-data-mapper-fundamentals/design-data-mappers-for-performance) |
| XML element order | Set by the Expected XML Output pane; XML is unordered key-value | [XML and JSON](https://help.salesforce.com/s/articleView?id=xcloud.os_xml_in_dataraptors_46723.htm&language=en_US&type=5) |
| XML to JSON | Value → `#text`, attribute → `@name`, namespace → `#ns`, colon → `#` | [XML and JSON](https://help.salesforce.com/s/articleView?id=xcloud.os_xml_in_dataraptors_46723.htm&language=en_US&type=5) |
| Custom class | Implements Callable; `deserialize` for input, `serialize` for output | [Custom I/O](https://help.salesforce.com/s/articleView?id=xcloud.os_custom_input_and_output_for_dataraptors_in_omnistudio_47987.htm&language=en_US&type=5) |
| Target PDF | Fillable, Linearized, version 1.5 or above; no List Box fields | [Fill a PDF](https://help.salesforce.com/s/articleView?id=xcloud.os_fill_a_pdf_from_omniscript_using_dataraptor_23204.htm&language=en_US&type=5) |
| Updated Docusign template | Fetch the Docusign templates again to refresh mappable fields | [Docusign Transform](https://help.salesforce.com/s/articleView?id=xcloud.os_populating_a_docusign_template_using_dataraptor_transform_23848.htm&language=en_US&type=5) |
| Apex invocation | `ConnectApi.OmniDesignerConnect.executeDataMapper` since Summer '25 | [Calls From Apex](https://help.salesforce.com/s/articleView?id=xcloud.os_dataraptor_calls_from_apex_47779.htm&language=en_US&type=5) |
| REST Load | POST `/v2/DataRaptor/`; `bulkUpload` TRUE uses batch Apex | [REST API](https://help.salesforce.com/s/articleView?id=xcloud.os_dataraptor_rest_api_47730.htm&language=en_US&type=5) |

## Check yourself

- Why must a Data Mapper that produces a PDF be a Transform and not a Load?
- When does a Data Mapper need a Custom Input Class?
- Why does the Expected XML Output pane matter for a legacy XML consumer?
- Which PDF form field type can a Target PDF not use?
- How does Apex read the result of `executeDataMapper` for an Extract?

## Sources

- [Omnistudio Data Mappers](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_dataraptors_45587.htm&language=en_US&type=5)
- [Inputs and Outputs for Omnistudio Data Mappers](https://help.salesforce.com/s/articleView?id=xcloud.os_inputs_outputs_for_data_mappers.htm&language=en_US&type=5)
- [Design Data Mappers for Performance (Trailhead)](https://trailhead.salesforce.com/content/learn/modules/omnistudio-data-mapper-fundamentals/design-data-mappers-for-performance)
- [XML and JSON in Omnistudio Data Mappers](https://help.salesforce.com/s/articleView?id=xcloud.os_xml_in_dataraptors_46723.htm&language=en_US&type=5)
- [Custom Input and Output for Omnistudio Data Mappers in Omnistudio](https://help.salesforce.com/s/articleView?id=xcloud.os_custom_input_and_output_for_dataraptors_in_omnistudio_47987.htm&language=en_US&type=5)
- [Omnistudio Data Mapper Calls From Apex](https://help.salesforce.com/s/articleView?id=xcloud.os_dataraptor_calls_from_apex_47779.htm&language=en_US&type=5)
- [Omnistudio Data Mapper REST API](https://help.salesforce.com/s/articleView?id=xcloud.os_dataraptor_rest_api_47730.htm&language=en_US&type=5)
- [Fill a PDF with a PDF Action](https://help.salesforce.com/s/articleView?id=xcloud.os_fill_a_pdf_from_omniscript_using_dataraptor_23204.htm&language=en_US&type=5)
- [Populate a Docusign Template for Omniscripts with a Data Mapper Transform](https://help.salesforce.com/s/articleView?id=xcloud.os_populating_a_docusign_template_using_dataraptor_transform_23848.htm&language=en_US&type=5)
- [Data Mapper (Omnistudio Data Mapper APIs)](https://developer.salesforce.com/docs/atlas.en-us.psc_api.meta/psc_api/omnistudio_data_mapper_apis.htm)
- [Omnistudio Release Notes (Summer '24)](https://help.salesforce.com/s/articleView?id=release-notes.rn_omnistudio.htm&language=en_US&release=250&type=5)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 8 linked practice questions, and unlimited timed mock exams are included with the Omnistudio Developer pack (USD $19): https://www.certifyforce.com/practice-exams
