1. Insights
  2. Nov 12, 2026, 9:43:02 AM

One checkbox on a Field Service project can unlink hundreds of records

Unchecking Billable on an Odoo Field Service project cleared customers and sales order links from its tasks and timesheets. Re-checking it restored nothing.

Someone unchecked Billable on the Field Service project, saw nothing dramatic happen, and checked it again. By then the task customers, the sales order items on tasks and the sales order lines on timesheets had been cleared across the project.

Why re-checking does not help

Turning billing off clears the links as part of the write. Turning it back on only re-enables the feature. The previous values are not stored anywhere the form can restore them from.

Where the data still exists

Fields with tracking enabled leave a history. Each cleared value was recorded as a tracking entry with its old value, so the links could be rebuilt record by record from that history.

How to restore safely

  1. Work on a copy first and produce a report of what would be written.
  2. Restore from the tracking history, matching each record to its last value before the toggle.
  3. Watch for side effects: writing the sales order line back onto a task can confirm a draft order, which calls the tax engine. Decide whether you want that before you run it.
  4. Verify counts afterwards against the report.

In this case 460 task links and 484 timesheet lines were restored. If you run Field Service with billing, restrict who can edit project settings. A setting this destructive should not sit one click away from everyone with project access.

All articles

Next step

Tell me what is stuck.

A first conversation is 30 minutes with the person who would do the work. You will leave knowing whether I am the right fit and roughly what it would take.