Idempotency in Field Service Management

Field Service Management (FSM) mobile sync updates data between the FSM Mobile app and the server so both have the latest saved information. The Idempotency feature in FSM helps prevent duplicate records during syncs, retries, and unstable network conditions. When FSM receives the same request multiple times, it uses an idempotency key to process a single instance of the request so your records remain accurate.

FSM now uses NetSuite's External ID field to store the idempotency key for records that FSM creates or updates during FSM mobile sync. You don't need to create separate custom idempotency fields or add idempotency settings to the configuration.

How FSM Prevents Duplicate Records

FSM prevents duplicate records during sync as follows:

  1. Before FSM processes a request to create a NetSuite record, it checks the field service idempotency record (customrecord_nx_idempotency) for an active record with the same idempotency key.

    An active field service idempotency record is a record with the same idempotency key that hasn't expired. An idempotency key expires after 60 seconds. This period is the pending window, when FSM uses the key to identify and block repeated requests.

    • If FSM finds an active field service idempotency record with the same key, FSM triggers an ARTICLE_SYNC_PENDING error and doesn't create or update the target NetSuite record. The rejection lets the FSM mobile app retry after the pending window expires.

    • If FSM finds an expired field service idempotency record, FSM treats it as stale and clears it before retrying the request. This prevents expired field service idempotency records from blocking valid retries.

    • If FSM doesn't find an active field service idempotency record with the same key, FSM creates a new idempotency record and proceeds with the record creation process.

  2. When FSM creates the new record, it stores the same idempotency key in the record's External ID field.

  3. The FSM Mobile app receives and processes the success response or error.

After 24 hours, FSM deletes idempotency records to keep the list from getting too large.

Idempotency on Standard and Custom Mobile Tabs

Idempotency runs automatically for all mobile tabs that create new records, including custom tabs. You don't need any additional setup.

Idempotency Field Changes

  • As of FSM version 2026.05.1, FSM no longer populates the old custom idempotency fields.

  • FSM stores the idempotency key in the External ID for both existing and new NetSuite accounts.

  • FSM adds the fsm_ prefix to idempotency keys before storing them in the External ID field.

Related Topics

General Notices