This module is the base of the Field Service application in Odoo.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Manage field service work in Odoo: locations, workers, equipment, teams, and orders with scheduling, stages, signatures, and territory-based assignments.
This module adds a complete Field Service application to Odoo. Users can create and manage service locations (with addresses, contacts, sub-locations, and geolocation), field service workers (linked to contacts, with categories, working schedules, territories, and teams), equipment (assigned to operators and locations), and service orders.
Orders are organized by stages (like a Kanban pipeline) and teams, with priorities, tags, categories, and templates. Scheduling is supported: start/end dates, duration, and automatic calculation of the latest request date based on priority and company buffer settings. Orders can be signed by customers, and completing or cancelling an order moves it to the corresponding stage.
Business rules include: locations inherit address and owner from parent locations; territories drive branch, district, and region assignments; workers can be auto-populated on locations based on territory; equipment can be auto-populated on orders based on location; and orders cannot be deleted unless they are in the default stage. A holiday check prevents scheduling on non-working days.
Menus and screens are provided for all these areas, along with configuration settings to enable teams, categories, tags, equipment, templates, and territories. The module also adds a report for service orders and a signature wizard.
Depends on
Required by other modules
Menus it adds
Models and fields (19)
- fsm.tag · new modelname, color (Color Index), full_name, parent_id (Parent), company_id (Company)
- fsm.team · new modelname, color (Color Index), active, sequence, order_ids (Orders), stage_ids (Stages), company_id (Company), description, order_count (Orders Count), order_need_assign_count (Orders to Assign), order_need_schedule_count (Orders to Schedule)
- fsm.order · new modelzip, city, name, todo (Instructions), type, color (Color Index), phone (Location Phone), street, street2, tag_ids (Tags), team_id (Team), date_end (Actual End), duration (Actual duration), priority, sequence, stage_id (Stage), branch_id (Branch), is_closed (Is closed), person_id (Assigned To), region_id (Region), signature, signed_by, signed_on, company_id (Company), date_start (Actual Start), person_ids (Field Service Workers), resolution, stage_name (Stage Name), state_name (State), description
- fsm.stage · new modelfold (Folded in Kanban), name, active, sequence, team_ids (Teams), is_closed (Is a close stage), company_id (Company), is_default (Is a default stage), stage_type, description, custom_color (Color Code), legend_priority (Priority Management Explanation), require_signature
- fsm.person · new modelactive, mobile, team_id (Team), state_id, partner_id (Related Partner), calendar_id (Working Schedule), category_ids (Categories), location_ids (Linked Locations), territory_ids (Territories), active_partner (Partner is Active)
- fsm.wizard · new modelfsm_record_type
- res.company · extends an existing modelsearch_on_complete_name (Search Location By Hierarchy), fsm_order_request_late_low (Hours of Buffer for Low Priority FS Orders), fsm_order_request_late_high (Hours of Buffer for High Priority FS Orders), fsm_order_request_late_lowest (Hours of Buffer for Lowest Priority FS Orders), fsm_order_request_late_medium (Hours of Buffer for Medium Priority FS Orders), auto_populate_equipments_on_order (Auto-populate Equipments on Order based on Location), auto_populate_persons_on_location (Auto-populate Workers on Location based on Territory)
- res.partner · extends an existing modeltype, fsm_person (Is a FS Worker), fsm_location (Is a FS Location), fsm_location_ids (Related FS Location), owned_location_ids (Owned Locations), service_location_id (Primary Service Location), owned_location_count (# of Owned Locations)
- fsm.category · new modelname, color (Color Index), full_name, parent_id (Parent), company_id (Company), description
- fsm.location · new modelnotes (Location Notes), team_id, owner_id (Related Owner), branch_id (Branch), child_ids (Children Locations), direction, parent_id (Parent), region_id (Region), contact_id (Primary Contact), partner_id (Related Partner), person_ids (Workers), calendar_id (Office Hours), description, district_id (District), parent_path, territory_id (Territory), complete_name, contact_count (Contacts Count), equipment_count (Equipment), branch_manager_id (Branch Manager), region_manager_id (Region Manager), sublocation_count (Sub Locations), complete_direction, district_manager_id (District Manager), territory_manager_id (Primary Assignment)
- fsm.template · new modelname, team_id (Team), type_id (Type), duration, company_id (Company), category_ids (Categories), instructions
- fsm.equipment · new modelname, color (Color Index), notes, branch_id (Branch), child_ids (Children), parent_id (Parent), person_id (Assigned Operator), region_id (Region), company_id (Company), district_id (District), location_id (Assigned Location), owned_by_id (Owned By), territory_id (Territory), managed_by_id (Managed By), current_location_id (Current Location)
- res.territory · extends an existing modelperson_id (Primary Assignment), person_ids (Field Service Workers)
- fsm.order.type · new modelname, internal_type
- fsm.model.mixin · new modelhide, stage_id (Stage)
- fsm.location.person · new modelemail, phone, owner_id (Owner), sequence, person_id (Worker), contact_id (Contact), location_id (Location)
- res.config.settings · extends an existing modelgroup_fsm_tag (Manage Tags), group_fsm_team (Manage Teams), group_fsm_category (Manage Categories), group_fsm_template (Manage Template), group_fsm_equipment (Manage Equipment), group_fsm_territory (Manage Territory), module_fieldservice_crm (CRM), search_on_complete_name (Search Location By Hierarchy), module_fieldservice_sale (Sell FSM orders), module_fieldservice_size (Manage sizes for orders and locations), module_fieldservice_fleet (Link FSM vehicles to Fleet vehicles), module_fieldservice_route (Manage routes), module_fieldservice_skill (Manage Skills), module_fieldservice_stock (Use Odoo Logistics), fsm_order_request_late_low (Hours of Buffer for Low Priority FS Orders), module_fieldservice_repair (Link FSM orders to MRP Repair orders), fsm_order_request_late_high (Hours of Buffer for High Priority FS Orders), module_fieldservice_account (Invoice your FSM orders), module_fieldservice_project (Projects and Tasks), module_fieldservice_vehicle (Manage Vehicles), module_fieldservice_activity (Manage FSM Activities), module_fieldservice_purchase (Manage subcontractors and their pricelists), module_fieldservice_timeline (Allow Field Service Web Timeline View), fsm_order_request_late_lowest (Hours of Buffer for Lowest Priority FS Orders), fsm_order_request_late_medium (Hours of Buffer for Medium Priority FS Orders), module_fieldservice_agreement (Manage Agreements), module_fieldservice_geoengine (Use GeoEngine), module_fieldservice_recurring (Manage Recurring Orders), module_fieldservice_substatus (Manage Sub-Statuses), module_fieldservice_google_map (Allow Field Service Google Map)
- fsm.order.sign.wizard · new modelorder_id (Order), signature, signed_by
- fsm.person.calendar.filter · new modelactive, user_id, person_id, person_checked
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 15.0
Confirmed on 2026-11-03 in branch 15.0 of OCA/field-service.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0The base Field Service module can be used with minimal initial configuration. It also allows for many advanced features, which require a more in-depth configuration.
Order Stages
The stage of an order is used to monitor its progress. Stages can be configured based on your company's specific business needs. A basic set of order stages comes pre-configured for use.
- Go to Field Service \> Configuration \> Stages
- Create or edit a stage
- Set the name for the stage.
- Set the sequence order for the stage.
- Select Order type to apply this stage to your orders.
- Additonally, you can set a color for the stage.
Field Service Areas
You can manage designated areas or locales for your field service workers, salesmen, and other resources. For example, salesmen may serve a particular Territory. There may be multiple Territories served by a single Branch office location. Multiple Branches are managed within a District and these Districts are managed under an encompassing Region.
Setup a Territory
- Go to Settings \> Users & Companies \> Territories*
- Create or select a territory
- Set the territory Name and description
- Select or create a branch which this territory serves
- Choose a type of zip, country whichs defines the boundary used
- Input a list of zip codes, countries based on your desired configuration
Setup Branches, Districts, and Regions
If your business requires, define your Branches, Districts, and Regions. These are found under Field Service \> Configuration \> Locations
Advanced Configurations
Additional features, automations, and GeoEngine features can be enabled in the General Settings panel for Field Service.
- Go to Field Service \> Configuration \> Settings
- Enable additional options
- Configure new options
Manage Teams
Teams can be used to organize the processing of field service orders into groups. Different teams may have different workflows that a field service order needs to follow.
- Go to Field Service \> Configuration \> Workers \> Teams
- Create or select a team
- Set the team name, description, and sequence
You can now define custom stages for each team processing orders.
- Go to Field Service \> Configuration \> Stages
- Create or edit a stage
- Select the teams for which this stage should be used
Manage Categories
Categories are used to group workers and the type of orders a worker can do.
- Go to Field Service \> Configuration \> Workers \> Categories
- Create or select a category
- Set the name and description of category
- Additionally, you can select a parent category if required
Manage Tags
Tags can be used to filter and report on field service orders
- Go to Field Service \> Configuration \> Orders \> Tags
- Create or select a tag
- Set the tag name
- Set a color index for the tag
Manage Order Templates
Order templates allow you to create standard templates for your orders.
- Go to Field Service \> Master Data \> Templates
- Create or select a template
- Set the name
- Set the standard order instructions
Usage
Source · Odoo 19.0To use this module, you need to:
Add Field Service Locations
Locations are the specific places where a field service order is performed.
- Go to Field Service \> Master Data \> Locations
- Create a location
You can also convert an existing contact:
- Open the contact form
- Go to the Field Service tab
- Click Convert to FS Location
Or create a child contact with type Location under a customer; a related Field Service location is created automatically.
Add Field Service Workers
Workers are the people responsible for performing a field service order. These workers may be subcontractors or a company's own employees.
- Go to Field Service \> Master Data \> Workers
- Create a worker
You can also convert an existing contact:
- Open the contact form
- Go to the Field Service tab
- Click Convert to FS Worker
Process Orders
Once you have established your data, you can begin processing field service orders.
- Go to Field Service \> Dashboard \> Orders
- Create or select an order
- Enter relevant details for the order
- Process order through each stage as defined by your business requirements
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.