Skip to content
Back to skills

070 Pre C67c4286

ASecurity

Pre-built data model for Salesforce Revenue Cloud (CPQ, Billing, Subscription Management) using `flowchart LR` format with color coding and relationship indicators.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
businesspythongobashnode

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 070-pre_c67c4286 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 070 Pre C67c4286?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 070 Pre C67c4286
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-070-pre-c67c4286/badge)](https://www.skillsdirectory.com/skills/tools-only-070-pre-c67c4286)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Revenue Cloud Data Model Template

Pre-built data model for Salesforce Revenue Cloud (CPQ, Billing, Subscription Management) using `flowchart LR` format with color coding and relationship indicators.

## Objects Included

| Object | Type | Description |
|--------|------|-------------|
| ProductCatalog | STD | Product catalogs |
| ProductCategory | STD | Category hierarchy |
| ProductSellingModel | STD | Selling configurations |
| ProductSellingModelOption | STD | Model options |
| PriceAdjustmentSchedule | STD | Discount schedules |
| PriceAdjustmentTier | STD | Discount tiers |
| ProductAttribute | STD | Product attributes |
| ProductAttributeSet | STD | Attribute groupings |

---

## Query Org Metadata (Recommended)

Enrich diagram with live org data:

```bash
python3 ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/scripts/query-org-metadata.py \
    --objects ProductCatalog,ProductCategory,ProductSellingModel,PriceAdjustmentSchedule \
    --target-org myorg
```

---

## Mermaid Template (Preferred)

Left-to-right flowchart with color coding.

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    %% ═══════════════════════════════════════════════════════════════
    %% REVENUE CLOUD DATA MODEL
    %% LEGEND: LK = Lookup (-->), MD = Master-Detail (==>)
    %% Colors: Blue = Standard, Orange = Custom, Green = External
    %% ═══════════════════════════════════════════════════════════════

    %% Product Catalog
    Catalog["ProductCatalog<br/>(count)"]
    Category["ProductCategory<br/>(count)"]
    Product2["Product2<br/>(count)"]

    %% Selling Models
    PSM["ProductSellingModel<br/>(count)"]
    PSMO["ProductSellingModelOption<br/>(count)"]

    %% Pricing
    PAS["PriceAdjustmentSchedule<br/>(count)"]
    PAT["PriceAdjustmentTier<br/>(count)"]
    Pricebook2["Pricebook2<br/>(count)"]
    PBE["PricebookEntry<br/>(count)"]

    %% Attributes
    AttrSet["ProductAttributeSet<br/>(count)"]
    Attr["ProductAttribute<br/>(count)"]
    AttrSetItem["ProductAttributeSetItem<br/>(count)"]

    %% Catalog Structure
    Catalog ==>|"MD"| Category
    Category -.->|"Parent"| Category
    Category -->|"LK"| Product2

    %% Selling Models
    Product2 -->|"LK"| PSM
    PSM ==>|"MD"| PSMO

    %% Pricing
    PAS ==>|"MD"| PAT
    Pricebook2 ==>|"MD"| PBE
    Product2 -->|"LK"| PBE

    %% Attributes
    AttrSet ==>|"MD"| AttrSetItem
    Attr -->|"LK"| AttrSetItem
    Product2 -->|"LK"| AttrSet

    %% Standard Objects - Sky Blue
    style Catalog fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Category fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Product2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PSM fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PSMO fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PAS fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PAT fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Pricebook2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PBE fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style AttrSet fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Attr fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style AttrSetItem fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Key Concepts

### Revenue Cloud Components
| Component | Purpose |
|-----------|---------|
| **Industries CPQ** | Configure-Price-Quote |
| **Subscription Management** | Recurring billing |
| **Revenue Lifecycle** | Rev rec, forecasting |
| **Dynamic Revenue Orchestration** | Guided selling |

### Product Hierarchy
```
ProductCatalog
    └── ProductCategory (Hierarchy)
            └── Product2
                    ├── ProductSellingModel
                    ├── ProductAttribute
                    └── PricebookEntry
```

### Selling Model Types
| Type | Description |
|------|-------------|
| One-Time | Single purchase |
| Subscription | Recurring billing |
| Usage-Based | Consumption pricing |
| Evergreen | Auto-renewing |
| Term | Fixed duration |

### Price Adjustment Schedules
| Schedule Type | Use Case |
|---------------|----------|
| Volume Discount | Quantity-based tiers |
| Contract Discount | Agreement discounts |
| Promotional | Time-limited offers |
| Bundled | Package pricing |

---

## Simplified Version (Core Objects Only)

For presentations focusing on core revenue structure:

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    Catalog["ProductCatalog"]
    Category["ProductCategory"]
    Product2["Product2"]
    PSM["ProductSellingModel"]

    Catalog ==>|"MD"| Category
    Category -->|"LK"| Product2
    Product2 -->|"LK"| PSM

    style Catalog fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Category fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Product2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PSM fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Subscription Management Model

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    Account["Account"]
    Quote["Quote"]
    QLI["QuoteLineItem"]
    Order["Order"]
    OrderItem["OrderItem"]
    Asset["Asset"]
    BillingSchedule["BillingSchedule"]

    Account -->|"LK"| Quote
    Quote ==>|"MD"| QLI
    Quote -.->|"converts"| Order
    Order ==>|"MD"| OrderItem
    OrderItem -.->|"creates"| Asset
    Asset -->|"LK"| BillingSchedule

    style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Quote fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style QLI fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Order fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style OrderItem fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Asset fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style BillingSchedule fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Pricing Model Detail

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    Product2["Product2"]
    Pricebook2["Pricebook2"]
    PBE["PricebookEntry"]
    PAS["PriceAdjustmentSchedule"]
    PAT["PriceAdjustmentTier"]

    Pricebook2 ==>|"MD"| PBE
    Product2 -->|"LK"| PBE
    PAS ==>|"MD"| PAT
    Product2 -->|"LK"| PAS

    style Product2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Pricebook2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PBE fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PAS fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PAT fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Industries CPQ Objects

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    Quote["Quote"]
    QLI["QuoteLineItem"]
    ProposalDoc["ProposalDocument"]
    ProposalTerm["ProposalTerm"]
    DocTemplate["DocumentTemplate"]

    Quote ==>|"MD"| QLI
    Quote -->|"LK"| ProposalDoc
    ProposalDoc ==>|"MD"| ProposalTerm
    DocTemplate -->|"LK"| ProposalDoc

    style Quote fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style QLI fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style ProposalDoc fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style ProposalTerm fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style DocTemplate fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## ASCII Fallback

```
┌─────────────────────────────────────────────────────────────────────────────┐
│  REVENUE CLOUD DATA MODEL (L→R)                                              │
│  Legend: LK = Lookup (-->), MD = Master-Detail (==>)                        │
└─────────────────────────────────────────────────────────────────────────────┘

                           PRODUCT CATALOG
┌──────────────────┐         ┌──────────────────┐
│ PRODUCT_CATALOG  │═══ MD ═>│ PRODUCT_CATEGORY │◄──── Parent (self)
│     (count)      │         │     (count)      │
└──────────────────┘         └────────┬─────────┘
                                      │ LK
                                      ▼
                             ┌──────────────────┐
                             │     PRODUCT2     │
                             │     (count)      │
                             └────────┬─────────┘
                                      │
                    ┌─────────────────┼─────────────────┐
                    │ LK              │ LK              │ LK
                    ▼                 ▼                 ▼
         ┌──────────────────┐ ┌─────────────┐ ┌──────────────────┐
         │PRODUCT_SELLING_  │ │PRICEBOOK_   │ │PRODUCT_ATTRIBUTE │
         │MODEL (count)     │ │ENTRY(count) │ │_SET (count)      │
         └────────┬─────────┘ └─────────────┘ └────────┬─────────┘
                  │ MD                                 │ MD
                  ▼                                    ▼
         ┌──────────────────┐                ┌──────────────────┐
         │PRODUCT_SELLING_  │                │PRODUCT_ATTRIBUTE_│
         │MODEL_OPTION      │                │SET_ITEM (count)  │
         │    (count)       │                └────────┬─────────┘
         └──────────────────┘                         │ LK
                                                      ▼
                                             ┌──────────────────┐
                                             │PRODUCT_ATTRIBUTE │
                                             │     (count)      │
                                             └──────────────────┘

                           PRICE ADJUSTMENTS
┌────────────────────────┐         ┌──────────────────────────┐
│PRICE_ADJUSTMENT_       │═══ MD ═>│PRICE_ADJUSTMENT_TIER     │
│SCHEDULE (count)        │         │        (count)           │
└────────────────────────┘         └──────────────────────────┘
```

---

## Key Relationships Summary

| Parent | Child | Type | Behavior |
|--------|-------|------|----------|
| ProductCatalog | ProductCategory | MD | Cascade delete |
| ProductCategory | ProductCategory | LK | Parent (hierarchy) |
| ProductCategory | Product2 | LK | Product classification |
| Product2 | ProductSellingModel | LK | Selling configuration |
| ProductSellingModel | ProductSellingModelOption | MD | Model options |
| PriceAdjustmentSchedule | PriceAdjustmentTier | MD | Discount tiers |
| Pricebook2 | PricebookEntry | MD | Product prices |
| Product2 | PricebookEntry | LK | Product reference |
| ProductAttributeSet | ProductAttributeSetItem | MD | Attribute membership |
| ProductAttribute | ProductAttributeSetItem | LK | Attribute reference |

---

## Limits & Considerations

| Limit | Value |
|-------|-------|
| Product categories depth | 10 levels |
| Products per catalog | Unlimited (LDV) |
| Selling models per product | Multiple |
| Discount tiers per schedule | Unlimited |
| Attributes per product | Unlimited |
| Pricebooks per org | Unlimited |

---

## Revenue Cloud vs Salesforce CPQ

| Feature | Revenue Cloud | Salesforce CPQ |
|---------|---------------|----------------|
| Platform | Industries | Core |
| Bundles | Dynamic | Static |
| Attributes | Dynamic | Limited |
| Selling Models | Native | Custom |
| Subscription | Native | Requires add-on |
| Target | Industry-specific | General |

---

## Best Practices

1. **Use `flowchart LR`** - Left-to-right flow for readability
2. **Keep objects simple** - Name + record count only
3. **Replace `(count)` placeholders** - With actual counts from query
4. **Add LDV indicator** - For objects >2M records: `LDV[~4M]`
5. **Color code object types** - Blue=Standard, Orange=Custom, Green=External

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.