sfdmu-data-plans

Author and review SFDMU v5 export.json data plans and CSV files for Salesforce Revenue Cloud.

5|3|Updated Sep 9, 2026
One-click install
npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill sfdmu-data-plans-salesforcelabs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sfdmu-data-plans
Source: https://github.com/SalesforceLabs/revenue-cloud-foundations/tree/main/.cursor/skills/sfdmu-data-plans
Command: npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill sfdmu-data-plans-salesforcelabs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Writing SFDMU v5 data plans for Revenue Cloud involves subtle rules around externalId syntax, operation selection, and known plugin bugs; mistakes like using v4 $$ delimiters or misapplied deleteOldData: true can silently duplicate or wipe org data. ## Core Features & Use Cases - v5 Authoring Rules: Enforces ;-delimited externalIds, correct Upsert/Insert/Readonly operation selection, parent-to-child object ordering, and empty-CSV excluded: true handling. - Bug-Aware Guidance: Documents the one live SFDMU bug (Bug 4, $$ composite notation in lookup reference columns) and which historical bugs are fixed on the 5.6.4+ floor so outdated workarounds are not applied. - Plan Review Checklist: Provides a review checklist, object-to-plan mapping, and cross-plan dependency graph covering qb-pcm, qb-pricing, qb-billing, qb-rating, and related plans. - Use Case: When adding a new object to the qb-pricing plan, use this Skill to choose the correct externalId and operation, place the CSV in the right location, and validate the plan with validate_sfdmu_v5_datasets.py before loading. ## Quick Start Review my export.json and CSV files in the qb-pricing data plan for SFDMU v5 compliance and flag any unsafe operations.

Frequently Asked Questions about sfdmu-data-plans

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

FAQPage Schema
How do I write an externalId in SFDMU v5 export.json?

Use semicolon-delimited field names like `Field1;Field2`, not the v4 `$$Field1$Field2` syntax. Relationship traversals such as `Parent.Field` or `GrandParent.Parent.Field` are supported and match correctly under Upsert on SFDMU 5.6.4+.

Which SFDMU operation should I use for a data plan object?

Use Upsert for objects with direct or composite unique fields and for relationship-traversal externalIds on 5.6.4+. Use Readonly for reference data loaded by another plan, Update to modify existing records, and mark empty CSVs as `excluded: true`.

Why does my SFDMU import leave lookup fields null?

This is Bug 4: `$$` composite notation fails when used in lookup reference columns, for both self-referential and cross-object lookups. Replace the composite reference with a simple single-field reference such as `ParentGroup.Code` and set the object's externalId to that simple field.

Is it safe to re-run an SFDMU data plan into a live org?

Plans are written for fresh orgs. Upsert and Update re-runs match on externalId without duplicating, but plain Insert duplicates every row and Insert with deleteOldData can be blocked by live transactional references. Load individual records surgically instead.

When should I use Insert with deleteOldData in SFDMU?

Only with explicit user approval and a concrete current reason, since deleteOldData deletes all existing records before inserting. On the 5.6.4+ floor the historical Upsert-matching bugs are fixed, so they no longer justify this pattern.

Where do CSV files live in a multi-pass SFDMU plan?

By default in the plan root as `<Object>.csv`. With top-level `useSeparatedCSVFiles: true`, `objectset_source/object-set-N/<Object>.csv` overrides the root file for pass N only; pass 1 always reads the plan root.