Changelog
This page summarises what changed in each release of Better Bulk Price for WHMCS. For installation and upgrade instructions, see Installation.
Version 1.9
Released: March 19, 2026
Campaign Templates
Better Bulk Price now supports reusable campaign templates so teams can standardise recurring pricing workflows.
- Campaign Templates section — create, edit, use, and delete reusable campaign blueprints from a dedicated admin area.
- Template-based campaign creation — start a new draft from a saved template and pre-fill the campaign form with filters, pricing rules, email template selection, and batch settings.
- Template lineage tracking — campaigns created from a template keep a reference to their source template for better operational traceability.
Campaign Cloning
You can now clone an existing campaign into a new draft.
- Clone action — available from the campaign detail page.
- Fresh timing review — cloned campaigns keep configuration but clear timing fields so teams can review schedule decisions separately.
Admin Experience Improvements
- Expanded navigation — the admin header now includes a dedicated
Campaign Templatessection alongsideCampaignsandEmail Templates. - Guarded template deletion — templates cannot be deleted while campaigns created from them still exist, helping preserve traceability.
Version 1.8
Released: March 19, 2026
Phased Batch Execution
Large campaigns can now be rolled out in controlled execution slices instead of one all-at-once run.
- Batch size — define how many frozen targets are processed in a single execution run.
- Pause between batches — stop each batch in
pausedstatus so operations teams can review results before continuing. - Manual resume — resume the next batch directly from the campaign execution view.
- Deterministic batch ordering — targets are processed in ascending service ID order for predictable phased rollouts.
Dry Run Mode
Approved campaigns can now be simulated before any service price is changed.
- Dry Run action — launch a no-mutation execution from the campaign detail page.
- Persistent run records — dry runs are stored in execution history so teams can review what would have happened.
- Clear labelling — run history and run detail pages display a
Dry Runbadge. - Safe isolation — dry-run outcomes do not count as real execution success, so they never interfere with idempotency or campaign completion.
Operational Improvements
- The scheduler now treats
pausedruns as in-progress so the daily cron does not auto-dispatch them again. - Campaign create and edit forms now include the
Batch Sizefield andPause Between Batchestoggle.
Version 1.7
Released: March 2026
Financial Impact Simulator
Before approving a price campaign, you can now see a Financial Impact Summary directly on the preview page. This gives your team the key numbers needed to make an informed decision:
- Estimated MRR change — how much monthly recurring revenue will increase or decrease across all matched services.
- Estimated ARR change — the annualised equivalent of the MRR change.
- Unique clients affected — the number of distinct clients with at least one matched service (a client with three affected services is counted once).
- Immediate vs. deferred — how many services can be updated in the current billing window and how many will be deferred to a later cycle, including the revenue attributed to each group.
- Risk level — a colour-coded
Low,Medium, orHighbadge that reflects how broadly and how significantly the campaign affects your service base. A brief explanation of the rating is shown below the badge. - Per-currency breakdown — when a campaign spans more than one currency, a table shows the service count and estimated MRR change for each currency separately.
The same summary is stored when you approve a campaign. You can open any approved, active, or completed campaign at any time and see the original financial figures from when it was approved — even if service data has changed since.
Version 1.6
Released: March 2026
Advanced Campaign Filters
Campaigns can now use a broader set of targeting criteria, giving you much more control over which services are included:
- Multi-product targeting — select multiple products in a single campaign instead of creating one campaign per product.
- Multi-status targeting — include services in more than one status (for example, both Active and Suspended) in the same campaign.
- Price range — limit the campaign to services whose current price falls between a minimum and maximum value.
- Next due date window — restrict targets to services renewing within a specific date range.
- Client group — scope a campaign to services belonging to clients in a particular client group.
- Service exclusion list — explicitly remove specific services from the campaign even if they match all other criteria.
Version 1.5
Released: March 2026
Flexible Pricing Rules
Instead of always setting a fixed target price, you can now define how the new price is calculated:
- Absolute — set the new price to a specific value (same behaviour as before).
- Percentage — raise or lower the current price by a percentage (for example, +10%).
- Delta — add or subtract a fixed amount from each service's current price (for example, +R$ 5.00).
You can also set floor and ceiling limits so no service ends up below a minimum or above a maximum price, and choose a rounding option to keep prices clean (for example, round to the nearest R$ 0.50).