odt-authoring

Design, validate, execute, and debug OmniDataTransform Extract and Transform mappers on Salesforce.

5|3|Updated Sep 9, 2026
One-click install
npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill odt-authoring-salesforcelabs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: odt-authoring
Source: https://github.com/SalesforceLabs/revenue-cloud-foundations/tree/main/.cursor/skills/odt-authoring
Command: npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill odt-authoring-salesforcelabs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building OmniDataTransform (ODT) mappers by hand is error-prone: dot notation breaks SOQL generation, missing OutputObjectName silently drops items, and uneven hierarchy depths flatten unpredictably. This Skill provides the rules, validation workflow, and scripts to author correct Extract and Transform ODTs and debug empty or malformed output. ## Core Features & Use Cases - ODT Authoring Rules: Enforces colon-path notation, mandatory OutputObjectName, and separation of object-query items from field-mapping items. - Validation and Inspection: Runs docgen_odt_validate.py, docgen_odt_inspect_hierarchy.py, and docgen_odt_execute.py to catch null fields, duplicate sequences, and depth-uniformity violations before execution. - Debugging and Comparison: Compares ODT revisions and executes Extracts against live records to confirm output JSON shape. - Use Case: You need an Extract ODT that pulls a Quote and its line items into nested JSON for a proposal document. Use this Skill to model the hierarchy, validate it, and execute it against a scratch org before wiring it into a template. ## Quick Start Ask the agent to create and validate an Extract OmniDataTransform for the Quote object and run it against a record in your scratch org.

Frequently Asked Questions about odt-authoring

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an OmniDataTransform Extract mapper in Salesforce?

Define object query items with InputObjectQuerySequence, InputFieldName, and FilterGroup to build the hierarchy, then add field mapping items with colon paths like Quote:Name. Validate with docgen_odt_validate.py and execute against a record before use.

How to debug empty output from an OmniDataTransform?

Run docgen_odt_inspect_hierarchy.py to visualize the hierarchy tree and check depth uniformity, then run docgen_odt_execute.py against a live record. Common causes are missing OutputObjectName, dot notation in field paths, or filter mismatches.

Why does dot notation break OmniDataTransform field mappings?

Dot notation like Parent.Child.Field breaks SOQL generation in the ODT engine. Use colon paths such as Parent:Child:Field in InputFieldName and OutputFieldName instead.

When should I use odt-authoring versus document-generation?

Use odt-authoring for designing and debugging Extract/Transform mappers, hierarchies, and output JSON. Use document-generation when the task is .docx template authoring, DocumentTemplate lifecycle, token rendering, or final output verification.

Can I create OmniDataTransforms via the REST API?

Yes, the data-mapper-authoring reference covers programmatic ODT creation via REST, including cloning patterns and shell escaping pitfalls. Use REST writes only for scratch-org experimentation and commit metadata via .rpt-meta.xml for real work.