Winter ’25 Release: Converting Business Rules Engine Rules into CML

Winter ’25 Release: Converting Business Rules Engine Rules into CML

If you loved the Constraint Modeling Language (CML) introduced in Summer ’25, you’re going to love what Salesforce has done next.
In Winter ’25, Salesforce Revenue Cloud Advanced has quietly unlocked one of the most powerful bridges yet — the ability to convert rules created in the Business Rules Engine (BRE) into CML code.

This update is a next step for anyone who’s been building complex product logic, guided selling flows, or constraint models. It marks the true convergence of the Business Rules Engine and the Constraint Rules Engine under the Advanced Configurator framework.

What’s New

Until now, admins and architects could build product logic in BRE — defining defaults, dependencies, and validations in an intuitive UI.
But the real power of CML lies in expressiveness and integration — the ability to write constraint logic programmatically, interlink it with context definitions, and drive real-time configurator behavior.

With Winter ’25, Salesforce now lets you:

  1. Export your BRE rules as JSON data.
  2. Convert them into CML syntax using an npm-based CLI plugin.
  3. Import those CML files directly into the Constraint Rules Engine.

In other words — you can now migrate your BRE logic into a full-blown CML-based constraint model.

How It Works (Step-by-Step)

You’ll need two npm plugins to make this magic happen:

  • @salesforce/plugin-data
  • @salesforce/plugin-bre-to-cml

Here’s the workflow:

1️. Export Rules from BRE

Use the Salesforce CLI to export your BRE rules into a JSON file:

sf data export bulk --target-org breSourceOrg --sobject ProductConfigurationRule__c --output-dir data

This gives you a file like:
data/ProductConfigurationRules.json

2️. Convert BRE Rules to CML

Now use the converter plugin to transform your JSON into CML code:

sf cml convert prod-cfg-rules --pcr-file data/ProductConfigurationRules.json --cml-api MY_TEST --workspace-dir data --target-org breMigOrg

This creates:

  • A CML Expression file
  • An Association file

These files contain the converted rules ready for import into your target org.

3️. Import into Constraint Rules Engine

Finally, bring the CML logic into your target org using:

sf cml import as-expression-set --cml-api MY_TEST --context-definition PricingTransactionCD2 --workspace-dir data --target-org tgtOrg

Once imported, your rules become native CML expressions — ready to interact with constraint models, decision sets, and context definitions.

What Changes in CML vs BRE

While the conversion is powerful, there are some key differences to remember:

BehaviorBusiness Rules EngineConstraint Modeling Language
Conditional Defaults✅ Supported❌ Not supported
Auto-add Multiple Instances✅ Adds multiple⚠️ Only adds one
Message DurationEvent-basedPersists as long as condition is true

So when you migrate, review how your logic behaves at runtime — particularly where defaulting and auto-add rules are used.

Why This Matters

This feature signals Salesforce’s deeper vision:
To make Constraint Rules Engine (and CML) the single, unified home for configuration intelligence.

It lets solution architects move away from disjointed rule engines — toward a structured, code-friendly, version-controllable model.

And if you’ve already started experimenting with Advanced Configurator, this integration makes your logic portable, transparent, and easier to evolve.

Permissions & Editions

You’ll need:

  • Enterprise, Unlimited, or Developer Edition
  • Product Configurator enabled
  • Product Configuration Constraints Designer permission set

Final Thoughts

The introduction of Constraint Modeling Language was the turning point in Summer ’25 — and this Winter ’25 enhancement makes it truly production-ready.

As Salesforce continues to blend the worlds of BRE, CML, and Advanced Configurator, architects can expect a future where every configuration rule is modular, portable, and fully context-aware.

Read more