Salesforce Data Cloud Harmonize phase. 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 sf-datacloud-prepare), segments/insights (use sf-datacloud-segment), retrieval/search (use sf-datacloud-retrieve), or STDM/session tracing (use sf-ai-agentforce-observability).
Install
npx skills add https://github.com/jaganpro/sf-skills --skill sf-datacloud-harmonizeSKILL.md
sf-datacloud-harmonize: 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 sf-datacloud-harmonize 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 → sf-datacloud-prepare
- working on segment logic or calculated insights → sf-datacloud-segment
- running SQL, describe, or search-index workflows → sf-datacloud-retrieve
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 ~/.claude/skills/sf-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 ~/.claude/skills/sf-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
- ../sf-datacloud/assets/definitions/dmo.template.json
- ../sf-datacloud/assets/definitions/mapping.template.json
- ../sf-datacloud/assets/definitions/relationship.template.json
- ../sf-datacloud/assets/definitions/identity-resolution.template.json
- ../sf-datacloud/assets/definitions/data-graph.template.json
- ../sf-datacloud/references/feature-readiness.md
Related skills
azure-kustomicrosoft605KQuery and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.supabase-postgres-best-practicessupabase421KPostgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pg_cron, pgmq), vector/semantic search (pgvector), and restoring dumps (pg_restore) or imporprisma-database-setupprisma321KGuides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".prisma-client-apiprisma320KPrisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
