Saved views and configuration
Delete a saved filter preset
/a/UserFilter_delete
Remove a preset definition without changing the records it selects.
When to use this endpoint
Use Delete preset in a table’s preset dialog or Settings → Filters. Do not use this to delete jobs/customers matching the preset.
Authentication and permissions
Authenticate with signed API-key fields or a logged-in CRM session. A tenant login is required.
Reads expose only filters owned by the current user or marked public=1. Writes require ownership or client-administrator permission; another user’s public filter is not editable merely because it is visible. Assigning or transferring ownership to another active tenant user requires client-administrator permission.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | Positive integer string | Yes | Physical filter row ID, not owner ID. |
Example request
$result = FM_api('UserFilter_delete', ['id' => '1088']);
Example response
{"ok":1}
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":"missing or invalid parameter: id"} | IDs must be positive integers; malformed/missing selectors are rejected. |
{"error":"filter with that ID does not exist"} | Any selected target is absent. |
{"error":"filter permission denied"} | A non-administrator targets another owner or attempts an unauthorized owner assignment. |
{"error":"configuration read failed"} | A required database read fails; no write is committed. |
{"error":"configuration write failed"} | Persistence or checked history fails; the transaction rolls back. |
{"error":"configuration transaction failed"} | Transaction begin or commit fails; no success is reported. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Locks and authorizes the selected row before deletion. Missing targets and failed persistence return errors rather than unchecked success.
- Deletion remains physical pending the retention migration. No related customer/job data is changed.
Side effects
- Changed rows request their table’s cache marker. Row changes and history commit in one checked transaction; a write, history or commit failure rolls back the batch.
- No customer/job data, notification or email is changed. No tenant feature setting alters this endpoint’s behavior.
See it in Fieldmotion
CRM1
Settings → Filters: use the row’s delete action and confirm. pageSettingsFilters.js sends this route and redraws the table.
CRM2
Open CRM2 Settings → Filters. Its UserFilter/UserFilters widget prefixes resolve through shared detail/table/edit helpers; filter browser Network requests for this exact route. Row/bulk delete actions and the preset editor call UserFilter_delete.
Related endpoints
UserFilters_getrefreshes the currently visible presets.UserFilter_savecreates a new preset rather than restoring a deleted row.