Jobs: recurrence workflows and lists
Duplicate a subset of recurrence settings without copying its jobs
/a/JobRecurrence_copy
Duplicate a subset of recurrence settings without copying its jobs.
When to use this endpoint
Duplicate a subset of recurrence settings without copying its jobs. Use the recurrence ID, not the example job ID, unless a parameter explicitly says otherwise.
Authentication and permissions
Authenticate with signed API-key fields or a logged-in CRM session and tenant context. Job edit-restriction bit 128 applies, with the existing client-administrator exception. There is no additional recurrence-owner or department-visibility filter.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | Integer string | Yes | Positive recurrence ID; numeric input is coerced with intval unless stated otherwise. |
Example request
$result = FM_api('JobRecurrence_copy', ['id'=>'1042']);
Example response
{"id":1043}
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"} | ID missing/nonpositive. |
{"error":"No permission to edit"} | Job edit restriction applies. |
false | Source row absent. |
{"error":"Unable to save job delivery changes"} | Checked copy/history failed and was rolled back. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Returns false for a missing source; successful copies return a positive integer ID. A failed insert/history returns a checked transaction error rather than id=0.
- Retains name, expiry (including NULL), active, frequency, customer identity, default user, notes, copy flags, department/form, schedule, custom settings and skip-weekends. Metadata retains generation options and explicit target/department overrides.
- Strips worker building/stop flags and linked invoice-recurrence ownership from copied metadata. Does not carry cached jobs, next_date or original creation identity.
- Uses the current recurrence-days horizon and acting user as creator. The new sequence has an empty job cache, NULL next_date and default files; attachment associations are not cloned. cdate is today.
- Copying an already-expired configuration does not extend its expiry. Job_copy performs the separate example-job duplication/linkage afterward.
Side effects
- Checked tenant transaction locks the source and commits the copied row and copy history together. Creation/edit dates and operation marker are fresh.
- No direct scheduler registration, reminder or job creation is performed by this endpoint.
See it in Fieldmotion
CRM1
Duplicating a job invokes this inside Job_copy when the original job metadata has a recurrence ID. Inspect Job_copy in the Network panel; its wider job-copy operations are not effects of this endpoint alone.
CRM2
The shared job duplication backend uses Job_copy and can reach this internally; no direct canonical recurrence-copy call was found.
Related endpoints
JobRecurrences_listfinds recurrence IDs.