Skip to content

Bulk Actions

Bulk Actions let you make the same change to many records in one go. Instead of opening each record and applying an action by hand, you select the records once, fill in one form, test the whole batch, and then apply it.

Everything a bulk action does reuses the platform’s normal single-record behaviour. Each row runs the same permission checks, the same validation, and the same business logic as if you had made the change on the record’s own page. The difference is scale, not shortcuts.

Common uses include:

  • Dropping or reinstating a batch of numbers, services or features when a customer changes provider
  • Suspending or unsuspending records during a payment dispute
  • Editing many records from a spreadsheet, such as updating sites or descriptions
  • Adding records in bulk, such as loading a new customer’s features from a file
  • Approving draft invoices or reversing payments across a customer’s account
  • Applying annual price increases to standard features and tariffs

Bulk Actions need Expert Mode and the Bulk Action Files permission. They complement, and largely replace, the older Bulk Import Files facility.


The simplest flow starts from the record that owns what you want to change:

  1. Open the customer (or number, or service) and turn on Expert Mode
  2. Go to Expert > Bulk Actions and pick an action, for example Drop Numbers
  3. Tick the records you want on the selection list, then click “Continue”
  4. Fill in the shared action form, for example the drop date
  5. The platform tests every row and shows a per-row result
  6. Review the results, then click “Apply”

Nothing changes until you apply. The test step reports exactly which rows would succeed, which would fail, and why.


The Expert > Bulk Actions submenu appears on customer, number and service pages. It is grouped into Actions (named actions such as Drop Numbers), Add, and Edit. Only actions with at least one eligible record are shown.

Choosing an item opens a selection list of eligible records with checkboxes. From there you can continue to the action form, or switch to a CSV file using the “Download CSV” and “Upload CSV” buttons. Selection lists show up to 500 records; larger sets use the CSV route.

When you pick features under a customer, the list starts with features attached directly to the customer. A link on the page widens it to include features on the customer’s numbers and services.

Configuration lists such as ticket types, number statuses, locations and departments have their own Bulk Edit and Bulk Add entries on the list page’s Expert menu. These work the same way, but cover the whole list rather than one customer’s records. See Bulk Edit and Bulk Add for the CSV conventions.

The View / Edit Bulk Action Files list (next to Bulk Import in the main menu) shows every bulk action file, filterable by status, mode, object and action. Its Add menu holds two launch points for file-first jobs:

  • New Bulk Action: run a named action over an uploaded list of records, which may span several customers. For example, a carrier file of numbers being ported away.
  • New Bulk Update: edit or add records from an arbitrary third-party or multi-customer file whose columns are matched by their headers.

Both are covered in Bulk Update and Bulk Action Lists.


RecordsNamed actionsEdit and add
NumbersDrop, Reinstate, Suspend, Unsuspend, Make Billable, Make Non-Billable, Refund and Rebill, Reset and RebillYes
ServicesDrop, Reinstate, Suspend, Unsuspend, Make Billable, Make Non-Billable, Refund and Rebill, Reset and RebillYes
FeaturesDrop, Reinstate, Suspend, Unsuspend, Make Billable, Make Non-Billable, Recalculate Charges, Change Recurring Charge, Refund and Rebill, Reset and RebillYes
Customer Contacts-Yes
InvoicesApprove, UnapproveNo
PaymentsReverse, ReinstateNo

Invoices and payments are financial records, so they support named actions only. Bulk approve works on draft invoices; bulk reverse and reinstate mirror the single-payment actions.

Standard features, tariffs and fixed fee tariffs support the annual increase actions in bulk through the New Bulk Action chooser: Apply Increase (In Place) and Create Increased Version. These change pricing that may be shared by many customers, so treat them with the same care as the single-record versions. See Price Increases for how the two increase modes work.

Rate rows on call tariffs and fixed fee tariffs support Bulk Edit Rates and Bulk Add Rates from the tariff’s own page, with proper handling of based-upon inheritance and dated rate versions, and carrier rate files can be processed through Bulk Update. This has its own guide: Bulk Rate Updates.

Around 50 configuration objects support Bulk Edit and Bulk Add from their list pages. This includes all the type and status lists (ticket types, number statuses, feature types, transaction types and so on) plus carriers, billing cycles, locations, departments, customer groups, customer classes, customer products, commission profiles, standard features, and the MyAccount, usage report and auto top-up profiles.


Every bulk action file follows the same two-step lifecycle. The file’s Status tracks where it is: New, Testing, Tested, Applying, Applied, and for generated files Generating or Generation Failed.

Testing runs automatically after an upload, and you can re-test any time with the “Test” button.

  • Edits and adds are tested for real: the platform performs the full save, checks every rule, then rolls it back. A row that passes the test will genuinely save when you apply. Passing rows show “OK (test)”; rows with no changes show “No changes” and are skipped.
  • Named actions such as Drop are permission-checked per row but not executed, because actions can have effects a test must not trigger. Eligible rows show “Ready to apply”.

The results grid lists every row with its target record, status (Pass, Fail or Skipped) and message. Some actions also show advisory warnings, for example “No Drop Date supplied”; those rows still apply, using the shared form’s value.

The “Apply” button appears once the file is Tested. A confirmation form shows the Update Reason and Details so you can confirm or change them, then the platform processes every row. Each row succeeds or fails independently: one bad row never stops the rest of the file.

Once a file is Applied it becomes a permanent audit record. It cannot be re-run, edited or deleted.

Large files process in the background. The page shows live progress, for example “Applying - 250 of 4,000 row(s) processed…”, and reloads with a completion banner when the run finishes. The results grid shows the first 1,000 rows; the log summarises the whole file, for example:

Applied drop on 09 Jul 2026 14:02: 120 processed, 118 passed, 1 skipped (no change), 1 failed

Every bulk action records who did what, to which records, and why:

  • The Update Reason dropdown and Update Details field are captured when you create the file and confirmed when you apply it. They are recorded against every record changed.
  • Elevated users can also set On Behalf Of to attribute the change to another user.
  • Any bulk CSV may include optional Update Reason and Update Details columns. A filled cell overrides the file-level reason or details for that row only.
  • Each changed record’s activity log entry links back to the bulk action file and the exact line number, with the activity type “Edited via Bulk Action” or “Created via Bulk Action”. Named actions keep their usual activity types.

Two views bring this together:

  • The bulk action file’s Action Taken tab lists every change the file made, with the affected customer and links to each record.
  • The customer’s History > Bulk Activities tab lists every bulk action file that touched that customer, including jobs launched from their numbers or services.

The fields below make up a bulk action file record.

The uploaded file (where applicable) and basic information about the bulk action.

FieldDescription
Launched ByThe operator who launched this bulk action (the worker runs as this user)
FilenameName of the uploaded file (for the CSV upload flow)
Date CreatedDate when the bulk action file was created

What the bulk action targets and how it is processed - the object type, action, mode and status.

FieldDescription
Object TypeThe type of record this bulk action targets
ActionThe action applied to each record
StatusCurrent processing status of the bulk action
ModeHow the file is processed: Interactive (grid or CSV upload), Bulk Update (an arbitrary file resolved by header recognition and optional rules), or Bulk Action (run a named action across an uploaded list, which may span customers).
Action ParametersFile-level parameters (e.g. drop date) applied to every record
RulesOptional Bulk Update YAML rules that override the automatic header recognition (column mapping, value transforms, name lookups). Leave blank to rely on the defaults. Edit then Re-generate to rebuild the lines.

The reason and details recorded against every record changed by this bulk action.

FieldDescription
On Behalf OfOptional: the user this bulk action is being performed on behalf of, recorded against every record changed
Update ReasonReason recorded against every record changed by this bulk action
Update DetailsAdditional details recorded against every record changed by this bulk action

Additional notes and the processing log for this bulk action.

FieldDescription
NotesAdditional notes about this bulk action file
Total RowsTotal number of rows to process
Rows ProcessedNumber of rows processed so far
LogProcessing log for this bulk action file
FieldDescription
Last ModifiedTimestamp of the most recent modification to this bulk action file
CreatedTimestamp when this bulk action file was created