npx skills add ...
npx skills add forcedotcom/sf-skills --skill data360-schema-get
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.
npx skills add forcedotcom/sf-skills --skill data360-schema-get
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.
First, run sf org list to find out which org is connected and extract the alias to use for all subsequent calls:
Example output:
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.
Before making API calls, verify the org is connected:
If not connected, inform user to run:
The Python scripts are bundled with this skill in the scripts/ subdirectory.
To list all DLOs:
To get specific DLO schema:
To list all DMOs:
To get specific DMO schema:
Parse and present the results in a user-friendly format:
For DLO List:
For DLO Schema:
For DMO List:
For DMO Schema:
After displaying results, suggest relevant follow-up actions:
Response structure:
Response structure (same as individual object in list response, but wrapped in paginated format).
Response structure:
Response structure (same as individual object in list response, but wrapped in paginated format).
Common Issues:
Org not connected
DLO not found
DMO not found
Permission issues
API version mismatch
Example 1: List all DLOs
Example 2: Get specific DLO schema
Example 3: Explore DLOs then get schema
Example 4: List all DMOs
Example 5: Get specific DMO schema
Example 6: Explore DMOs then get schema
__dll suffix__dlm suffix__c suffixsf org login web --alias <org_alias>python3 ./scripts/get_dlo_schema.py <org_alias>python3 ./scripts/get_dlo_schema.py <org_alias> <dlo_name>python3 ./scripts/get_dmo_schema.py <org_alias>python3 ./scripts/get_dmo_schema.py <org_alias> <dmo_name>GET /services/data/v64.0/ssot/data-lake-objects{
"dataLakeObjects": [
{
"name": "Employee__dll",
"label": "Employee",
"category": "Profile",
"id": "1dlXXXXXXXXXXXXXXX",
"status": "ACTIVE",
"totalRecords": 12,
"fields": [...]
}
],
"totalSize": 5
}GET /services/data/v64.0/ssot/data-lake-objects/{dlo_name}GET /services/data/v64.0/ssot/data-model-objects{
"dataModelObjects": [
{
"name": "Individual__dlm",
"label": "Individual",
"category": "Profile",
"id": "0dmXXXXXXXXXXXXXXX",
"fields": [...]
}
],
"totalSize": 10
}GET /services/data/v64.0/ssot/data-model-objects/{dmo_name}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 ./scripts/get_dlo_schema.py afvibe
4. Display formatted list of DLOsUser: "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 ./scripts/get_dlo_schema.py afvibe Employee__dll
4. Display field schema with types and metadataUser: "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 resultsUser: "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 ./scripts/get_dmo_schema.py afvibe
4. Display formatted list of DMOsUser: "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 ./scripts/get_dmo_schema.py afvibe Individual__dlm
4. Display field schema with types and metadataUser: "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 resultsFound 5 DLOs in org 'afvibe':
1. DataCustomCodeLogs__dll
Label: DataCustomCodeLogs
Category: Engagement
Records: 233
2. Employee__dll
Label: Employee
Category: Profile
Records: 12
[...]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 updatesFound 10 DMOs in org 'afvibe':
1. Individual__dlm
Label: Individual
Category: Profile
2. ContactPointEmail__dlm
Label: Contact Point Email
Category: Profile
[...]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