Jobs: recurrence settings
Retrieve a recurrence's stored configuration
/a/JobRecurrence_get
Read the raw sequence settings and cached child IDs before editing a recurring-job workflow.
When to use this endpoint
Use when the job's recurrence_id is already known. getRID can resolve legacy cached membership when it is not. This is the raw stored record, not a generated-job list or a mapped editor response.
Authentication and permissions
Authenticate with signed API-key fields or a logged-in CRM session. The handler adds no role, page, ownership or department-visibility check.
Reads the authenticated tenant. There is no active-only recurrence filter and no pagination.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | Integer string | Yes | Recurrence ID, converted to an integer. It is not a job ID. |
Example request
$recurrence = FM_api('JobRecurrence_get', ['id'=>'1042']);
Example response
{
"id": "1042",
"name": "Monthly inspections",
"ids": "1087,1088",
"cdate": "2026-10-14",
"edate": null,
"active": "1",
"every": "3",
"on_arr": "30",
"customer_id": "81",
"customer_type": "0",
"next_date": null,
"user_id": "0",
"notes": "[{\"content\":\"Inspect access equipment.\"}]",
"files": null,
"edited_uuid": "JobRecurrence_setName",
"last_edited": "2026-10-14 10:00:00",
"days_in_advance": "30",
"copy_user": "1",
"copy_cust_ref": "0",
"department_id": "0",
"form_id": "0",
"schedule": "{}",
"meta": "{\"copy_job_value\":1,\"due_date_offset\":0}",
"custom": null,
"copy_job_ref": null,
"created_by": "81",
"skip_weekends": "0"
}
Representative stored row: select * returns every column present on the tenant. Database scalars are generally strings; nullable fields remain null. notes, schedule, meta and custom remain JSON text, not decoded objects.
A positive ID without a row returns JSON false, not an error or empty object.
No fields parameter is read; adding it does not narrow select *. Physical IDs in encoded schedule/metadata are not expanded to names.
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"} | Missing/nonpositive ID. |
false | No recurrence row (also the database helper's failure result). |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Includes inactive sequences. No customer, department, child-active-state or ownership filtering is applied.
- ids is a cached comma-separated string, not a native array or proof that all those jobs still exist. getRID searches that cache and checkJobIds can prune stale active-job references.
- No ordering or pagination applies to a single-row lookup. The read itself performs no writes or generation.
See it in Fieldmotion
CRM1
Open the recurrence editor on a job or click the frequency cell in Jobs → Recurring Jobs; filter for JobRecurrence_get. CRM1 decodes meta separately.
CRM2
Open recurrence settings on a job; the shared jobEditRecurrence loader calls JobRecurrence_get with recurrence_id, then decodes meta and schedule. There is no request-side field projection.
Related endpoints
JobRecurrence_getRIDresolves a job's cached recurrence ID.JobRecurrence_checkJobIdsprunes missing/deleted cached children.JobRecurrence_setSchedulereplaces generation overrides.