Omnistudio Datamapper Generate

作者 forcedotcome5164d94d751無授權條款1K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫昨天更新

OmniStudio Data Mapper (formerly DataRaptor) creation and validation with 100-point scoring. Use when building Extract, Transform, Load, or Turbo Extract Data Mappers, mapping Salesforce object fields, or reviewing existing Data Mapper configurations. TRIGGER when: user creates Data Mappers, configures field mappings, works with OmniDataTransform metadata, or asks about DataRaptor/Data Mapper patterns. DO NOT TRIGGER when: building Integration Procedures (use omnistudio-integration-procedure-generate), authoring OmniScripts (use omnistudio-omniscript-generate), or analyzing cross-component dependencies (use omnistudio-dependencies-analyze).

AI 產生的概覽

產生並驗證 Salesforce OmniStudio Data Mapper(DataRaptor)設定,並提供百分制評分。

功能
此技能指導建立與檢閱 OmniStudio Data Mapper 設定,涵蓋 Extract、Turbo Extract、Transform 與 Load 四種類型,並以 OmniDataTransform 與 OmniDataTransformItem 中繼資料形式儲存。它設計欄位對應、查詢篩選、查閱解析與欄位層級安全性檢查,並依五個類別進行百分制評分。產出包括中繼資料記錄定義、驗證評分報告與部署指引,並在產生前提示反模式。
適用情境
適用於建立 Extract、Transform、Load 或 Turbo Extract 類型的 Data Mapper、對應 Salesforce 物件欄位,或檢閱現有 Data Mapper 設定。不適用於 Integration Procedure、OmniScript、FlexCard 或跨元件相依性分析。
執行需求
需要 Salesforce CLI(sf,2.0.0 或更新版本),以及可存取已安裝 OmniStudio 受管套件或 Industries Cloud 的 Salesforce 組織,API 版本 60.0 或更高。部署依賴獨立的 platform-metadata-deploy 技能。附帶 JSON 範本與參考文件,但不含可執行指令碼。

omnistudio-datamapper-generate: 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.


Scope

  • In scope: Creating and validating OmniStudio Data Mapper configurations (Extract, Transform, Load, Turbo Extract); field mapping design; query optimization; FLS (Field-Level Security) validation; deployment via platform-metadata-deploy skill
  • Out of scope: Building Integration Procedures (use omnistudio-integration-procedure-generate), authoring OmniScripts (use omnistudio-omniscript-generate), designing FlexCards (use omnistudio-flexcard-generate), analyzing cross-component dependencies (use omnistudio-dependencies-analyze)

Core Responsibilities

  1. Generation: Create Data Mapper configurations (Extract, Transform, Load, Turbo Extract) from requirements
  2. Field Mapping: Design object-to-output field mappings with proper type handling, lookup resolution, and null safety
  3. Dependency Tracking: Identify related OmniStudio components (Integration Procedures, OmniScripts, FlexCards) that consume or feed Data Mappers
  4. Validation & Scoring: Score Data Mapper configurations against 5 categories (0-100 points)

CRITICAL: Orchestration Order

omnistudio-dependencies-analyze -> omnistudio-datamapper-generate -> omnistudio-integration-procedure-generate -> omnistudio-omniscript-generate -> omnistudio-flexcard-generate (you are here: omnistudio-datamapper-generate)

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 omnistudio-dependencies-analyze FIRST to understand existing component dependencies.


Key Insights

InsightDetails
Extract vs Turbo ExtractExtract 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-memoryTransform 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 = DMLLoad 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 metadataData 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:

  1. Check existing Data Mappers: Glob: **/OmniDataTransform*
  2. Check existing OmniStudio metadata: Glob: **/omnistudio/**
  3. Create a task list

Phase 2: Design & Type Selection

TypeUse CaseNaming PrefixSupports DMLSupports SOQL
ExtractRead data from one or more objects with relationship queriesDR_Extract_NoYes
Turbo ExtractHigh-volume read-only queries, server-side compiledDR_TurboExtract_NoYes (compiled)
TransformIn-memory data reshaping between procedure stepsDR_Transform_NoNo
LoadWrite data (insert, update, upsert, delete)DR_Load_YesNo

Naming Format: [Prefix][Object]_[Purpose] using PascalCase

Examples:

  • DR_Extract_Account_Details -- Extract Account with related Contacts
  • DR_TurboExtract_Case_List -- High-volume Case list for FlexCard
  • DR_Transform_Lead_Flatten -- Flatten nested Lead data structure
  • DR_Load_Opportunity_Create -- Insert Opportunity records

Phase 3: Generation & Validation

For Generation:

  1. Read assets/omni-data-transform-extract.json (Extract), assets/omni-data-transform-transform.json (Transform), or assets/omni-data-transform-load.json (Load) for the OmniDataTransform record template
  2. Read assets/omni-data-transform-item.json for each field mapping (OmniDataTransformItem) template
  3. Configure query filters, sort order, and limits for Extract types
  4. Set up lookup mappings and default values for Load types
  5. Validate field-level security for all mapped fields

For Review:

  1. Read existing Data Mapper configuration
  2. Run validation against best practices
  3. Generate improvement report with specific fixes

Run Validation: Read assets/completion-summary-template.md for the scoring output format and thresholds.


Generation Guardrails (MANDATORY)

BEFORE generating ANY Data Mapper configuration, Claude MUST verify no anti-patterns are introduced.

If ANY of these patterns would be generated, STOP and ask the user:

"I noticed [pattern]. This will cause [problem]. Should I: A) Refactor to use [correct pattern] B) Proceed anyway (not recommended)"

Anti-PatternDetectionImpact
Extracting all fieldsNo field list specified, wildcard selectionPerformance degradation, excessive data transfer
Missing lookup mappingsLoad references lookup field without resolutionDML failure, null foreign key
Writing without FLS checkLoad Data Mapper with no security validationSecurity violation, data corruption in restricted profiles
Unbounded Extract queryNo LIMIT or filter on ExtractGovernor limit failure, timeout on large objects
Transform with side effectsTransform attempting DML or calloutRuntime error, Transform is in-memory only
Hardcoded record IDs15/18-char ID literal in filter or mappingDeployment failure across environments
Nested relationship depth >3Extract with deeply nested parent traversalQuery performance degradation, SOQL complexity limits
Load without error handlingNo upsert key or duplicate rule considerationSilent data corruption, duplicate records

DO NOT generate anti-patterns even if explicitly requested. Ask user to confirm the exception with documented justification.

See: references/best-practices.md [blocked] for detailed patterns See: references/naming-conventions.md [blocked] for naming rules


Phase 4: Deployment

Step 1: Validation Use the platform-metadata-deploy skill: "Deploy OmniDataTransform [Name] to [target-org] with --dry-run"

Step 2: Deploy (only if validation succeeds) Use the platform-metadata-deploy skill: "Proceed with actual deployment to [target-org]"

Post-Deploy: Activate the Data Mapper in the target org. Verify it appears in OmniStudio Designer.

If deploy fails: Check error for specific cause — common issues: Entity cannot be found (Data Mapper is in Draft status; activate first), namespace prefix mismatch (check sfdx-project.json), or missing parent OmniDataTransform record for item deployments.

If Load DM fails at runtime: Check debug logs via sf apex log list -o <org>; verify FLS and object permissions for the running user profile; confirm the upsert key field is populated and unique; Salesforce Load DMs follow allOrNone=false by default — partial successes are possible, check for isSuccess=false rows in the response.


Phase 5: Testing & Documentation

Completion Summary: Read assets/completion-summary-template.md for the completion summary format.

Testing Checklist:

  • Preview data output in OmniStudio Designer
  • Verify field mappings produce expected JSON structure
  • Test with representative data volume (not just 1 record)
  • Validate FLS enforcement with restricted profile user
  • Confirm consuming Integration Procedure/OmniScript receives correct data shape

Best Practices (100-Point Scoring)

CategoryPointsKey Rules
Design & Naming20Correct type selection; naming follows DR_[Type]_[Object]_[Purpose] convention; single responsibility per Data Mapper
Field Mapping25Explicit field list (no wildcards); correct input/output paths; proper type conversions; null-safe default values
Data Integrity25FLS validation on all fields; lookup resolution for Load types; upsert keys defined; duplicate handling configured
Performance15Bounded queries with LIMIT/filters; Turbo Extract for read-heavy scenarios; minimal relationship depth; indexed filter fields
Documentation15Description on OmniDataTransform record; field mapping rationale documented; consuming components identified

Thresholds: [PASS] 90+ (Deploy) | [REVIEW] 67-89 (Review) | [BLOCK] <67 (Block - fix required)


CLI Commands

Query Existing Data Mappers

bash
sf data query -q "SELECT Id,Name,Type FROM OmniDataTransform LIMIT 200" -o <org>

Query Data Mapper Field Mappings

bash
sf data query -q "SELECT Id,Name,InputObjectName,OutputObjectName,LookupObjectName FROM OmniDataTransformItem WHERE OmniDataTransformationId='<id>' LIMIT 200" -o <org>

Retrieve Data Mapper Metadata

bash
sf project retrieve start -m OmniDataTransform:<Name> -o <org>

Deploy Data Mapper Metadata

bash
sf project deploy start -m OmniDataTransform:<Name> -o <org>

Output Expectations

Deliverables produced by this skill:

  • OmniDataTransform record — main Data Mapper record built from assets/omni-data-transform-*.json template
  • OmniDataTransformItem records — one per mapped field, built from assets/omni-data-transform-item.json template
  • Validation score report — 100-point score across 5 categories (format in assets/completion-summary-template.md)
  • Deployment confirmation — Data Mapper activated and visible in OmniStudio Designer

Cross-Skill Integration

From SkillTo omnistudio-datamapper-generateWhen
omnistudio-dependencies-analyze-> omnistudio-datamapper-generate"Analyze dependencies before creating Data Mapper"
platform-custom-object-generate / platform-custom-field-generate-> omnistudio-datamapper-generate"Describe target object fields before mapping"
platform-soql-query-> omnistudio-datamapper-generate"Validate Extract query logic"
From omnistudio-datamapper-generateTo SkillWhen
omnistudio-datamapper-generate-> omnistudio-integration-procedure-generate"Create Integration Procedure that calls this Data Mapper"
omnistudio-datamapper-generate-> platform-metadata-deploy"Deploy Data Mapper to target org"
omnistudio-datamapper-generate-> omnistudio-omniscript-generate"Wire Data Mapper output into OmniScript"
omnistudio-datamapper-generate-> omnistudio-flexcard-generate"Display Data Mapper Extract results in FlexCard"

Gotchas

IssueResolution
Large data volume (>10K records)Use Turbo Extract; add pagination via Integration Procedure; warn about heap limits
Polymorphic lookup fieldsSpecify the concrete object type in the mapping; test each type separately
Formula fields in ExtractStandard Extract supports formula fields; Turbo Extract does not — fall back to standard Extract
Cross-object Load (master-detail)Insert parent records first, then child records in a separate Load step; use Integration Procedure to orchestrate sequence
Namespace-prefixed fieldsInclude namespace prefix in field paths (e.g., ns__Field__c); verify prefix matches target org
Multi-currency orgsMap CurrencyIsoCode explicitly; do not rely on default currency assumption
RecordType-dependent mappingsFilter by RecordType in Extract; set RecordTypeId in Load; document which RecordTypes are supported
Draft Data Mapper not retrievablesf project retrieve start -m OmniDataTransform:<Name> only works for active DMs; activate before retrieving
Foreign key field name wrongThe parent lookup on OmniDataTransformItem is OmniDataTransformationId (full word "Transformation"), not OmniDataTransformId

Notes

  • Metadata Type: OmniDataTransform (not DataRaptor — legacy name deprecated)
  • API Version: Requires OmniStudio managed package or Industries Cloud
  • Scoring: Block deployment if score < 67; read assets/completion-summary-template.md for score format
  • Turbo Extract Limitations: 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 (see Gotchas for draft retrieval behavior)
  • 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.

Reference File Index

FileWhen to Read
assets/omni-data-transform-extract.jsonPhase 3 Generation — template for Extract type OmniDataTransform records
assets/omni-data-transform-transform.jsonPhase 3 Generation — template for Transform type OmniDataTransform records
assets/omni-data-transform-load.jsonPhase 3 Generation — template for Load type OmniDataTransform records
assets/omni-data-transform-item.jsonPhase 3 Generation — template for each OmniDataTransformItem field mapping
assets/completion-summary-template.mdPhase 3 & 5 — scoring output format and completion summary template
references/best-practices.mdPhase 3 Guardrails — detailed patterns for field mapping, query optimization, null handling, and performance
references/naming-conventions.mdPhase 2 Design — full naming rules for all Data Mapper types and field mapping conventions

來源與署名

來源:forcedotcom/sf-skills位於skills/omnistudio-datamapper-generate提交e5164d9

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 forcedotcom/sf-skills 的技能

Service Itsm Teams Itservice Configure

forcedotcom

Configure the "Set Up Salesforce IT Service" checklist for Microsoft Teams Employee Service (ITSM) — the employee side, covering app enablement, marketplace install guidance, user access assignment, and Digital Experience Site selection. Use this for: 'turn on Salesforce IT Service', 'set up IT Service on Teams', 'assign Teams for Employee permission set', 'give employees access to Teams for Employee Service', 'manage user access for Teams ITSM', 'grant users the permission sets needed for Teams Employee Service', 'select a digital experience site for Teams', 'install Salesforce IT Service app on Teams', or any request to complete the IT Service half of the Teams ITSM Go page checklist (including the Manage User Access step). DO NOT TRIGGER for the base Teams Salesforce Go page toggle or Azure/Entra app setup (service-itsm-teams-configure) or for the IT Desk/fulfiller half of the checklist (service-itsm-teams-itdesk-configure).

待分類1K昨天更新

Service Itsm Teams Coordinate

forcedotcom

End-to-end autopilot orchestrator for setting up Microsoft Teams integration in Salesforce Service Cloud ITSM — runs the whole flow (enable the Teams for Employee Service Go feature, register the Microsoft Entra app, populate Named Credentials, configure the IT Desk and IT Service checklists, turn on Swarming, and optionally embed the Agentforce agent) in one continuous pass, stopping only at the points a human must act. Use when the user asks to set up Microsoft Teams for ITSM end to end, 'set up teams for it service', 'do the whole teams itsm setup', 'configure microsoft teams for employee service', or wants a guided Teams ITSM walkthrough. Delegates each stage to a specialized child skill while driving the sequence itself. DO NOT TRIGGER when the user asks to enable Teams alone, configure just the IT Desk or IT Service checklist alone, or enable Swarming alone — delegate directly to the specific child skill in those cases.

待分類1K昨天更新

Service Itsm Teams Itdesk Configure

forcedotcom

Configure the "Set Up Salesforce IT Desk" checklist for Microsoft Teams Employee Service (ITSM) — the fulfiller/agent side, covering app enablement, marketplace install guidance, user access assignment, and Swarming collaboration-tool setup. Use this for: 'turn on Salesforce IT Desk', 'set up IT Desk on Teams', 'assign Teams for IT Desk permission set', 'set Teams as collaboration tool for swarming', 'install Salesforce IT Desk app on Teams', or any request to complete the IT Desk half of the Teams ITSM Go page checklist. DO NOT TRIGGER for the base Teams Salesforce Go page toggle or Azure/Entra app setup (service-itsm-teams-configure) or for the IT Service/employee half of the checklist (service-itsm-teams-itservice-configure).

待分類1K昨天更新

Service Itsm Teams Debug

forcedotcom

透過對 Salesforce 組織執行通過/失敗設定檢查清單,診斷 Microsoft Teams 員工服務(ITSM)設定失敗問題。

DevOps & Cloud1K昨天更新

Service Itsm Teams Employee Agent Configure

forcedotcom

Configure the embedded Agentforce Employee Agent so it replies inside the Microsoft Teams ITSM custom client ('Salesforce Employee Assist' / 'Ask AI Agent'). Use this for: 'set up employee agent in Teams', 'embed Agentforce agent in Teams', 'make the IT Service Employee Agent reply in Teams', 'Teams Ask AI Agent not responding', 'agent joins then leaves without replying', 'configure MIAW deployment for Teams employee agent', 'Teams embedded messaging agent setup'. Builds the whole stack headlessly (zero Setup-UI clicks): the Web messaging channel with User Verification ON, the Enhanced Chat User Verification Key Set (JWKS_URL) it requires, the Teams_AgentForce custom-client deployment, the routing flow to the agent, and the Agent Access permission set that lets the portal user reach the agent. DO NOT TRIGGER for enabling the Teams feature Salesforce Go page toggle (service-itsm-teams-configure) or for configuring notification preferences.

待分類1K昨天更新

Service Itsm Swarming Configure

forcedotcom

透過 Connect API 呼叫啟用 Salesforce Swarming ITSM 功能,並將協作工具設為 Teams。

DevOps & Cloud1K昨天更新