Skip to content
BV Solution. Independent software developer
EN NL
Let’s talk
← Work Custom software · field operations

From field planning to invoicing: one connected operations platform.

A custom system for coordinating distributed field work, while keeping planning, execution evidence, customer records and invoicing in sync.

Laravel Python OR-Tools Queues Webhooks

01 — In short

This platform is a custom operations system for field-service work. Work orders, route planning, field evidence, customer views and draft invoices live in one application, built on Laravel with Python and OR-Tools for the route planning.

02a — The problem

Planning, fieldwork, customer updates and invoicing lived in separate places. Changes in one system did not reliably show up in the others, so office staff spent time reconciling the day by hand.

02b — What we chose

Build one operations platform with clear data ownership, background sync and interfaces per role. Not another spreadsheet bolted onto an existing tool.

What I built

  1. Work-order and intervention management for office and field roles.
  2. Queued constraint-based route planning (vehicle routing with time windows) using Python and OR-Tools.
  3. Webhook-driven synchronization with batched jobs and clear ownership rules between systems.
  4. Draft invoice generation tied to completed operational work.
  5. Separate interfaces for administration, field workers and customers.

Decisions that shaped it

One owner per piece of data

Every system gets clear ownership rules, so a sync knows which side may overwrite what. That’s what stops a change in one tool from quietly undoing a change in another.

Planning runs in the background

Route planning with time windows is heavy work. It runs through a queue, so the office keeps working while a plan is being calculated.

One interface per role

Administration, field workers and customers each get their own screens. Everyone sees what they need for their part of the day, and nothing more.

05 — What changed

Planning, execution evidence and invoicing sat in one maintainable platform instead of a chain of disconnected tools. I am not inventing savings figures here. The outcome is structural: one place that is authoritative for the operational day.

What it doesn’t do

It doesn’t come with savings figures. I don’t have client-approved numbers, so I’d rather leave them out than guess. Invoices are generated as drafts from completed work. They don’t replace the invoicing decisions behind them.

Common questions

It’s route planning that has to respect rules, such as a time window for each visit. The platform calculates routes within those constraints using Python and OR-Tools, and runs the calculation through a queue.

Possibly, for a simpler setup. Here, planning, fieldwork, customer updates and invoicing lived in separate systems that didn’t agree with each other. One platform with clear data ownership fitted better than another tool on top.

Through webhooks and batched background jobs, with explicit rules about which system may overwrite what.

Next step

Need an operations system that matches how your teams work?

Tell me what you’re trying to build, automate or fix. A few lines is enough.

I read everything myself. No newsletter, no CRM sequence.