forcedotcom/sf-skills69 files

Omnistudio Epc Catalog Generate

Salesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use omnistudio-omniscript-generate, omnistudio-flexcard-generate, or omnistudio-integration-procedure-generate), implementing Apex business logic (use platform-apex-generate), or troubleshooting deployment pipelines (use platform-metadata-deploy).

Specification
Skill ID
forcedotcom/sf-skills/omnistudio-epc-catalog-generate
Publisher
forcedotcom
Repository
sf-skills
Installs
0
Files
69
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

forcedotcom/sf-skills/omnistudio-epc-catalog-generateInstalls these files
  • README.md
  • SKILL.md
  • assets/attribute-assignment-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/completion-block-template.txt
  • assets/decomposition-relationships-template.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json
  • assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json
  • assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json
  • assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json
  • assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json
  • assets/examples/static-ip-simple-offer/Static-IP_DataPack.json
  • assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json
  • assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json
  • assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json
  • assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json
  • assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json
  • assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json
  • assets/price-list-entries-template.json
  • assets/pricebook-entries-template.json
  • assets/product-child-item-template.json
  • assets/product2-offer-template.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json
  • examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json
  • examples/business-internet-plus-bundle/TRANSCRIPT.md
  • references/epc-field-guide.md
  • references/naming-conventions.md
  • references/scoring-model.md
  • scripts/cli-validation-commands.sh
  • scripts/sample-invocations.sh

What this skill tells the agent

omnistudio-epc-catalog-generate: CME EPC Product and Offer Modeling

Expert Salesforce Industries CME EPC modeler for creating Product2-based catalog entries, assigning configurable attributes, and building offer bundles through Product Child Item relationships.

This skill is optimized for DataPack-style metadata authoring. Use the canonical template set in assets/:

  • assets/product2-offer-template.json
  • assets/attribute-assignment-template.json
  • assets/product-child-item-template.json
  • assets/pricebook-entries-template.json
  • assets/price-list-entries-template.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/decomposition-relationships-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json

Additional packaged examples are available under assets/examples/, organized by offer type:

  • assets/examples/samsung-galaxy-s22-bundle/ — bundle offer example
  • assets/examples/business-internet-premium-fttc-simple-offer/ — simple offer example
  • assets/examples/business-internet-pro-vpl-simple-offer/ — simple offer example
  • assets/examples/static-ip-simple-offer/ — simple offer example

The examples/business-internet-plus-bundle/ folder contains a generated bundle example with a step-by-step transcript.

The root assets/ folder contains the canonical baseline template set for bundle authoring.


Scope

  • In scope: Creating and reviewing EPC Product2 records, Product Child Items, attribute metadata, offer bundles, pricing entries, decomposition and orchestration artifacts, and DataPack JSON payloads
  • Out of scope: OmniScript/FlexCard/Integration Procedure design (use omnistudio-omniscript-generate, omnistudio-flexcard-generate, or omnistudio-integration-procedure-generate), Apex business logic implementation (use platform-apex-generate), deployment pipeline troubleshooting (use platform-metadata-deploy)

Quick Reference

  • Primary object: Product2 (EPC product and offer records)
  • Attribute data: %vlocity_namespace%__AttributeMetadata__c, %vlocity_namespace%__AttributeDefaultValues__c, and %vlocity_namespace%__AttributeAssignment__c
  • Offer bundle composition: %vlocity_namespace%__ProductChildItem__c
  • Offer marker: %vlocity_namespace%__SpecificationType__c = "Offer" and %vlocity_namespace%__SpecificationSubType__c = "Bundle"
  • Companion bundle artifacts: pricebook entries, price list entries, object field attributes, orchestration scenarios, decomposition relationships, compiled attribute overrides, override definitions, and parent keys

Scoring: 120 points across 6 categories. Thresholds: >= 95 Deploy-ready | 70-94 Needs review | < 70 Block and fix.

Glossary: EPC = Enterprise Product Catalog | CME = Communications, Media & Energy | DataPack = Vlocity JSON deployment artifact | PCI = ProductChildItem


Asset Template Set

Use the root assets/ templates when creating a bundle payload:

  • product2-offer-template.json
  • attribute-assignment-template.json
  • product-child-item-template.json
  • pricebook-entries-template.json
  • price-list-entries-template.json
  • object-field-attributes-template.json
  • orchestration-scenarios-template.json
  • decomposition-relationships-template.json
  • compiled-attribute-overrides-template.json
  • override-definitions-template.json
  • parent-keys-template.json

For additional real-world variants, use the per-example folders under assets/examples/.


Core Responsibilities

  1. Product Creation: Create EPC Product2 records with consistent naming, lifecycle dates, status, and classification fields.
  2. Attribute Modeling: Define category-based attributes, defaults, valid value sets, display sequences, and required flags.
  3. Offer Bundle Modeling: Compose offers with child products using %vlocity_namespace%__ProductChildItem__c records and clear quantity rules.
  4. Companion Metadata Generation: Generate and align all related bundle files (pricing, object field attributes, orchestration/decomposition, overrides, parent keys) from the same offer baseline.
  5. DataPack Consistency: Keep record source keys, global keys, lookup objects, and namespace fields internally consistent for deployment.

Invocation Rules (Mandatory)

Route to this skill whenever the prompt intent matches either of these:

  1. Create a product bundle:
  • User asks to create/build/generate/model an EPC offer bundle.
  • User asks for Product2 offer setup with Product Child Items.
  • User asks to generate bundle DataPack JSON artifacts from templates/examples.
  1. Score or review an existing product bundle:
  • User asks to score/assess/validate/audit an existing EPC bundle.
  • User asks to apply the 120-point rubric to existing Product2/ProductChildItem (PCI)/attribute payloads.
  • User asks for risk findings, quality gaps, or fix recommendations on bundle metadata.

Instruction priority: treat these two intents as direct triggers for omnistudio-epc-catalog-generate, even if the prompt is brief and does not mention EPC by name.


Workflow (Create/Review)

Phase 0: Prerequisites

Before proceeding, verify:

  1. Salesforce Industries org with EPC enabled
  2. Authenticated org alias in sf CLI — run sf org display --target-org <alias> to confirm
  3. Namespace model identified: %vlocity_namespace%, vlocity_cmt, or Core

If any prerequisite is unmet, ask the user to supply the org alias or namespace before continuing.


Phase 1: Identify Catalog Intent

Ask for:

  • Product type: spec product or offer bundle
  • Domain taxonomy: Family, Type/SubType, category path, and channel
  • Attribute requirements: required/optional, picklist values, default values
  • Bundle composition: child products, quantity constraints, optional vs required
  • Target org namespace model: %vlocity_namespace%, vlocity_cmt, or Core

Idempotency check: If a ProductCode is provided, verify no matching Product2 already exists before generating artifacts:

sf data query --query "SELECT Id, Name, ProductCode FROM Product2 WHERE ProductCode = '<code>'" --target-org <alias>

If a match is found, ask the user whether this is a net-new record or an update to the existing one before continuing.

Phase 1A: Clarifying Questions for Complete Bundle (Mandatory)

Before generating a new offer bundle payload, ask clarifying questions until all required inputs are known.

Required clarification checklist:

  1. Offer identity
  • What is the offer name and ProductCode?
  • Is this net-new or an update to an existing Product2 offer?
  1. Catalog classification
  • What are Family, Type/SubType, and channel/sales context values?
  • Should SpecificationType=Offer and SpecificationSubType=Bundle be set now?
  1. Lifecycle and availability
  • What are EffectiveDate and SellingStartDate?
  • Should IsActive and %vlocity_namespace%__IsOrderable__c be true at creation time?
  1. Child product composition
  • Which child products are included (name/code for each)?
  • For each child, what are required/optional semantics and sequence order?
  1. Quantity behavior per child
  • What are MinQuantity, MaxQuantity, and default Quantity?
  • Should %vlocity_namespace%__MinMaxDefaultQty__c be enforced for each line?
  1. Attribute model
  • Which attributes are required vs optional?
  • What are valid values, defaults, display types, and display sequences?
  1. Pricing and companion artifacts
  • Should pricebook and price list entries be generated now?
  • Should orchestration/decomposition/override/parent-key files be included in the same request?
  1. Namespace and keying

More from forcedotcom

Use this skill in a project

Open any RiverX project, search the Skills panel for forcedotcom/sf-skills/omnistudio-epc-catalog-generate, and install it in one click.

Use this skill