Field Service - Mobile

Beta License: AGPL-3 ursais/osi-addons

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:

Table of contents

Configuration

To configure mobile stages:

To configure automated actions tied to stage sequences, adjust the domain on each automation under Settings > Technical > Automation > Automated Actions.

To configure mobile features:

To allow a portal technician to use the mobile app:

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

  1. Open the Field Service application.
  2. Under Configuration, open FSM Mobile Features.
  3. Select installed modules and feature lines for the mobile menu.
  4. Assign security groups to control which features each user can access.
  5. 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

Authors

  • Open Source Integrators

Contributors

Other credits

The development of this module was originally supported by Open Source Integrators.

Maintainers

Current maintainer:

max3903

This module is part of the ursais/osi-addons project on GitHub.

You are welcome to contribute.