Automating bulk admin with browser automation
How an ops team stopped losing hours to repetitive clicks
“The system runs the same way on record 1 and record 1,000. We don't have to check the work anymore — the report does that for us.”
— Operations Lead, water risk & compliance platform
The client
A market-leading Dutch SaaS platform for water risk and compliance, managing thousands of locations — each with subscriptions, sensors, documents, and inspection workflows tied to regulatory obligations.
The challenge
Bulk admin — updating subscriptions, reassigning inspectors, archiving locations — ate entire afternoons, done one record at a time through the platform UI. No safety net, no audit trail.
Solution
I designed and built a custom internal automation platform around the team's highest-volume bulk workflows: a browser automation engine paired with an operator dashboard. Staff load a record list, preview what's in scope, optionally dry-run a small batch, then execute — with real-time per-record progress and a structured report (succeeded / skipped / errored) at the end of every run.
The platform is plugin-based: each workflow is a self-contained module, so adding workflow 17 means writing a new plugin, not touching the core. Sixteen workflows shipped at launch — subscription setup, price updates, inspector reassignment, document uploads, location archiving, and more.
Why it works
Preview before execution. Dry-run before scale. A full report after every run. Automation nobody can observe is worse than the manual process it replaces — it just moves faster toward a state nobody can verify. This one doesn't.
Outcomes
Hours recovered
Bulk tasks that took entire afternoons now run in minutes.
Consistent execution
Same logic, same result — 10 records or 2,000, no variance from fatigue.
Built-in audit trail
Every run produces a per-record report, no extra documentation effort.
Compounding returns
Each new workflow inherits the full platform on day one.
If a bottleneck on your team looks like a process problem but feels like a tooling problem — that's usually where I can help.
Get in touch →