decision-tables

Inspect, author, deploy, refresh, and verify Salesforce Revenue Cloud decision tables.

Updated Sep 23, 2026
One-click install
npx skills add https://github.com/drgaciw/rlm-base-dev-fork --skill decision-tables-drgaciw
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: decision-tables
Source: https://github.com/drgaciw/rlm-base-dev-fork/tree/main/.cursor/skills/decision-tables
Command: npx skills add https://github.com/drgaciw/rlm-base-dev-fork --skill decision-tables-drgaciw

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Decision tables are materialized lookups that never re-read their source data, so pricing can be correct in the data yet wrong in the quote. This Skill diagnoses stale lookups, refreshes them at the right moment, and manages the full definition lifecycle in Salesforce Revenue Cloud orgs. ## Core Features & Use Cases - Freshness verification: Run headless freshness checks that report Fresh, Stale, Not comparable, or Unknown verdicts per table, with an optional strict mode to fail builds on stale data. - Definition authoring and lifecycle: Create, update, activate, deactivate, and delete table definitions through Metadata XML or Tooling API, respecting the active-edit restriction. - Refresh and CSV upload: Trigger async refreshes via flows, REST, or CCI tasks, and load CsvUpload tables through the two-phase ContentVersion upload. - Use Case: After loading new rate card entries, run the freshness check to find every table that went stale, refresh them, and confirm pricing matches the source data before debugging anything else. ## Quick Start Ask the agent to list the decision tables in your Salesforce org and check whether any of them are stale after your latest catalog or pricing data load.

Frequently Asked Questions about decision-tables

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

FAQPage Schema
How do I refresh a Salesforce decision table after a data load?▼

Run the CCI flow refresh_all_decision_tables against your org alias, or use the Decision Table Manager component on the Home page for per-table refresh. Refresh must fire when the table's source criteria become true, not when the triggering record is created.

Why is my Salesforce pricing wrong when the source data is correct?▼

Decision tables are materialized caches that never re-read source data, so a table goes stale whenever any object it reads changes. Run the check_decision_table_freshness task; a Stale verdict naming the object you edited confirms the cause, then refresh and re-test.

Can I update a decision table from Apex in Salesforce?▼

No. DecisionTable is a setup object and Apex DML on it is rejected at compile time, so the class will not deploy. Use Setup, the Metadata API, or the REST API, and bridge refreshes from Apex through the RLM_Refresh_Decision_Tables_Bulk flow.

How do I upload CSV data to a Salesforce decision table?▼

Use a two-phase upload: insert a ContentVersion holding the base64 CSV, then POST its id to the table's Connect file sub-resource. The upload appends asynchronously; wait for uploadStatus to reach Completed and dump rows back to detect silently dropped invalid rows.

Why does a decision table freshness check return Not comparable?▼

Not comparable is a refusal, not a failure. It means the check could not faithfully reproduce a source criterion, could not verify a dependency, or the table has no sObject source such as CsvUpload or ContextDefinition. Only a Stale verdict is a positive finding.

Can I edit an active decision table definition in place?▼

No. An Active table's definition is platform-blocked from modification with FIELD_NOT_UPDATABLE. Deactivate the table first, apply the edit or redeploy, then reactivate and refresh as separate commands so each platform failure returns independently.