harmonizing-datacloud
forcedotcom/sf-skills
Harmonize and unify Salesforce Data Cloud schemas, mappings, identity resolution, and profiles.
What is harmonizing-datacloud?
This skill handles the Harmonize phase of Salesforce Data Cloud: creating and managing DMOs (Data Model Objects), field mappings, identity resolution rulesets, relationships, data graphs, and unified profiles. Use it when working with schema unification, entity resolution, or universal ID lookup—not for data ingestion, segmentation, or retrieval tasks.
- Create and inspect Data Model Objects (DMOs) and their schemas
- Map source DLOs (Data Lake Objects) to target DMOs with field-level transformations
- Configure and run identity resolution rulesets to deduplicate and unify customer records
- Define relationships and data graphs across harmonized entities
- Look up and verify universal IDs for unified profiles
- Validate harmonization readiness before executing mappings and IR runs
How to install harmonizing-datacloud
npx skills add https://github.com/forcedotcom/sf-skills --skill harmonizing-datacloud- Salesforce Data Cloud-enabled org with appropriate permissions
- sf data360 CLI plugin installed and configured
- Source DLOs already created in the Prepare phase
- Target org alias configured in Salesforce CLI
How to use harmonizing-datacloud
- 1.Run the readiness classifier to verify harmonize-phase support: `node ../orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase harmonize --json`
- 2.List available DMOs and identity resolution rulesets: `sf data360 dmo list --all` and `sf data360 identity-resolution list`
- 3.Inspect the target DMO schema: `sf data360 dmo get -o <org> --name <dmo-name> --json`
- 4.Review or create field mappings between source DLO and target DMO: `sf data360 dmo mapping-list` or `sf data360 dmo map-to-canonical --dry-run`
- 5.Create and run identity resolution ruleset: `sf data360 identity-resolution create -f ir-ruleset.json` then `sf data360 identity-resolution run --name <ruleset-name>`
- 6.Verify results and unified profiles before moving to segmentation or retrieval phases
Use cases
- Unifying customer records from multiple source systems into a single DMO using identity resolution
- Creating field mappings between a Contact DLO and a canonical Individual DMO
- Building a data graph that connects Customer, Account, and Order entities across harmonized schemas
- Verifying unified profile completeness after an identity resolution run
- Inspecting DMO schema and existing mappings before adding new data sources
- Data architects designing unified customer data models
- Data engineers building ETL mappings and identity resolution logic
- Salesforce Data Cloud administrators managing harmonization workflows
- Analytics teams preparing unified profiles for segmentation and activation
harmonizing-datacloud FAQ
Use harmonizing-datacloud for DMOs, mappings, relationships, identity resolution, and unified profiles. Use preparing-datacloud for streams and DLOs; use segmenting-datacloud for segment logic and insights; use retrieving-datacloud for SQL and search workflows.
A DLO (Data Lake Object) is a raw or lightly transformed data source created in the Prepare phase. A DMO (Data Model Object) is a harmonized, canonical entity created in the Harmonize phase by mapping and unifying data from one or more DLOs.
No. Run identity resolution only after mappings are complete and trustworthy. Use `--dry-run` on mappings first to validate field transformations before executing IR.
It validates org configuration, API availability, and phase-specific feature support. Run it before starting harmonization work to catch blockers early.
Data graphs and identity resolution are separate features. You can define graph relationships independently, but unified profiles typically depend on successful IR runs to deduplicate entities.
Full instructions (SKILL.md)
Source of truth, from forcedotcom/sf-skills.
name: harmonizing-datacloud description: "Salesforce Data Cloud Harmonize phase. Use this skill when the user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. TRIGGER when: user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. DO NOT TRIGGER when: the task is only about streams/DLOs (use preparing-datacloud), segments/insights (use segmenting-datacloud), retrieval/search (use retrieving-datacloud), or STDM/session tracing (use observing-agentforce)." compatibility: "Requires an external community sf data360 CLI plugin and a Data Cloud-enabled org" metadata: version: "1.0"
harmonizing-datacloud: Data Cloud Harmonize Phase
Use this skill when the user needs schema harmonization and unification work: DMOs, field mappings, relationships, identity resolution, unified profiles, data graphs, or universal ID lookup.
When This Skill Owns the Task
Use harmonizing-datacloud when the work involves:
sf data360 dmo *sf data360 identity-resolution *sf data360 data-graph *sf data360 profile *sf data360 universal-id lookup
Delegate elsewhere when the user is:
- still ingesting streams or building DLOs → preparing-datacloud
- working on segment logic or calculated insights → segmenting-datacloud
- running SQL, describe, or search-index workflows → retrieving-datacloud
Required Context to Gather First
Ask for or infer:
- source DLO and target DMO names
- whether the task is schema creation, mapping, IR, or graph-related
- target org alias
- whether a ruleset already exists
- the user’s desired unified entity model
Core Operating Rules
- Inspect DMO schema before creating mappings.
- Run the shared readiness classifier before mutating harmonization assets:
node ../orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase harmonize --json. - Prefer
dmo list --allwhen browsing the catalog, but use first-pagedmo listfor fast readiness checks. - Use
query describeordmo get --jsoninstead of inventing unsupported describe flows. - Treat identity resolution runs as asynchronous and verify results after execution.
- Keep unified-profile work separate from STDM/session tracing work.
Recommended Workflow
1. Classify readiness for harmonize work
node ../orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase harmonize --json
2. Inspect the catalog
sf data360 dmo list --all -o <org> 2>/dev/null
sf data360 identity-resolution list -o <org> 2>/dev/null
3. Inspect schema before mapping
sf data360 query describe -o <org> --table ssot__Individual__dlm 2>/dev/null
sf data360 dmo get -o <org> --name ssot__Individual__dlm --json 2>/dev/null
4. Create or review mappings intentionally
sf data360 dmo mapping-list -o <org> --source Contact_Home__dll --target ssot__Individual__dlm 2>/dev/null
sf data360 dmo map-to-canonical -o <org> --dlo Contact_Home__dll --dmo ssot__Individual__dlm --dry-run 2>/dev/null
5. Run IR only after mappings are trustworthy
sf data360 identity-resolution create -o <org> -f ir-ruleset.json 2>/dev/null
sf data360 identity-resolution run -o <org> --name Main 2>/dev/null
High-Signal Gotchas
dmo listshould usually use--all.- Use
query describeordmo get --json; there is nodmo describecommand. - Mapping and related commands can be sensitive to API-version differences.
- Unified DMO names are ruleset-specific rather than generic.
- Data graph definitions are sensitive to field selection and relationship shape.
- If
dmo listworks butidentity-resolution listis gated, treat that as a phase-specific gap rather than a full Data Cloud outage.
Output Format
Harmonize task: <dmo / mapping / relationship / ir / data-graph>
Source/target: <dlo → dmo or ruleset/graph names>
Target org: <alias>
Artifacts: <json files / commands>
Verification: <passed / partial / blocked>
Next step: <segment / retrieve / follow-up>
References
- README.md
- ../orchestrating-datacloud/assets/definitions/dmo.template.json
- ../orchestrating-datacloud/assets/definitions/mapping.template.json
- ../orchestrating-datacloud/assets/definitions/relationship.template.json
- ../orchestrating-datacloud/assets/definitions/identity-resolution.template.json
- ../orchestrating-datacloud/assets/definitions/data-graph.template.json
- ../orchestrating-datacloud/references/feature-readiness.md
Related skills
More from forcedotcom/sf-skills and the wider catalog.

implementing-ui-bundle-agentforce-conversation-client
Embed and configure Agentforce Conversation Client in UI Bundle projects.

implementing-ui-bundle-file-upload
Programmatic file upload API with progress tracking for Salesforce UI bundles.

integrating-b2b-commerce-open-code-components
Integrate Salesforce B2B Commerce open source components into your store's Experience Builder.

investigating-agentforce-architecture
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins. Renders a human-readable architecture document and Mermaid invocation graph from design-time metadata (not runtime audit rows). TRIGGER when user asks to describe, diagram, inventory, audit, document, or diff (e.g. v3 vs v5) the architecture / action tree / topic structure / tool inventory of a specific agent by agent API name in a specific org. DO NOT TRIGGER for runtime session traces, conversation transcripts, generation timings, or gateway audit chains — this skill reads design-time metadata only (use investigating-agentforce-d360 for session traces).

investigating-agentforce-d360
Data Cloud 360° view of a single Agentforce session. TRIGGER when user asks to trace, inspect, summarize, or describe a specific Agentforce session by session id (Agent Session UUID `019d…` or MessagingSession id `0Mw…`). Also triggers on session discovery — find/list/search sessions by time, agent, channel, outcome, or conversation text — when the user has no session id yet. DO NOT TRIGGER for design-time architecture questions (use investigating-agentforce-architecture instead) or for runtime perf/latency/SLO questions that require platform telemetry beyond Data Cloud.

managing-managed-event-subscription
Create, read, update, and delete ManagedEventSubscription metadata in Salesforce. Use this skill for any work involving managed event subscriptions, platform event subscriptions, event channel subscribers, or .managedEventSubscription-meta.xml files. TRIGGER when: user asks to subscribe to a platform event, create a managed subscription, set up event replay, configure an event channel subscriber, update replay preset, activate or deactivate a subscription, delete a subscription, or manage ManagedEventSubscription metadata. SKIP when: user needs to create the platform event channel itself (use generating-platform-event skill) or needs Flow-based event subscriptions (use generating-flow skill).