getting-datacloud-schema
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.
What this skill does
# 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 1. **org_alias** (required): The SF CLI org alias (e.g., 'afvibe', 'myorg') 2. **dlo_name** (optional): Specific DLO developer name (e.g., 'Employee__dll') 3. **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: ```bash sf org list ``` Example output: ``` ┌────┬───────┬──────────────────────────┬────────────────────┬───────────┐ │ │ Alias │ Username │ Org Id │ Status │ ├────┼───────┼──────────────────────────┼────────────────────┼───────────┤ │ 🍁 │ myorg │ [email protected] │ 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: ```bash sf org display --target-org <org_alias> --json ``` If not connected, inform user to run: ```bash 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:** ```bash python3 <skill_dir>/scripts/get_dlo_schema.py <org_alias> ``` **To get specific DLO schema:** ```bash python3 <skill_dir>/scripts/get_dlo_schema.py <org_alias> <dlo_name> ``` ### Step 3b: Execute DMO Schema Script **To list all DMOs:** ```bash python3 <skill_dir>/scripts/get_dmo_schema.py <org_alias> ``` **To get specific DMO schema:** ```bash 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: ```json { "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: ```json { "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:** 1. **Org not connected** - Message: "Org not connected" - Solution: Ask user to authenticate via SF CLI 2. **DLO not found** - Message: "DLO 'XYZ__dll' not found" - Solution: List all DLOs first to verify name 5. **DMO not found** - Message: "DMO 'XYZ__dlm' not found" - Solution: List all DMOs first to verify name 3. **Permission issues** - Message: HTTP 403 errors - Solution: Verify user has Data Cloud permissions 4. **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
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.