Field Service - Mobile
This module provides backend support for the Field Service mobile application. It manages mobile-specific stage visibility, stage duration tracking, portal configuration, dynamic feature mapping by security group, and payment link generation for field service orders linked to sales orders. Portal technicians use the Field Service Mobile / Portal Worker group, which grants the ACLs required by the app while restricting access to orders assigned to that worker.
It also exposes HTTP endpoints used by the offline-capable mobile client:
POST /fsm/sync — apply order updates, clock punches (fsm.stage.history) and signature in a single atomic transaction
POST /fsm/photo — multipart upload that creates ir.attachment without base64 RPC
POST /fsm/pull — delta pull of orders assigned to the current technician (person_id / person_ids), filtered by write_date
Table of contents
Configuration
To configure mobile stages:
Go to Field Service > Configuration > Stages.
Enable Display in Mobile for stages that should appear in the mobile app.
Enable Display in Odoo for stages that should appear on FSM orders in Odoo.
Assign a server action on stages that require automated updates.
To configure automated actions tied to stage sequences, adjust the domain on each automation under Settings > Technical > Automation > Automated Actions.
To configure mobile features:
Go to Field Service > Configuration > FSM Mobile Features.
Select installed modules for the dynamic mobile menu.
Activate a feature mapping record and assign security groups per feature line.
To allow a portal technician to use the mobile app:
Create (or open) the portal user and add the Field Service Mobile / Portal Worker group (implies Portal).
Link that user partner to an fsm.person worker.
Assign orders to that worker (person_id / person_ids); record rules limit portal workers to their own orders.
Default feature lines already include the portal worker group; adjust per-feature groups if you need a narrower mobile menu.
Upgrade note: FSM mobile ACLs are no longer granted to every Portal user. After upgrading this module, assign Portal Worker to each technician who should keep using the app; otherwise they lose access to orders, attachments, and sync APIs.
Usage
Open the Field Service application.
Under Configuration, open FSM Mobile Features.
Select installed modules and feature lines for the mobile menu.
Assign security groups to control which features each user can access.
Activate the desired feature mapping record.
Portal technicians must be in the Field Service Mobile / Portal Worker group. They then see only orders assigned to their linked fsm.person, plus the features and attachments allowed by the active feature mapping and stock visibility settings.
Mobile sync API
Authenticated mobile sessions (Portal Worker or internal workers linked to an fsm.person via partner_id) can call:
Batch sync — POST /fsm/sync (type=jsonrpc)
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"order_id": 12,
"order": {"stage_id": 5, "resolution": "Done"},
"clocks": [
{
"stage_id": 6,
"start_datetime": "2026-07-24 15:00:00",
"duration": 0.5,
"total_duration": 1.0
}
],
"signature": {
"signed_by": "Jane Doe",
"signature": "<base64 png>"
}
}
}
Use "mutations": [ {...}, {...} ] to push several orders in the same request / transaction.
Photo upload — POST /fsm/photo (multipart/form-data)
Fields: csrf_token (required), order_id, optional name, and a file field named ufile, file, photo or attachment. Obtain csrf_token from the session (e.g. /web/session/authenticate / /web/session/get_session_info).
Delta pull — POST /fsm/pull (type=jsonrpc)
{
"params": {
"since": "2026-07-24 00:00:00",
"limit": 80,
"offset": 0
}
}
Returns only orders where the current user’s fsm.person is person_id or in person_ids, optionally filtered with write_date > since.
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
Wolfgang Hall <whall@graymatterlogic.com>
Sandip Mangukiya <smangukiya@graymatterlogic.com>
Ammar Officewala <aofficewala@graymatterlogic.com>
Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
-
Maxime Chambreuil <maxime.chambreuil@graymatterlogic.com>
Other credits
The development of this module was originally supported by Open Source Integrators.
Maintainers
Current maintainer:
This module is part of the ursais/osi-addons project on GitHub.
You are welcome to contribute.
Metadata
Release files for odoo-addon-fieldservice-mobile 19.0.1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_addon_fieldservice_mobile-19.0.1.2.0.tar.gz | 54.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_addon_fieldservice_mobile-19.0.1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 133.5 kB
Release files / odoo_addon_fieldservice_mobile-19.0.1.2.0.tar.gz
| Download URL | odoo_addon_fieldservice_mobile-19.0.1.2.0.tar.gz |
|---|---|
| Size | 54.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b24548b97c08e2ad1e748473881b1862b991f875be767d9624957f8a45d8a6b0
|
|
BLAKE2b-256 checksum How to use checksums |
17281a4ff951e21621b020fa9e837ffd08bed0fa35afe52a85cec659f81c2f46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / odoo_addon_fieldservice_mobile-19.0.1.2.0-py3-none-any.whl
| Download URL | odoo_addon_fieldservice_mobile-19.0.1.2.0-py3-none-any.whl |
|---|---|
| Size | 79.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a464b6e792a6a551f86df010b6ad0732c3cbb8b57d44f79d440e82ca0019011
|
|
BLAKE2b-256 checksum How to use checksums |
1c041c7597b29d0fb4d3a9c55782bb528937cb58b5d10464589fd0075e3a43b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|