Skip to content

Emergency Dispatch

Charter process: Outreach from client to repair report sent.

Scenario: A client calls with a system down. Dispatch checks contract status, creates a task, sends an FSE, they fix it, and we close out.

Phase 1: Intake (Target: under 30 seconds)

StepWhoWhat happens in OdooCheck
1DispatcherLook up the client in Contacts. Open the Systems tab.
2DispatcherFind the system by serial number. Check is_under_contract.
3a(If covered)Proceed normally. Costs post to the contract's analytic account.
3b(If NOT covered)This is a billable call. Note it. Costs still need an analytic account (use the client's default or a one-time service analytic).

Time this. If the dispatcher can't answer "covered or billable?" in 30 seconds, the system registry isn't working as designed.

Phase 2: Create Task and Service Request

StepWhoWhat happens in OdooCheck
4DispatcherCreate a task in Emergency Callouts project
5DispatcherToggle Service Task on. Create service request: type = Repair, select the system.
6Verify: name auto-generates ("Repair - [serial]"), customer auto-fills from system
7DispatcherAssign FSE, set dates

Phase 3: Scheduling

StepWhoWhat happens in OdooCheck
8DispatcherCheck Gantt for FSE availability
9DispatcherMove to Confirmed with Client (emergency = likely immediate)
10DispatcherBook travel if needed, move to Travel Booked
11Verify: Gantt shows the callout in red (Emergency Callouts project color)

Phase 4: On-Site Repair

StepWhoWhat happens in OdooCheck
12FSEMove task to In Progress. Log time.
13FSEIf parts consumed: create inventory transfer linked to the service request
14FSEOn the transfer, manually set the Analytic Account to the contract's analytic account
15FSEClick report template URL, fill out repair report in Google Sheets
16FSEMark task Completed - Awaiting Closeout

Step 14 is manual. The analytic account does not auto-fill. For covered calls, use the contract's analytic. For billable calls, use the client's default analytic or a general service revenue analytic. This needs to be defined before launch.

Per diem should calculate using the service per diem GL account (because is_service_task = True).

Phase 5: Closeout

StepWhoWhat happens in OdooCheck
17DispatcherReview: repair report filed, parts accounted for
18DispatcherMove task to Closed
19ManagerValidate timesheets
20AccountingPost timesheets to GL

If billable (no contract)

StepWhoWhat happens in OdooCheck
21AccountingCreate a standalone sales order for the service call (time + parts)
22AccountingCreate and send invoice from the SO

The invoicing path for billable calls needs to be defined. Options: standalone SO per call, or a running SO per client that accumulates billable service. Decision needed before launch.

What to Watch For

  • 30-second intake test: contact > systems tab > is_under_contract. Can it be done?
  • Covered vs billable branching: does the dispatcher know what to do for each?
  • Analytic account on parts transfers is MANUAL for both covered and billable calls
  • Per diem GL routing: service task should use the service per diem account
  • Billable call invoicing path: not yet defined. Needs a decision.
  • Emergency callouts should be countable by system, customer, FSE for charter metrics

Nugget Scientific internal documentation