omnistudio-datamapper-generate

Generates and validates OmniStudio Data Mapper configurations with 100-point scoring.

Updated Jul 2, 2026
One-click install
npx skills add https://github.com/padjei/SF_Build --skill omnistudio-datamapper-generate-padjei
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: omnistudio-datamapper-generate
Source: https://github.com/padjei/SF_Build/tree/main/.claude/skills/omnistudio-datamapper-generate
Command: npx skills add https://github.com/padjei/SF_Build --skill omnistudio-datamapper-generate-padjei

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve? Building OmniStudio Data Mappers (formerly DataRaptors) by hand is error-prone: wrong type selection, missing field mappings, unbounded queries, and FLS violations cause runtime failures and governor limit issues. This Skill generates production-ready Extract, Transform, Load, and Turbo Extract configurations and scores them against a 100-point quality rubric before deployment. ## Core Features & Use Cases - Data Mapper Generation: Creates OmniDataTransform and OmniDataTransformItem records from JSON templates for Extract, Turbo Extract, Transform, and Load types with correct naming conventions (DR_[Type][Object][Purpose]). - Validation & Scoring: Scores configurations across 5 categories (Design & Naming, Field Mapping, Data Integrity, Performance, Documentation) with deploy/review/block thresholds at 90+, 67-89, and below 67. - Anti-Pattern Guardrails: Blocks wildcard field extraction, unbounded queries, missing lookup resolution, hardcoded record IDs, and Load operations without FLS checks. - Use Case: You need a high-volume read-only list of open Cases for a FlexCard. The Skill selects Turbo Extract, generates the OmniDataTransform record with bounded filters, validates field mappings, and deploys it via the platform-metadata-deploy skill. ## Quick Start Ask the AI to create an Extract Data Mapper that pulls Account records with related Contacts for your target org and validate it before deployment.

Frequently Asked Questions about omnistudio-datamapper-generate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an OmniStudio Data Mapper with Salesforce CLI?▼

Create OmniDataTransform and OmniDataTransformItem records using sf api request rest with a JSON body file, then deploy with sf project deploy start -m OmniDataTransform:<Name>. The sf data create record command cannot handle JSON in textarea fields, so write the body to a temp file first.

What is the difference between DataRaptor Extract and Turbo Extract?▼

Turbo Extract uses server-side compiled queries and runs 10x or more faster for high-volume read-only scenarios, but does not support formula fields, related lists, aggregate queries, or polymorphic lookups. Standard Extract supports full SOQL including relationship queries and formula fields.

When should I use a Transform Data Mapper instead of Extract?▼

Use Transform when reshaping JSON data in memory between Integration Procedure steps, such as renaming fields or flattening nested structures. Transform performs no SOQL or DML, so use Extract or Load whenever database interaction is required.

Why does my Data Mapper deployment fail with Entity cannot be found?▼

This error occurs when the Data Mapper is in Draft status, since only active Data Mappers can be retrieved or referenced. Activate the Data Mapper in the target org first, and verify the namespace prefix in sfdx-project.json matches the org.

What are the limitations of Turbo Extract Data Mappers?▼

Turbo Extract does not support formula fields, child-to-parent relationship queries, aggregate functions like COUNT or SUM, or polymorphic lookups such as WhoId on Task. For these requirements, fall back to a standard Extract Data Mapper.

How do I handle lookup fields in a Load Data Mapper?▼

Define a lookup mapping that resolves an external key to a Salesforce ID by specifying the lookup object and match field, such as matching Account.Name to populate AccountId. Handle no-match cases with a default value or graceful failure to avoid null foreign key DML errors.