Customers
Retrieve raw customer audit history
/a/Customers_getChangesList
Return the raw audit-history rows for one customer in newest-first order.
When to use this endpoint
Use Customers_getChangesList only when a legacy consumer needs the stored customer change records with their encoded before/after payloads.
For the formatted CRM2 activity display, use Customers_getCustomersLogList.
Authentication and permissions
The request must authenticate with signed API-key fields or a logged-in CRM session. The handler performs no additional page or role-permission check.
The lookup and any write use the authenticated tenant; an ID from another tenant cannot be addressed through this call.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
cust_id | Integer string | Yes | Customer ID. Presence is required; the value is converted to an integer, so blank and nonnumeric values query ID 0. |
Example request
$changes = FM_api('Customers_getChangesList', [
'cust_id' => '1088',
]);
Example response
[
{
"cdate": "1774517400",
"changes": "[\"Old name\",\"Northwind Cork\",0]",
"label": "name",
"name": "Alex User"
}
]
cdate is a Unix-seconds value returned as a database string. changes remains a JSON-encoded string; the endpoint does not decode or normalize it. name can be null when the user row no longer resolves.
Errors and unusual responses
| Response | Condition |
|---|---|
{"error":"not logged in"} | No authenticated tenant context is available. Invalid signed credentials can be rejected by the dispatcher before the handler runs. |
{"error":"no \"cust_id\" parameter"} | cust_id is absent. |
[] | No audit row matches the converted customer ID. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Rows are ordered by
cdatedescending. Entries sharing the same second have no secondary ordering guarantee. - The endpoint does not check whether the customer exists, is active, or is soft-deleted. Audit rows remain addressable by customer ID.
- All stored labels and payload strings are returned, including legacy or truncated history markers.
- There is no date filter, pagination, or limit.
See it in Fieldmotion
CRM1
A production-source search found no CRM1 caller for Customers_getChangesList. CRM1’s current customer history flows use other table/history implementations.
CRM2
A production-source search found no CRM2 caller for this raw endpoint. CRM2’s Customer activity view calls Customers_getCustomersLogList instead.
Related endpoints
Customers_getCustomersLogListadds display dates, labels, and before/after text.Customer_getChangesDTserves the legacy paged change-history table.Customer_exportChangesstreams the history as CSV.