decision-tables

Guides design, configuration, invocation, and troubleshooting of Salesforce Decision Tables for rule evaluation.

Updated Aug 6, 2026
One-click install
npx skills add https://github.com/salesforce-misc/ManuAssist --skill decision-tables-salesforce-misc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: decision-tables
Source: https://github.com/salesforce-misc/ManuAssist/tree/main/knowledge/modules/decision-tables
Command: npx skills add https://github.com/salesforce-misc/ManuAssist --skill decision-tables-salesforce-misc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Configuring Salesforce Decision Tables involves many constraints—source object rules, Group By requirements, dataset link type compatibility, activation and refresh timing, and org-wide invocation limits—that are easy to violate and hard to debug. This Skill provides expert guidance across the full Decision Tables lifecycle so admins and consultants avoid misconfiguration and stale-rule errors. ## Core Features & Use Cases - Lifecycle Guidance: Walks through design, creation, input/output and operator selection, sort order, condition logic (AND/OR/Custom), Group By, activation, refresh, and distribution via change sets or packages. - Flow and API Integration: Explains invoking decision tables from Flows (with or without dataset links), Connect REST API, and Apex ConnectApi, including outcome variables and runtime operator overrides. - Limits & Gotchas: Documents hard limits (100,000 rules, 30 inputs, 5 outputs, cumulative hourly invocation caps) and 13 known pitfalls such as blank-field matching, multi-select picklist constraints, and post-deployment reactivation. - Use Case: A Manufacturing Cloud admin building discount rules asks how to evaluate 30,000 pricing rules efficiently; the Skill recommends a Group By field with AND + Equals to raise the invocation ceiling to 1.5M/hour and explains the required Flow action configuration. ## Quick Start Ask how to create and activate a decision table that evaluates discount rules from a custom object and invoke it from a scheduled Flow.

Frequently Asked Questions about decision-tables

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

FAQPage Schema
How do I create a decision table in Salesforce?

Create a decision table in Setup under Decision Tables by selecting a source object containing your business rules, then choosing up to 30 input fields with operators, up to 5 output fields, and an optional sort order. The source object must have CreatedDate and IsDeleted fields and cannot be Account, Contact, Lead, Opportunity, or Case.

How do I invoke a decision table in a Salesforce Flow?

Add an Action element in Flow Builder, select the Decision Table category, and choose the action suffixed with 'default' for direct values or the dataset link name for record-based evaluation. If Group By is configured, you must pass the Group By field value, and the table must be Active.

Why is my decision table returning stale or wrong outcomes?

Decision tables do not automatically pick up rule changes after activation. You must click Refresh or run the Refresh Decision Table flow action after adding, updating, or deleting rule records in the source object, then wait several minutes for completion.

What are the limits for Salesforce decision tables?

A decision table reads up to 100,000 rules, supports 30 inputs and 5 outputs, and allows 5 dataset links. Invocation limits are cumulative org-wide: 400,000/hour for tables under 10,000 rules, rising to 1.5 million/hour when Group By is used.

When should I use Group By in a decision table?

Use Group By when you have a high-volume, frequently filtered input field and need more than 30,000 invocations per hour. It requires the AND condition type and Equals operator, only one Group By field is allowed, and its value must be passed at every invocation.

Can I use a multi-select picklist as a decision table output?

No, Picklist (Multi-Select) fields cannot be output fields and cannot be used for sort order. As inputs they support only Exists In and Does Not Exist In operators, and at invocation time you can pass only a single value, not semicolon-separated lists.