afv-library/skills/platform-data-manage/references/sf-cli-data-commands.md

2.8 KiB

sf CLI Data Commands Reference

Complete reference for Salesforce CLI v2 data commands.

Query Commands

SOQL Query

sf data query \
  --query "SELECT Id, Name FROM Account LIMIT 10" \
  --target-org myorg \
  --json
sf data search \
  --query "FIND {Acme}" \
  --target-org myorg

Bulk Export

sf data export bulk \
  --query "SELECT Id, Name FROM Account" \
  --output-file accounts.csv \
  --target-org myorg \
  --wait 30

Record Operations

Create Record

sf data create record \
  --sobject Account \
  --values "Name='Acme' Industry='Technology'" \
  --target-org myorg

Update Record

sf data update record \
  --sobject Account \
  --record-id 001XXXXXXXXXXXX \
  --values "Industry='Healthcare'" \
  --target-org myorg

Delete Record

sf data delete record \
  --sobject Account \
  --record-id 001XXXXXXXXXXXX \
  --target-org myorg

Get Record

sf data get record \
  --sobject Account \
  --record-id 001XXXXXXXXXXXX \
  --target-org myorg

Bulk Operations

Bulk Import

sf data import bulk \
  --file data.csv \
  --sobject Account \
  --target-org myorg \
  --wait 30

Bulk Update

sf data update bulk \
  --file updates.csv \
  --sobject Account \
  --target-org myorg \
  --wait 30

Bulk Upsert

sf data upsert bulk \
  --file data.csv \
  --sobject Account \
  --external-id External_Id__c \
  --target-org myorg \
  --wait 30

Bulk Delete

sf data delete bulk \
  --file ids.csv \
  --sobject Account \
  --target-org myorg \
  --wait 30

Tree Operations

Export Tree

sf data export tree \
  --query "SELECT Id, Name, (SELECT Id, Name FROM Contacts) FROM Account" \
  --output-dir ./data \
  --target-org myorg

Import Tree

sf data import tree \
  --files data.json \
  --target-org myorg

Common Flags

Flag Description
--target-org, -o Target org alias
--json JSON output format
--result-format human, csv, json
--wait Minutes to wait for bulk jobs
--use-tooling-api Query Tooling API

Object Describe (Pre-flight Validation)

sf sobject describe --sobject ObjectName --target-org <alias> --json

Useful jq filters for describe output

# Required + createable fields
jq '.result.fields[] | select(.nillable==false and .createable==true) | {name, type}'

# Valid picklist values for a specific field
jq '.result.fields[] | select(.name=="StageName") | .picklistValues[].value'

# Fields that cannot be set on create
jq '.result.fields[] | select(.createable==false) | .name'

Apex Execution

sf apex run --file script.apex --target-org myorg