Free tools / Manufacturing Cloud test cases
Start with the numbers your planners and finance team trust: sales agreement schedules, how actuals arrive, forecast recalculation, rebate tiers and what each distributor can see. Below are 43 test cases mapped to real Manufacturing Cloud (now Agentforce Manufacturing) objects, each with test data and a pass condition you check in the data, not on the screen.
filter // process
| ID | Scenario | Given | When | Then (check the data) |
|---|---|---|---|---|
| M-001 P1 | End date from frequency and count | GivenDraft agreement, start 2027-01-01, Monthly, schedule count 12 | WhenSaved | ThenEnd date 2027-12-31; 12 SalesAgreementProductSchedule rows per product |
| M-002 P2 | Quarterly schedules | GivenStart 2027-01-01, Quarterly, count 4 | WhenSaved | Then4 schedules per product, starting Jan 1, Apr 1, Jul 1 and Oct 1; end 2027-12-31 |
| M-003 P2 | Weekly schedules across a year end | GivenStart Monday 2027-01-04, Weekly, count 52 | WhenSaved | Then52 schedules; the last runs 2027-12-27 to 2028-01-02 |
| M-004 P1 | Planned quantity that doesn’t divide | GivenPlanned 1,000 units over 12 monthly schedules | WhenQuantities are spread | ThenSchedules sum to exactly 1,000 (83 or 84 a month, by your rule), never 996 or 1,004 |
| M-005 P1 | Approved agreement activates on its start date | GivenApproved agreement starting tomorrow | WhenThe date arrives and the daily job runs | ThenStatus Activated without anyone editing it |
| M-006 P1 | Agreement expires on its end date | GivenActivated agreement ending today | WhenThe next daily job runs | ThenStatus Expired; no new actuals post to it |
| M-007 P2 | Editing an approved agreement | GivenApproved agreement | WhenAccount manager sets it back to Draft and changes a quantity | ThenAllowed; re-approval required before activation; history shows the change |
| M-008 P2 | Rejected agreements stay inactive | GivenAgreement rejected by sales ops | WhenIts start date passes | ThenStatus stays Rejected; nothing activates |
| M-009 P1 | Negotiated price is locked | GivenAgreement price $42.00; list price raised to $45.00 next quarter | WhenPrice book changes | ThenRemaining schedules keep $42.00, unless your repricing rule says otherwise |
| M-010 P2 | Agreement discount | Given1,000 units at $42.00 with a 5% discount | WhenPlanned revenue calculates | Then$39,900.00 |
| M-011 P2 | Renewal by cloning | Given2027 agreement with actuals | WhenCloned for 2028 | ThenClonedFromAgreement set; new dates and schedules; actuals start at 0 |
| M-012 P1 | Category-level agreement | GivenAgreement at category level “Brake pads”; orders for three pad SKUs | WhenActuals calculate | ThenAll three roll into the Brake pads row by each product’s primary category |
| M-013 P1 | Activated order counts in its month | GivenOrders mode; order effective 2027-02-14, 40 units, activated | WhenActuals recalculate | ThenFebruary actual +40; January unchanged |
| M-014 P1 | Draft orders don’t count | GivenOrder for 60 units still in Draft | WhenActuals recalculate | ThenNo change until the order is activated |
| M-015 P1 | Month end in local time | GivenOrder effective 2027-01-31, created at 23:30 by a user in America/Chicago | WhenActuals recalculate | ThenCounts in January, not February |
| M-016 P2 | Product not on the agreement | GivenOrder line for a SKU outside the agreement | WhenActuals recalculate | ThenAdded to no agreement row, or to its category row if you work at category level |
| M-017 P1 | Manual mode waits for the job | GivenManual mode; ERP uploads actuals by API at 14:00 | WhenTest checks at 14:05, then after the daily job | ThenNo change at 14:05; updated after the job. A test that only checks at 14:05 is wrong, not the system |
| M-018 P2 | Refresh many agreements at once | Given30 active agreements with new orders | WhenRefresh Actuals Calculation runs from a flow | ThenAll 30 updated; no partial failures in the job log |
| M-019 P2 | Returns reduce actuals | Given40 units ordered, 10 returned | WhenReturn booked your way (reduction order or return order) | ThenNet actual 30 |
| M-020 P2 | Under-delivery alert | GivenPlanned 100, actual 72 for March | WhenMonth closes | Then72% shown; account manager alerted below your 80% threshold |
| M-021 P1 | Forecast matches the formula | GivenAgreement plan, open opportunities and orders for one account and product | WhenForecast recalculates | ThenAccountProductPeriodForecast for one sample period equals your formula worked by hand |
| M-022 P2 | Won opportunity lands in future periods | GivenOpportunity closed won for May to July 2027 | WhenForecast recalculates | ThenOnly May to July change; past periods untouched |
| M-023 P1 | Adjustment window | GivenAdjustments allowed for 10 days after the period starts | WhenPlanner adjusts on day 9, then on day 11 | ThenDay 9 saved as AccountForecastAdjustment; day 11 blocked |
| M-024 P2 | Only adjusted fields are writable | GivenIntegration user updates a forecast record | WhenIt writes the system-calculated quantity | ThenRejected; the adjusted quantity and revenue fields accept the update |
| M-025 P1 | Rolling period moves forward | Given18-month rolling forecast | WhenFirst job of a new month runs | ThenOldest month drops, a new month appears; overlapping months unchanged |
| M-026 P1 | Volume: 60,000 period rows | GivenOne distributor with 5,000 products × 12 periods | WhenForecast recalculates | ThenAll 60,000 rows updated; no partial job; done inside your batch window |
| M-027 P2 | Currency | GivenAgreement in EUR, corporate currency USD, dated exchange rates on | WhenForecast rolls up | ThenUSD values use each period’s rate, not today’s |
| M-028 P2 | Target distribution sums | GivenAcctMgrTarget of $1,200,000 for 2027 | WhenDistributed monthly | Then12 periods sum to exactly $1,200,000 |
| M-029 P2 | Program to component forecast | GivenManufacturingProgram: 50,000 vehicles, 4 units of the part per vehicle | WhenProgram forecast generates | ThenComponent forecast 200,000 units |
| M-030 P1 | Retroactive versus incremental tiers | GivenTiers: 0–9,999 units 0%, 10,000–24,999 2%, 25,000+ 3.5%; 30,000 units at $20 | WhenPayout calculates | ThenRetroactive: $21,000. Incremental: $9,500 ($0 + $6,000 + $3,500). Check which one the contract says |
| M-031 P1 | Tier boundary | GivenSame tiers; one customer at 24,999 units, one at 25,000 | WhenPayout calculates | Then24,999 earns the 2% tier; 25,000 earns 3.5% |
| M-032 P1 | Late transaction after close | GivenQ1 payout approved; an order dated 2027-03-30 arrives on 2027-04-08 | WhenRebate recalculates | ThenGoes down your adjustment path; the approved Q1 payout is not silently changed |
| M-033 P3 | Large payout approval | GivenPayout of $14,800 | WhenSubmitted | ThenRouted to finance approval ($10,000 threshold in your policy) |
| M-034 P1 | Distributors see only their own | GivenTwo distributor partner users | WhenEach opens agreements and forecasts on the partner site | ThenEach sees only their own account; a direct URL to the other’s agreement is denied |
| M-035 P2 | Partner forecast submission | GivenDistributor submits next quarter’s forecast | WhenChannel manager approves | ThenApproved values flow into the account forecast; rejected ones don’t |
| M-036 P2 | Duplicate deal registration | GivenTwo partners register the same end customer | WhenSecond registration submitted | ThenFlagged as a duplicate; the first keeps ownership |
| M-037 P1 | Warranty end from the term | GivenProductWarrantyTerm 24 months; asset installed 2027-03-15 | WhenAsset is created | ThenAssetWarranty ends 2029-03-15 (or 2029-03-14, by your inclusive rule) |
| M-038 P2 | Leap-day install | GivenAsset installed 2028-02-29; 24-month term | WhenWarranty is created | ThenA real end date (2030-02-28 or 2030-03-01 by your rule), never an error |
| M-039 P1 | Claim on the last covered day | GivenWarranty ends 2029-03-15 | WhenClaims for failures on 2029-03-15 and 2029-03-16 | ThenFirst covered, second not |
| M-040 P2 | Labor exclusion | GivenWarrantyTermCoverage covers parts only | WhenClaim has a part line and a labor line | ThenPart paid; labor rejected with a reason |
| M-041 P1 | Recall serial range | GivenRecall for serials 1000–1499 | WhenProductServiceCampaign items generate | ThenExactly 500 items; serials 999 and 1500 not included |
| M-042 P2 | Labor time capped | GivenFault code linked to a labor code with a 1.5-hour standard time | WhenTechnician claims 2.5 hours | ThenClaim pays 1.5 hours or routes for approval |
| M-043 P1 | ERP batch replay | GivenNightly ERP batch of 3,400 order lines already processed | WhenThe same batch is replayed | ThenNo duplicate orders; actuals unchanged |
Values are examples. Rules are US federal requirements as we read them on November 7, 2026; state law, contracts and your SOPs may be stricter. Swap in your own numbers before you run the suite.
// the numbers //
7 agreement statuses
Draft, Approved, Activated, Expired, Cancelled, Rejected and UnderRevision. Approved agreements activate on their start date and expire on their end date with no user action.
5 schedule frequencies
Weekly, Monthly, Quarterly, Yearly and One-time. Start date, frequency and schedule count set the end date. Check the schedule rows, not only the header.
2 actuals modes
Automatically from direct orders, or uploaded through the API. With uploads, a daily scheduled job refreshes actuals, so a check five minutes later is too early.
Draft orders only
Order products can be added only while an order is in Draft. Actual quantities count from the order’s effective date once it is activated.
1 day either side
Warranty end dates, recall serial ranges and rebate tiers are off-by-one tests. Write the day or unit before, at and after every boundary.
60,000 rows
One distributor with 5,000 products on a 12-period forecast is 60,000 period rows per recalculation. Test the volume you will run, not one account.
Where these come from
Statuses, frequencies, actuals modes and order rules are from Salesforce’s Manufacturing Cloud developer guide and Trailhead as of November 7, 2026. Thresholds marked “your policy” in the cases are examples; swap in your contract terms.
// object map //
| Process | Objects and APIs to check | What usually breaks |
|---|---|---|
| ProcessSales agreements | Objects and APIsSalesAgreementSalesAgreementProductSalesAgreementProductScheduleSalesAgreeProductAttribute | What usually breaksEnd dates and schedule counts; planned quantities that don’t divide evenly. |
| ProcessActuals | Objects and APIsOrderOrderItemSalesAgreementProductSchedule actualsRefresh Actuals Calculation action | What usually breaksTesting Orders mode when production uploads actuals; checking before the daily job runs. |
| ProcessAccount forecasting | Objects and APIsAccountForecastAccountProductForecastAccountProductPeriodForecastAccountForecastAdjustmentAdvAccountForecastSetAdvAccountForecastFact | What usually breaksPeriod boundaries, time zones and volume. |
| ProcessTargets and programs | Objects and APIsAcctMgrTargetAcctMgrPeriodicTargetDstrManufacturingProgramMfgProgramCpntFrcstFact | What usually breaksDistributions that don’t sum to the annual target. |
| ProcessRebates | Objects and APIsrebate programs, tiers, transactions and payouts | What usually breaksTier boundaries; retroactive versus incremental tiers; late transactions after close. |
| ProcessPartners and channel | Objects and APIsExperience Cloud partner siteManufacturing Sales Agreements For CommunityLead | What usually breaksPartner users never logged in; one distributor seeing another’s data. |
| ProcessAssets and warranty | Objects and APIsAssetAssetWarrantyProductWarrantyTermWarrantyTermWarrantyTermCoverageClaimClaimItemClaimCoverage | What usually breaksWarranty end dates off by a day; coverage exclusions ignored. |
| ProcessRecalls and service codes | Objects and APIsProductServiceCampaignProductServiceCampaignItemProductFaultCodeProductLaborCodeCodesetRelationship | What usually breaksSerial ranges off by one; labor time not capped. |
| ProcessERP integration | Objects and APIsOrderactuals upload APIexternal IDs | What usually breaksReplayed batches double the actuals. |
// field notes //
01
Testing the wrong actuals mode
If production uploads actuals from ERP and the sandbox calculates them from orders, every actuals test passes for the wrong reason. Copy the setting first.
02
Checking before the job runs
Activation, expiry, uploaded actuals and forecast recalculation run as scheduled jobs. Tests that assert straight after the click fail at random. Trigger the job, wait, then check.
03
Month ends in UTC
An order created at 23:30 in Chicago on January 31 is February in UTC. Put a test on every month boundary for every time zone you sell in.
04
Planned quantities that don’t divide
1,000 units over 12 months is not 83.33 each. Assert that the schedules sum to the agreement total, to the unit.
05
One account, five products
A recalculation that is fine for one account can time out at 60,000 rows. Run at least one test at production volume.
06
Partners never logged in
Internal users test the partner site as admins. Log in as two different distributors and try to open each other’s agreements.
07
Renamed cloud, two forecasting models
Manufacturing Cloud is now Agentforce Manufacturing, and account forecasting comes in a standard and an advanced model with different objects. Know which one your org runs before you write a query.
// test data //
Manufacturing Cloud defects hide at boundaries: the order at 23:30 on the last day of the month, the 25,000th unit, the leap-day install, the distributor who shouldn’t see a competitor’s agreement. Build these sets once and reuse them every release.
| Data set | Minimum | What to include |
|---|---|---|
| Data setAccounts | Minimum10 | What to include2 distributors with partner users, 1 key account in EUR, 1 account with 5,000 products |
| Data setAgreements | Minimum9 | What to includeEach schedule frequency, uneven planned quantities, a category-level agreement, one rejected, one under revision |
| Data setOrders | Minimum24 | What to includeDraft and activated; month end at 23:30 in three time zones; a return; a SKU outside the agreement |
| Data setRebate volumes | Minimum4 | What to include24,999, 25,000 and 30,000 units; one late transaction after the period closes |
| Data setAssets | Minimum6 | What to includeNormal install, leap-day install, last covered day, recall serials 999, 1000, 1499 and 1500 |
| Data setUsers | Minimum6 profiles | What to includeAccount manager, sales ops approver, demand planner, channel manager, two distributor partner users. Never an admin. |
Advanced forecasting multiplies fast: 5,000 products × 12 periods × 3 measures (quantity, revenue, adjustment) is 180,000 values for one distributor. Nobody should click through that. Assert totals with SOQL, work two or three periods by hand as the oracle, and keep the UI tests for the planner’s screens.
// keep going //
More Salesforce test cases and tools
// test cases //
Health Cloud test cases
47 cases for prior authorization, benefits verification, care programs, PHI access and life sciences samples.
See the Health Cloud cases →
// test cases //
Financial Services Cloud test cases
47 cases for households, KYC, Reg E disputes, lending, Compliant Data Sharing and insurance.
See the FSC cases →
// calendar //
When your org gets the next release
Look up preview and production dates for your instance, then rerun the P1 cases in a preview sandbox.
Check your dates →
// questions //
Questions about testing Manufacturing Cloud
What should I test first in Manufacturing Cloud?
Sales agreement dates and schedules, how actuals are calculated, forecast recalculation and what partner users can see. They carry revenue and demand plans, so they are the P1 cases on this page.
Is Manufacturing Cloud now Agentforce Manufacturing?
Yes. Salesforce now calls Manufacturing Cloud Agentforce Manufacturing. Objects such as SalesAgreement and AccountProductPeriodForecast keep their API names, so the test cases still apply.
Why do my sales agreement actuals tests fail at random?
Usually timing. With uploaded actuals, a daily job refreshes them; activation and expiry are date driven; forecasts recalculate in batch. Trigger the job or wait for it, then assert.
How do I test rebate tiers?
Test the volume just below a tier, exactly at it and well above it, and confirm whether the program pays retroactively on all volume or only on the volume inside each tier. On 30,000 units at $20, the two differ by $11,500.
How much data do Manufacturing Cloud tests need?
Small sets for logic, plus one run at production volume. A distributor with 5,000 products on a 12-period forecast is 60,000 period rows per recalculation.
Can TestZeus run these Manufacturing Cloud test cases?
Yes. Import the cases in plain English or Gherkin, run them as account managers and partner users, and check schedules, actuals and forecasts with SOQL and API calls. Runs scale out in parallel for volume suites.
// next step //
Run these cases on your own sandbox
Bring your ten most important cases. We will run them on your sandbox as account managers and partner users, check schedules, actuals and forecasts, and walk you through the report.
// Start testing //







