Skip to content

Update template

Endpoint

PUT /organizations/{org_id}/checklists/{checklist_id}

Updates the properties of an existing template (blueprint) by its ID.

Request

Replace {org_id} with your Organization ID and {checklist_id} with the template 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 the fields you want to change. The title field is required on every update request (max 250 characters). All other fields are optional.

Required field:

  • title (string, required) - Template title, max 250 characters

Common optional fields:

  • owner_id (string) - Must be a valid user in your organization
  • webhook (string) - Must be a valid URL
  • guidance (string) - Guidance text for the template
  • icon (string) - Icon identifier
  • folder_id (string) - Folder ID to organize this template
  • is_public (boolean) - Make the template publicly accessible
  • is_public_kickoff (boolean) - Enable public kick-off form
  • explanation_video (string) - Must be a valid URL
  • default_process_name_format (string, max 550) - Auto-naming format for launched processes
  • auto_naming (boolean) - Enable automatic process naming
  • users (array of strings) - Replaces the entire existing user list
  • groups (array of strings) - Replaces the entire existing group list

Example body:

{
"title": "Updated Template Name",
"guidance": "New guidance notes for this template."
}

Code samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID';
const checklistId = 'TEMPLATE_ID_TO_UPDATE';
const apiUrl = `https://go.tallyfy.com/api/organizations/${orgId}/checklists/${checklistId}`;
const updateData = {
title: "Updated via JS Fetch",
guidance: "New guidance added via API.",
// Note: Updating 'users' or 'groups' replaces the entire list.
// users: ["user_id_1", "user_id_2"]
};
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 template ${checklistId}:`, data);
throw new Error(`HTTP error! status: ${response.status}`);
}
return data;
});
})
.then(data => {
console.log(`Successfully updated template ${checklistId}:`);
console.log(JSON.stringify(data, null, 2));
})
.catch(error => {
console.error(`Error updating template ${checklistId}:`, error.message);
});

Response

A successful request returns a 200 OK status code and a JSON object with the full template details after the update.

{
"data": {
"id": "TEMPLATE_ID_TO_UPDATE",
"title": "Updated via JS Fetch",
"guidance": "New guidance added via API.",
"owner_id": "user_id_here",
"webhook": null,
"is_public": false,
"type": "procedure",
"users": [],
"groups": [],
"last_updated": "2026-01-15T12:30:00.000Z"
}
}

If the template isn’t found, you’ll get a 404. Permission issues return 403. Validation errors - like a missing title - return 422.


Tasks > Update task

Tallyfy’s API lets you update any task (process or one-off) via a PUT request where you can…

Tags > Update tag

Modify an existing tag’s title (up to 30 characters, unique per organization) or hex color code…

Processes > Update process

Tallyfy’s API lets you partially update a running process by sending a PUT request with only the…