getting-datacloud-schema
forcedotcom/sf-skills
Retrieve Data Lake Object and Data Model Object schema from Salesforce Data Cloud via REST APIs.
What is getting-datacloud-schema?
This skill retrieves schema information for Data Lake Objects (DLOs) and Data Model Objects (DMOs) from Salesforce Data Cloud using the SSOT REST API. Use it when you need to inspect field definitions, data types, and metadata for DLOs or DMOs in your org.
- List all DLOs or DMOs in a Data Cloud org
- Retrieve detailed field schema for a specific DLO or DMO including field names, data types, and nullable status
- Display primary key indicators and custom field information
- Show record counts and object metadata like labels and categories
- Validate org connectivity and authentication before making API calls
How to install getting-datacloud-schema
npx skills add https://github.com/forcedotcom/sf-skills --skill getting-datacloud-schema- SF CLI installed and authenticated to target org
- Org has Data Cloud enabled
- User has appropriate Data Cloud permissions
How to use getting-datacloud-schema
- 1.Run 'sf org list' to discover and extract the org alias
- 2.Verify org authentication with 'sf org display --target-org <org_alias> --json'
- 3.Execute the DLO script with 'python3 <skill_dir>/scripts/get_dlo_schema.py <org_alias>' to list all DLOs or add a DLO name to get specific schema
- 4.Execute the DMO script with 'python3 <skill_dir>/scripts/get_dmo_schema.py <org_alias>' to list all DMOs or add a DMO name to get specific schema
- 5.Review the formatted results showing field names, data types, primary keys, and nullable status
Use cases
- Explore available data structures in a Data Cloud org before querying
- Understand field types and constraints when building data integrations
- Verify DLO or DMO names and field definitions for data mapping
- Inspect schema before creating calculated insights or segments
- Review metadata to plan data stream configurations
- Salesforce Data Cloud administrators
- Data engineers building integrations with Data Cloud
- Developers exploring Data Cloud data structures
- Analytics professionals setting up data models
getting-datacloud-schema FAQ
DLO (Data Lake Object) is a raw data object in Data Cloud, while DMO (Data Model Object) is a structured data model object. Both can be queried, but DMOs are typically used for unified data models.
Run the skill without specifying a name to list all DLOs or DMOs in your org. The output will show the developer names (e.g., 'Employee__dll' for DLOs, 'Individual__dlm' for DMOs) that you can use for detailed schema queries.
You need appropriate Data Cloud permissions in your Salesforce org. If you get HTTP 403 errors, verify your user has Data Cloud access and the necessary roles assigned.
This skill uses Salesforce API v64.0 for the SSOT REST endpoints. It can be updated for newer API versions if needed.
Run 'sf org login web --alias <org_alias>' to authenticate to the target org, then retry the skill execution.
Full instructions (SKILL.md)
Source of truth, from forcedotcom/sf-skills.
name: getting-datacloud-schema description: "Retrieve Data Lake Object (DLO) and Data Model Object (DMO) schema information from Salesforce Data Cloud using REST APIs. Use this skill when you need to inspect DLO or DMO field definitions, data types, or metadata. Takes org alias and optional DLO/DMO name as parameters." metadata: version: "1.0"
getting-datacloud-schema Skill
Overview
This skill retrieves Data Lake Object (DLO) and Data Model Object (DMO) schema information from Salesforce Data Cloud using the SSOT REST API. It can list all DLOs or DMOs in an org, or retrieve detailed schema for a specific DLO or DMO.
When to Use
- User wants to see all DLOs or DMOs in a Data Cloud org
- User needs field schema for a specific DLO or DMO
- User is exploring Data Cloud data structures
- User needs to understand DLO or DMO field types and metadata
Prerequisites
- SF CLI installed and authenticated to target org
- Org has Data Cloud enabled
- User has appropriate Data Cloud permissions
Skill Execution
Parameters
- org_alias (required): The SF CLI org alias (e.g., 'afvibe', 'myorg')
- dlo_name (optional): Specific DLO developer name (e.g., 'Employee__dll')
- dmo_name (optional): Specific DMO developer name (e.g., 'Individual__dlm')
Step 1: Discover Connected Org
First, run sf org list to find out which org is connected and extract the alias to use for all subsequent calls:
sf org list
Example output:
┌────┬───────┬──────────────────────────┬────────────────────┬───────────┐
│ │ Alias │ Username │ Org Id │ Status │
├────┼───────┼──────────────────────────┼────────────────────┼───────────┤
│ 🍁 │ myorg │ chandresh@afvidedemo.org │ 00DKZ00000b80NT2AY │ Connected │
└────┴───────┴──────────────────────────┴────────────────────┴───────────┘
Extract the Alias value (e.g., myorg) from the output and use it as the <org_alias> for all subsequent calls. Use --all to see expired and deleted scratch orgs as well.
Step 2: Validate SF CLI Authentication
Before making API calls, verify the org is connected:
sf org display --target-org <org_alias> --json
If not connected, inform user to run:
sf org login web --alias <org_alias>
Step 3a: Execute DLO Schema Script
The Python scripts are bundled with this skill. They live in the scripts/ subdirectory of the same directory that contains this SKILL.md file. Use the absolute path to that directory — do NOT use ./scripts/ as that resolves relative to the current working directory, not the skill directory.
To list all DLOs:
python3 <skill_dir>/scripts/get_dlo_schema.py <org_alias>
To get specific DLO schema:
python3 <skill_dir>/scripts/get_dlo_schema.py <org_alias> <dlo_name>
Step 3b: Execute DMO Schema Script
To list all DMOs:
python3 <skill_dir>/scripts/get_dmo_schema.py <org_alias>
To get specific DMO schema:
python3 <skill_dir>/scripts/get_dmo_schema.py <org_alias> <dmo_name>
Step 4: Present Results
Parse and present the results in a user-friendly format:
For DLO List:
- Show DLO name, label, category, and ID
- Indicate total count
- Highlight DLOs with data (totalRecords > 0)
For DLO Schema:
- Show basic info (name, label, category, status)
- List all fields with:
- Field name
- Data type
- Primary key indicator
- Nullable status
- Highlight custom fields (exclude system fields like DataSource__c, cdp_sys_*)
- Show record count if available
For DMO List:
- Show DMO name, label, category, and ID
- Indicate total count
For DMO Schema:
- Show basic info (name, label, category, description)
- List all fields with:
- Field name
- Data type
- Primary key indicator
- Nullable status
- Show dataspace information if available
Step 5: Offer Next Steps
After displaying results, suggest relevant follow-up actions:
- Query data from the DLO
- Create calculated insights
- Build segments
- Set up data streams
- Create DMO mappings
API Endpoints Used
List All DLOs
GET /services/data/v64.0/ssot/data-lake-objects
Response structure:
{
"dataLakeObjects": [
{
"name": "Employee__dll",
"label": "Employee",
"category": "Profile",
"id": "1dlXXXXXXXXXXXXXXX",
"status": "ACTIVE",
"totalRecords": 12,
"fields": [...]
}
],
"totalSize": 5
}
Get DLO Schema
GET /services/data/v64.0/ssot/data-lake-objects/{dlo_name}
Response structure (same as individual object in list response, but wrapped in paginated format).
List All DMOs
GET /services/data/v64.0/ssot/data-model-objects
Response structure:
{
"dataModelObjects": [
{
"name": "Individual__dlm",
"label": "Individual",
"category": "Profile",
"id": "0dmXXXXXXXXXXXXXXX",
"fields": [...]
}
],
"totalSize": 10
}
Get DMO Schema
GET /services/data/v64.0/ssot/data-model-objects/{dmo_name}
Response structure (same as individual object in list response, but wrapped in paginated format).
Error Handling
Common Issues:
-
Org not connected
- Message: "Org not connected"
- Solution: Ask user to authenticate via SF CLI
-
DLO not found
- Message: "DLO 'XYZ__dll' not found"
- Solution: List all DLOs first to verify name
-
DMO not found
- Message: "DMO 'XYZ__dlm' not found"
- Solution: List all DMOs first to verify name
-
Permission issues
- Message: HTTP 403 errors
- Solution: Verify user has Data Cloud permissions
-
API version mismatch
- Current: v64.0
- Solution: Script can be updated for newer API versions
Example Usage
Example 1: List all DLOs
User: "Show me all DLOs in afvibe org"
Response:
1. Run sf org list to discover connected org alias
2. Authenticate to afvibe
3. Run: python3 <skill_dir>/scripts/get_dlo_schema.py afvibe
4. Display formatted list of DLOs
Example 2: Get specific DLO schema
User: "Get the schema for Employee__dll in afvibe"
Response:
1. Run sf org list to discover connected org alias
2. Authenticate to afvibe
3. Run: python3 <skill_dir>/scripts/get_dlo_schema.py afvibe Employee__dll
4. Display field schema with types and metadata
Example 3: Explore DLOs then get schema
User: "What DLOs exist in myorg and show me the schema for the Employee one"
Response:
1. Run sf org list to discover connected org alias
2. List all DLOs in myorg
3. Identify Employee__dll
4. Get detailed schema for Employee__dll
5. Present both results
Example 4: List all DMOs
User: "Show me all DMOs in afvibe org"
Response:
1. Run sf org list to discover connected org alias
2. Authenticate to afvibe
3. Run: python3 <skill_dir>/scripts/get_dmo_schema.py afvibe
4. Display formatted list of DMOs
Example 5: Get specific DMO schema
User: "Get the schema for Individual__dlm in afvibe"
Response:
1. Run sf org list to discover connected org alias
2. Authenticate to afvibe
3. Run: python3 <skill_dir>/scripts/get_dmo_schema.py afvibe Individual__dlm
4. Display field schema with types and metadata
Example 6: Explore DMOs then get schema
User: "What DMOs exist in myorg and show me the schema for the Individual one"
Response:
1. Run sf org list to discover connected org alias
2. List all DMOs in myorg
3. Identify Individual__dlm
4. Get detailed schema for Individual__dlm
5. Present both results
Output Format
DLO List Output
Found 5 DLOs in org 'afvibe':
1. DataCustomCodeLogs__dll
Label: DataCustomCodeLogs
Category: Engagement
Records: 233
2. Employee__dll
Label: Employee
Category: Profile
Records: 12
[...]
DLO Schema Output
DLO: Employee__dll
Label: Employee
Category: Profile
Status: ACTIVE
Records: 12
Custom Fields:
• id__c (Text) - Primary Key
• name__c (Text)
• position__c (Text)
• manager_id__c (Number)
System Fields:
• DataSource__c (Text)
• InternalOrganization__c (Text)
• cdp_sys_SourceVersion__c (Text)
Next steps:
- Query data: SELECT * FROM Employee__dll LIMIT 10
- Create segment based on position field
- Set up data stream for real-time updates
DMO List Output
Found 10 DMOs in org 'afvibe':
1. Individual__dlm
Label: Individual
Category: Profile
2. ContactPointEmail__dlm
Label: Contact Point Email
Category: Profile
[...]
DMO Schema Output
DMO: Individual__dlm
Label: Individual
Category: Profile
Description: Represents an individual person
Fields:
• Id__c (Text) - Primary Key
• FirstName__c (Text)
• LastName__c (Text)
• BirthDate__c (DateTime)
Next steps:
- Query data: SELECT * FROM Individual__dlm LIMIT 10
- View DLO mappings to this DMO
- Create calculated insights
Notes
- DLO names always end with
__dllsuffix - DMO names always end with
__dlmsuffix - Field names always end with
__csuffix - System fields (DataSource__c, KQ_, cdp_sys_) are automatically added
- Primary key fields are required for DLO and DMO queries
- API supports pagination (limit/offset) for large result sets
Related Skills
- datakit_workflow: For DMO mapping operations
- datakit_validation: For validating datakit configurations
- Use this skill before creating DMO mappings to understand source DLO structure
Related skills
More from forcedotcom/sf-skills and the wider catalog.

handling-sf-data
Create, update, delete, and bulk import/export Salesforce records using sf CLI and anonymous Apex.

harmonizing-datacloud
Harmonize and unify Salesforce Data Cloud schemas, mappings, identity resolution, and profiles.

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).