Configurator testing
Prove that Salesforce Revenue Cloud Product Configurator rules still behave as expected after a deployment.
Configurator testing recreates a known-valid quote configuration, applies an intentional change, and checks that Salesforce returns the expected rule outcome: a configuration message, or a product that should auto-add, then saves a clean valid configuration.
When to use it
Use configurator snapshots when you need to verify that:
- Invalid product combinations still raise the expected configuration-rule message
- Quantity or group-cardinality constraints still fire
- Attribute-driven include / exclude rules still apply
- Auto-add (mutual inclusivity) still materializes the dependent product
Typical triggers: changes to configuration rules, product component groups, attribute picklists, or bundle structure.
Quote Anchor vs Scenario Builder
When you capture a Configurator snapshot, choose a test type:
| Test type | What it proves | Best for |
|---|---|---|
| Quote Anchor | Recreate the quote and compare configuration messages to the captured expected set | Simpler message regression on a fixed quote |
| Scenario Builder | Run an ordered proof script (attempt → assert → optional correction → save) | Negative rules, auto-add, quantity/attribute gates |
Most teams use Scenario Builder for day-to-day configuration-rule regression. This guide focuses on Scenario Builder; Quote Anchor remains available for lighter message checks.
Prerequisites
- A connected Salesforce org with Revenue Cloud Product Configurator enabled
- The connected user has the Product Configurator API User system permission
- A valid base Quote ID (the configuration must already be valid: invalid states are introduced only during the test)
- Salesforce API version v67.0 or higher (Revsnap enforces this floor for configurator APIs)
If capture or runs fail with FUNCTIONALITY_NOT_ENABLED, see Known issues.
Capture a scenario snapshot
- Go to Snapshots and click Capture Snapshot.
- Select the connected org.
- Choose category Configurator.
- Select Scenario Builder as the test type.
- Enter a valid Base Quote ID, a Name, and optional Description.
- Click Next to open the Scenario Builder wizard.
Wizard steps
| Step | What you do |
|---|---|
| 1. Setup | Org, category, Scenario Builder, base quote, name |
| 2. Rule Type | Pick the Salesforce rule pattern you want to prove |
| 3. Scenario Builder | Choose products, attributes, or quantities for that pattern |
| 4. Review | Set the expected message (or confirm product-presence proof) and save |
On Rule Type, each card includes a Learn more link to the pattern’s help page.
Product source tabs:
- Baseline Products: everything already on the base quote: bundle parents (with their in-quote children) and any standalone (non-bundle) quote lines
- Other Bundles: catalogue parents not already on the quote (supported for some patterns, such as Mutual Exclusivity)
- Standalone Products: non-bundle catalogue products not already on the quote (when the pattern allows them)
The base quote must stay a valid configuration. Revsnap introduces the invalid change only when the scenario runs.
Expected message vs product-presence proofs
| Proof type | Used by | What you set on Review |
|---|---|---|
| Expected message | Mutual Exclusivity, Group Cardinality, Quantity Boundaries, Cross-Product Quantity, Attribute Exclusion | Severity + regex pattern matching Salesforce configurator text |
| Product presence | Mutual Inclusivity, Attribute Inclusion | No message regex: Revsnap asserts the dependent product appears after rules run |
Severity tips
- Salesforce range messages for Group Selection Cardinality and many Quantity Boundaries cases often return severity warning, not error. The Review defaults prefer warning for those patterns.
- The assertion matches both severity and the regex. Matching text with the wrong severity still fails.
- The configuration rule must be active in the target org. If it is disabled, mutations may succeed with no messages and the assertion fails.
Rule patterns
| Rule pattern | What it proves |
|---|---|
| Mutual Inclusivity (Auto Add) | Product B is auto-added when Product A is present |
| Mutual Exclusivity (Message Rule) | Product A and Product B cannot be selected together |
| Group Selection Cardinality | Group min/max selection constraints |
| Quantity Boundaries | Product quantity must stay within bounds |
| Cross-Product Quantity Dependency | Dependent quantity scales with a driver (for example 1:10) |
| Attribute-Dependent Inclusion | An attribute value auto-adds required children |
| Attribute-Dependent Exclusion | An attribute value excludes a child product |
Test multiple rules in one snapshot
A bundle usually has more than one configuration rule. Instead of capturing a separate snapshot for each rule, you can capture a multi-rule snapshot: one snapshot that holds several rule scenarios sharing the same org, bundle, and base quote. It appears as a single snapshot in your list, runs with one click, and can be added to a tag as one item.
Capturing and running a multi-rule snapshot both require a Pro plan or above. Single-rule configurator snapshots are unaffected.
Capture several rules together
- Capture a scenario as usual (Setup → Rule Type → Scenario Builder → Review).
- On Review, instead of finishing, choose Save & add another scenario. The wizard returns to Rule Type with the org, bundle, and base quote locked: you only pick the next rule pattern, its products, and its expected outcome.
- Repeat for each rule you want to cover. You can pick the same rule pattern more than once (for example two Quantity Boundaries checks with different values).
- When you're done, open the Snapshot Overview and click Save Snapshot.
The Snapshot Overview lists every scenario you've added, with Edit and Remove on each row. Choose Save & go to overview on Review at any time to jump there instead of adding another scenario.
Each scenario is saved when you complete its Review. If you close the modal mid-scenario, Revsnap asks before discarding that in-progress scenario: scenarios you already saved are kept.
How it appears and runs
- In the Snapshots list it shows as a single row with a “N rules” badge and a normal Run test button.
- Starting a run opens the same "Run regression test" confirmation dialog as any snapshot, with a note of how many rules will run.
- Running it executes each rule one at a time against the org: Revsnap builds a fresh quote per rule and captures each result independently. If one rule fails, the remaining rules still run.
- In Test Runs it appears as a single entry (with the “N rules” badge), not one entry per rule. Click it to open the run page.
- On the run page the multi-rule snapshot reads like a single run, with each rule as a collapsible section you can expand to see that rule's full report.
- Editing it reopens the Overview, where you can add, edit, or remove rules.
- Deleting it removes the snapshot and all of its rule scenarios together.
- Each rule still counts toward your monthly test-run quota: a 5-rule snapshot uses 5 runs.
Automation
- CLI: run a multi-rule snapshot by its name, exactly like any snapshot:
revsnap run --snap <name>. All of its rules run in sequence. - Tags: add a multi-rule snapshot to a tag as a single member. When you run the tag batch, the multi-rule snapshot occupies one slot: its own rules still run one at a time, while the tag's other snapshots run in parallel around it.
Run a configurator test
- Open the configurator snapshot.
- Click Run test.
- Revsnap clones the base quote in the same org, loads the configurator session, and executes the proof steps.
- Watch the live Scenario Proof Timeline while the run is in progress.
- Open the final report for step-by-step pass/fail evidence.
Configurator snapshots run against the same connected environment they were captured from, like pricing and approval.
Reading configurator results
The configurator report shows:
- Overall pass or fail
- Each proof step (attempt, assert message or product presence, correction, save)
- Configurator messages collected during the run
- Whether the final valid configuration saved successfully
Typical negative-rule timeline:
- Optional setup (attribute or driver quantity priming)
- Attempt the rule-triggering change
- Assert the expected message (or product presence)
- Correct the transient invalid state (when needed)
- Save the valid configuration
Positive auto-add timelines skip the correction phase and assert that the dependent product exists in context and on the saved quote.
Automation
Configurator snapshots work with the same automation surfaces as other categories:
- Tags and batch runs
- Schedules
- CLI / CI with API keys
Add configurator snaps to a release tag so configuration rules are checked alongside pricing and approvals before go-live.
Common issues
| Problem | What to check |
|---|---|
FUNCTIONALITY_NOT_ENABLED | Assign Product Configurator API User and ensure configurator is enabled: see Known issues |
| Assertion fails with no messages | Confirm the Salesforce rule is active; for quantity/cardinality, use a truly out-of-bounds value |
| Text matches but step fails | Severity mismatch: set Review severity to match Salesforce (warning vs error) |
| Mutual Exclusivity cannot pick a product | Choose a not-in-quote conflicting product; in-quote products are disabled for this pattern |
| Capture requires a valid base quote | Fix the quote in Salesforce first; do not start from an already-invalid configuration |
Next steps
- Capturing a snapshot: general capture flow
- Running a regression test: how runs work
- Understanding test results: pass/fail and triage
- Known issues: configurator permission and API issues