Field Service

Jobs on site

MarketplaceOperationsVersion 0.1.0manifest

What it is for ​

Schedule on-site jobs for customers: who does the work, where, when, which parts were used and whether the customer must sign off. Site addresses and contacts are personal data and treated as such.

What the package does and does not do ​

On-site jobs for customers, done by a technician: scheduled, en route, in progress, done or cancelled. A job records the customer, the site, the technician, the planned day and start (minutes since midnight), the parts used and whether the customer must sign off. Site address and contact details are personal data. Needs the Human Resources and Products packages.

Models ​

field_service_job ​

An on-site job for a customer

Read group: field_service.user. Write group: field_service.user.

FieldKindData classPersonal dataGroupAgents seeDescription
nametextnonenofield_service.userin clearShort title of the job, for example Replace boiler pump
customer_idref → partynonenofield_service.userin clearThe customer the job is for
site_nametextnonenofield_service.userin clearName of the site, for example Main warehouse
site_addresslongtextinternalyesfield_service.usermaskedStreet address where the work is done; often a person's home
site_citytextinternalyesfield_service.usermaskedCity of the site
site_postcodetextinternalyesfield_service.usermaskedPostcode of the site
site_countrytextnonenofield_service.userin clearCountry of the site
site_contact_nametextinternalyesfield_service.usermaskedName of the person to meet on site
site_contact_phonetextinternalyesfield_service.usermaskedPhone number of the person to meet on site
technician_idref → hr_employeeinternalyesfield_service.usermaskedTechnician assigned to the job
priorityselect (low, normal, high, urgent)nonenofield_service.userin clearHow urgent the job is: low, normal, high, urgent
descriptionlongtextnonenofield_service.userin clearWhat has to be done and what the customer reported
scheduled_ondatenonenofield_service.userin clearPlanned day of the visit (YYYY-MM-DD)
scheduled_start_minutenumbernonenofield_service.userin clearPlanned start in minutes since midnight (540 is 09:00)
planned_minutesnumbernonenofield_service.userin clearPlanned duration in minutes
signature_requiredboolnonenofield_service.userin clearWhether the customer has to sign off the work before it counts as done
signed_bytextinternalyesfield_service.usermaskedName of the person who signed off the work
signed_ondatenonenofield_service.userin clearDay the customer signed off (YYYY-MM-DD)
work_reportlongtextnonenofield_service.userin clearWhat was done, written by the technician
stateselect (scheduled, en_route, in_progress, done, cancelled)nonenofield_service.userin clearJob status: scheduled, en_route, in_progress, done, cancelled

field_service_part ​

A part or product used on a job

Read group: field_service.user. Write group: field_service.user.

FieldKindData classPersonal dataGroupAgents seeDescription
job_idref → field_service_jobnonenofield_service.userin clearThe job the part was used on
product_idref → productnonenofield_service.userin clearThe product that was used
quantitynumbernonenofield_service.userin clearHow many units were used
unit_pricemoneynonenofield_service.userin clearPrice per unit charged to the customer (minor currency units, e.g. cents)
notetextnonenofield_service.userin clearRemark about the part, for example serial number

Workflows ​

field_service_job ​

ActionMovesWho may run itApproval
field_service_job.departstate: scheduled → en_routefield_service.userno
field_service_job.startstate: en_route → in_progressfield_service.userno
field_service_job.completestate: in_progress → donefield_service.userno
field_service_job.cancelstate: scheduled → cancelledfield_service.managerno

Permission groups ​

Groups used by this app:

  • field_service.manager
  • field_service.user

Approval steps ​

No step in this app needs an approval, apart from deleting records.

What agents can and cannot do ​

An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.

It can only propose these steps, and a person must approve them: field_service_job.delete, field_service_part.delete.

Personal data is masked as placeholder tokens: field_service_job.site_address, field_service_job.site_city, field_service_job.site_postcode, field_service_job.site_contact_name, field_service_job.site_contact_phone, field_service_job.technician_id, field_service_job.signed_by.

Dependencies ​

  • base
  • product
  • hr

Install ​

Install it from the Customize app (Marketplace), or from the command line:

bash
obop modules install-from field_service

Needs a database and administrator rights.

Build your own ​

The module guide shows how apps like this one are written