Help us improve
Share bugs, ideas, or general feedback.
From sf-skills
Performs Salesforce data operations including CRUD, bulk import/export, test data generation, and cleanup using sf CLI and anonymous Apex.
npx claudepluginhub ccmalcom/sf-skills-plugin --plugin sf-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/sf-skills:handling-sf-dataThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the user needs **Salesforce data work**: record CRUD, bulk import/export, test data generation, cleanup scripts, or data factory patterns for validating Apex, Flow, or integration behavior.
CREDITS.mdREADME.mdassets/bulk/bulk-insert-10000.apexassets/bulk/bulk-insert-200.apexassets/bulk/bulk-insert-500.apexassets/bulk/bulk-upsert-external-id.apexassets/cleanup/delete-by-created-date.apexassets/cleanup/delete-by-name.apexassets/cleanup/delete-test-data.apexassets/cleanup/rollback-transaction.apexassets/csv/account-import.csvassets/csv/contact-import.csvassets/csv/custom-object-import.csvassets/csv/opportunity-import.csvassets/factories/account-factory.apexassets/factories/case-factory.apexassets/factories/contact-factory.apexassets/factories/custom-object-factory.apexassets/factories/event-factory.apexassets/factories/hierarchy-factory.apexGenerates bulk Salesforce data operation scripts (Data Loader CSV templates and Anonymous Apex) for owner reassignment, deduplication, mass field update, stale record closing, contact deactivation, and lead conversion.
Guides Salesforce data migrations using Bulk API 2.0, jsforce ETL, Data Loader for org-to-org transfers, CRM imports, and validation with TypeScript examples.
Provides expert patterns for Salesforce platform development including Lightning Web Components, Apex triggers, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2GP.
Share bugs, ideas, or general feedback.
Use this skill when the user needs Salesforce data work: record CRUD, bulk import/export, test data generation, cleanup scripts, or data factory patterns for validating Apex, Flow, or integration behavior.
Use handling-sf-data when the work involves:
sf data CLI commandsDelegate elsewhere when the user is:
Confirm which mode the user wants:
| Mode | Use when |
|---|---|
| Script generation | they want reusable .apex, CSV, or JSON assets without touching an org yet |
| Remote execution | they want records created / changed in a real org now |
Do not assume remote execution if the user may only want scripts.
Ask for or infer:
handling-sf-data acts on remote org data unless the user explicitly wants local script generation.If metadata is missing, stop and hand off to:
Confirm object / field availability, org auth, and required parent records.
Before creating or updating records, use object describe data to validate:
See references/sf-cli-data-commands.md for the sf sobject describe command and jq filter patterns for inspecting fields, picklist values, and createable constraints.
| Need | Default approach |
|---|---|
| small one-off CRUD | sf data single-record commands |
| large import/export | Bulk API 2.0 via sf data ... bulk |
| parent-child seed set | tree import/export |
| reusable test dataset | factory / anonymous Apex script |
| reversible experiment | cleanup script or savepoint-based approach |
Use the built-in templates under assets/ when they fit:
assets/factories/assets/bulk/assets/cleanup/assets/soql/assets/csv/assets/json/Check counts, relationships, and record IDs after creation or update.
If creation fails:
Do not repeat the same failing command indefinitely.
Provide exact cleanup commands or rollback assets whenever data was created.
Prefer one of:
| Error | Likely cause | Default fix direction |
|---|---|---|
INVALID_FIELD | wrong field API name or FLS issue | verify schema and access |
REQUIRED_FIELD_MISSING | mandatory field omitted | include required values from describe data |
INVALID_CROSS_REFERENCE_KEY | bad parent ID | create / verify parent first |
FIELD_CUSTOM_VALIDATION_EXCEPTION | validation rule blocked the record | use valid test data or adjust setup |
| invalid picklist value | guessed value instead of describe-backed value | inspect picklist values first |
| non-writeable field error | field is not createable / updateable | remove it from the payload |
| bulk limits / timeouts | wrong tool for the volume | switch to bulk / staged import |
When finishing, report in this order:
Suggested shape:
Data operation: <create / update / delete / export / seed>
Objects: <object + counts>
Target: <org alias or local path>
Artifacts: <record ids / csv / apex / json files>
Verification: <passed / partial / failed>
Cleanup: <exact delete or rollback guidance>
| Need | Delegate to | Reason |
|---|---|---|
| create missing custom objects | generating-custom-object | schema must exist before data operations |
| create missing custom fields | generating-custom-field | field-level schema must exist before data creation |
| run bulk-sensitive Apex validation | running-apex-tests | test execution and coverage |
| deploy missing schema first | deploying-metadata | metadata readiness |
| implement production Apex logic consuming the data | generating-apex | Apex class / trigger authoring |
| implement Flow logic consuming the data | generating-flow | Flow authoring and automation |
assets/factories/ — Apex test data factory scripts (account, contact, opportunity, lead, user, etc.)assets/bulk/ — Bulk API 2.0 Apex templates (insert 200, 500, 10000 records; upsert by external ID)assets/cleanup/ — Cleanup and rollback scripts (delete by name, date, pattern; transaction rollback)assets/soql/ — SOQL query templates (aggregate, subquery, parent-to-child, child-to-parent, polymorphic)assets/csv/ — CSV import templates for Account, Contact, Opportunity, custom objectsassets/json/ — JSON tree import templates (account-contact, account-opportunity, full hierarchy)| Score | Meaning |
|---|---|
| 117+ | strong production-safe data workflow |
| 104–116 | good operation with minor improvements possible |
| 91–103 | acceptable but review advised |
| 78–90 | partial / risky patterns present |
| < 78 | blocked until corrected |