Customers
List changed customer IDs
/a/Customers_listByLastEdited
Return the IDs of non-deleted customers whose edit timestamp is at or after a supplied checkpoint for incremental synchronization.
When to use this endpoint
Use Customers_listByLastEdited as the changed-ID step in a customer synchronization worker. Supply an overlapping checkpoint, fetch the returned customers with Customers_getById, process them idempotently, and advance the checkpoint only after the full batch succeeds.
See the Short polling guide for retry, overlap, and checkpoint examples. This endpoint does not return customer details or deletion events.
Authentication and permissions
The request must authenticate with signed API-key fields or a logged-in CRM session. The linked user must be active.
The handler requires login but has no additional role or page-permission check. It reads the authenticated tenant only and excludes soft-deleted customers. Inactive customers are included.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
from | Datetime string | Yes | Inclusive lower bound for last_edited, in exactly YYYY-MM-DD HH:MM:SS form. The value is compared directly with the tenant database timestamp; no timezone conversion is performed by this handler. |
Example request
$ids = FM_api('Customers_listByLastEdited', [
'from' => '2026-09-24 10:13:00',
]);
Example response
[
1042,
1088,
1116
]
The response is a bare JSON array of integer customer IDs.
Errors and unusual responses
| Response | Condition |
|---|---|
{"error":"missing \"from\" parameter, or parameter is in wrong format. should be \"yyyy-mm-dd hh:ii:ss\""} | from is missing or does not match the required numeric shape. |
[] | No non-deleted customer has last_edited at or after the checkpoint. |
The shape check does not verify that the components form a real calendar date. Use a valid timestamp produced by your checkpoint logic.
Behaviour and edge cases
- The comparison is inclusive:
last_edited >= from. Seeing the same ID on consecutive overlapping polls is expected. - There is no upper-bound parameter, pagination, result limit, or explicit ordering. Sort or batch the returned IDs in the client if downstream processing requires it.
- Inactive customers are included because the only state filter is
deleted=0. - Deleted customers are excluded even though deletion updates
last_edited. Use an agreed deletion-log strategy when the destination must mirror deletes. - Edits made while a request is running can enter the result depending on database timing. An overlap plus idempotent processing is required for a durable worker.
See it in Fieldmotion
CRM1
No production CRM1 screen directly calls Customers_listByLastEdited. CRM1 maintains its own browser caches through the general polling flow; use a signed request to observe this public synchronization endpoint.
CRM2
No production CRM2 caller was found. The endpoint is intended for external short-polling integrations rather than an interactive CRM2 screen.
Related endpoints
Customers_getByIdretrieves selected fields for the changed IDs.Customers_listcan return records directly with a strictlast_editedlower-bound filter and optional pagination.- Short polling provides a complete checkpoint and retry workflow.