Skip to content

Update process

Endpoint

PUT /organizations/{org_id}/runs/{run_id}

Updates properties of an existing process (run). You only need to send the fields you want to change.

Request

Replace {org_id} with your Organization ID and {run_id} with the process run ID.

Headers

  • Authorization: Bearer {your_access_token}
  • Accept: application/json
  • X-Tallyfy-Client: APIClient
  • Content-Type: application/json

Body (JSON)

Send a JSON object with only the fields you want to modify. Updatable fields:

  • name (string): Process name (max 550 characters).
  • summary (string): Process description text.
  • owner_id (string): User ID of the new process owner. Must belong to the organization.
  • starred (boolean): Whether the process is starred/favorited.
  • is_public (boolean): Whether the process is publicly accessible.
  • publicly_hidden_fields (array): Field IDs to hide from public view.
  • users (array of strings): User IDs assigned to the process. Replaces all current user assignees.
  • groups (array of strings): Group IDs assigned to the process. Replaces all current group assignees.
  • prerun (object): Update kick-off form field values. Keys are field timeline IDs, values depend on field type. See Launch process.

Example body:

{
"name": "Onboarding - Globex Corp (Updated)",
"summary": "Updated summary notes for this run.",
"starred": true,
"users": ["user_id_1", "user_id_2"]
}

Code Samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID';
const runId = 'PROCESS_RUN_ID_TO_UPDATE';
const apiUrl = `https://go.tallyfy.com/api/organizations/${orgId}/runs/${runId}`;
const updateData = {
name: "JS Updated Process Name",
summary: "Adding more details here.",
starred: true
};
const headers = new Headers();
headers.append('Authorization', `Bearer ${accessToken}`);
headers.append('Accept', 'application/json');
headers.append('X-Tallyfy-Client', 'APIClient');
headers.append('Content-Type', 'application/json');
fetch(apiUrl, {
method: 'PUT',
headers: headers,
body: JSON.stringify(updateData)
})
.then(response => {
return response.json().then(data => {
if (!response.ok) {
console.error(`Failed to update process ${runId}:`, data);
throw new Error(`HTTP error! status: ${response.status}`);
}
return data;
});
})
.then(data => {
console.log(`Successfully updated process ${runId}:`);
console.log(JSON.stringify(data, null, 2));
})
.catch(error => {
console.error(`Error updating process ${runId}:`, error.message);
});

Response

Returns 200 OK with the full updated process wrapped in a data object.

{
"data": {
"id": "PROCESS_RUN_ID_TO_UPDATE",
"checklist_id": "template_timeline_id",
"checklist_title": "Onboarding Template",
"name": "Onboarding - Globex Corp (Updated)",
"summary": "Updated summary notes for this run.",
"status": "active",
"progress": 25,
"owner_id": "user_id",
"starred": true,
"is_public": false,
"users": [],
"groups": [],
"created_at": "2025-01-15T10:00:00Z",
"last_updated": "2025-01-20T14:30:00Z"
}
}

If the run ID isn’t found, you don’t have permission, or the request body is invalid, you’ll get a 404, 403, or 422 error response.


Tasks > Update task

Update existing Tallyfy tasks via PUT API endpoints for both process tasks and one-off tasks - modify title deadline assignees and form field values through taskdata objects with field-type-specific formatting for text dropdowns radio buttons and checkboxes.

Templates > Update template

Update an existing template’s properties by sending a PUT request with the required title field and any optional fields you want to change - noting that user or group arrays replace the entire existing list rather than appending to it.