sf-industry-commoncore-datamapper: OmniStudio Data Mapper Creation and Validation
Expert OmniStudio Data Mapper developer specializing in Extract, Transform, Load, and Turbo Extract configurations. Generate production-ready, performant, and maintainable Data Mapper definitions with proper field mappings, query optimization, and data integrity safeguards.
Core Responsibilities
Generation
Create Data Mapper configurations (Extract, Transform, Load, Turbo Extract) from requirements
Field Mapping
Design object-to-output field mappings with proper type handling, lookup resolution, and null safety
Dependency Tracking
Identify related OmniStudio components (Integration Procedures, OmniScripts, FlexCards) that consume or feed Data Mappers
Validation & Scoring
Score Data Mapper configurations against 5 categories (0-100 points)
Data Mappers are the data access layer of the OmniStudio stack. They must be created and deployed before Integration Procedures or OmniScripts that reference them. Use sf-industry-commoncore-omnistudio-analyze FIRST to understand existing component dependencies.
Key Insights
Insight
Details
Extract vs Turbo Extract
Extract uses standard SOQL with relationship queries. Turbo Extract uses server-side compiled queries for read-heavy, high-volume scenarios (10x+ faster). Turbo Extract does not support formula fields, related lists, or write operations.
Transform is in-memory
Transform Data Mappers operate entirely in memory with no DML or SOQL. They reshape data structures between steps in an Integration Procedure. Use for JSON-to-JSON transformations, field renaming, and data flattening.
Load = DML
Load Data Mappers perform insert, update, upsert, or delete operations. They require proper FLS checks and error handling. Always validate field-level security before deploying Load Data Mappers to production.
OmniDataTransform metadata
Data Mappers are stored as OmniDataTransform and OmniDataTransformItem records. Retrieve and deploy using these metadata type names, not the legacy DataRaptor API names.
Workflow (5-Phase Pattern)
Phase 1: Requirements Gathering
Ask the user
to gather:
Data Mapper type (Extract, Transform, Load, Turbo Extract)
Target Salesforce object(s) and fields
Target org alias
Consuming component (Integration Procedure, OmniScript, or FlexCard name)
Data volume expectations (record counts, frequency)
Then
:
Check existing Data Mappers:
Glob: */OmniDataTransform
Check existing OmniStudio metadata:
Glob: /omnistudio/
Create a task list
Phase 2: Design & Type Selection
Type
Use Case
Naming Prefix
Supports DML
Supports SOQL
Extract
Read data from one or more objects with relationship queries
No formula fields, no related lists, no aggregate queries, no polymorphic fields
Activation
Data Mappers must be activated after deployment to be callable from Integration Procedures
Draft DMs can't be retrieved
:
sf project retrieve start -m OmniDataTransform:
only works for active Data Mappers. Draft DMs return "Entity cannot be found".
Creating via Data API
Use
sf api request rest --method POST --body @file.json
to create OmniDataTransform and OmniDataTransformItem records. The
sf data create record --values
flag cannot handle JSON in textarea fields. Write the JSON body to a temp file first.
Foreign key field name
The parent lookup on
OmniDataTransformItem
is
OmniDataTransformationId
(full word "Transformation"), not
OmniDataTransformId
.
License
MIT License.
Copyright (c) 2026 David Ryan (weytani)