Skip to content

Create a template

Send a POST request to create a new template (called a “checklist” in the API) inside an organization. The response returns the newly created template with a 201 Created status.

Endpoint

POST https://go.tallyfy.com/api/organizations/{org}/checklists

Path parameters

ParameterTypeDescription
orgstringRequired. The organization ID.

Body parameters

Pass a JSON object with the template properties you want to set.

ParameterTypeDescription
titlestringRequired. Template title (max 250 characters).
typestringRequired. One of procedure, form, or document.
summarystringShort description (max 2000 characters).
owner_idintegerMember ID of the template owner. Must belong to the organization.
user_idintegerMember ID of the template starter. Must belong to the organization.
webhookstringURL for webhook notifications on template events. Must be a valid URL.
explanation_videostringURL of a video explaining the template. Must be a valid URL.
starredbooleanWhether to star the template.
guidancestringInstructions or guidance for using the template.
iconstringIcon name to associate with the template.
is_publicbooleanMake the template publicly visible in the library.
is_featuredbooleanFeature the template in the public library.
public_coverstringCover image URL for the public library listing.
folder_idstringID of an existing folder to place the template in.
default_process_name_formatstringFormat string for auto-naming processes launched from this template.
is_public_kickoffbooleanMake the kick-off form publicly accessible.
auto_namingbooleanTurn on automatic process naming using default_process_name_format.
dual_version_enabledbooleanEnable dual-version (draft/published) mode.
usersarrayArray of member IDs who get default access to this template.
groupsarrayArray of group IDs that get default access to this template.
prerunarrayArray of objects defining kick-off form fields. Each needs label, field_type, and required at minimum.
folderize_processbooleanAuto-create a folder for processes launched from this template.
tag_processbooleanAuto-tag processes launched from this template.
allow_launcher_change_namebooleanLet the launcher override the default process name. Only applies when auto_naming is off.
can_add_ootbooleanAllow adding one-off tasks to processes from this template.

Code samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID'; // Replace with actual Org ID
const apiUrl = `https://go.tallyfy.com/api/organizations/${orgId}/checklists`;
const templateData = {
title: "New JS API Template", // Required
type: "procedure", // Required: "procedure", "form", or "document"
summary: "Template created via Fetch API.",
owner_id: 12345 // Optional: owner member ID
};
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: 'POST',
headers: headers,
body: JSON.stringify(templateData)
})
.then(response => {
return response.json().then(data => {
if (!response.ok) {
console.error("Failed to create template:", data);
throw new Error(`HTTP error! status: ${response.status}`);
}
// Expect 201 Created
console.log(`Template created. Status: ${response.status}`);
return data;
});
})
.then(data => {
console.log('Successfully created template:');
console.log(JSON.stringify(data, null, 2));
// Use data.data.id to get the new template ID
})
.catch(error => {
console.error('Error creating template:', error.message);
});

Example response (201 Created)

A successful call returns the full template object wrapped in data:

{
"data": {
"id": "b3d9c1a8e7f6...",
"increment_id": 42,
"title": "New Client Onboarding Template",
"summary": "Standard procedure for onboarding new clients.",
"starred": false,
"webhook": null,
"guidance": null,
"alias": "new-client-onboarding-template-b3d9c1",
"folder_id": null,
"prerun": [],
"created_by": 123,
"owner_id": 12345,
"kickoff_title": null,
"kickoff_description": null,
"started_processes": 0,
"created_at": "2025-10-27T10:00:00.000Z",
"last_updated": "2025-10-27T10:00:00.000Z",
"archived_at": null,
"is_public": false,
"automated_actions": [],
"topic_tags": [],
"industry_tags": [],
"public_cover": null,
"icon": null,
"type": "procedure",
"steps_count": 0,
"is_public_kickoff": false,
"default_process_name_format": null,
"dual_version_enabled": false,
"is_published_state": false,
"is_featured": false,
"auto_naming": false,
"last_updated_by": 123,
"status": null,
"explanation_video": null,
"users": [],
"groups": [],
"is_pinned": false,
"folderize_process": false,
"tag_process": false,
"allow_launcher_change_name": false,
"ko_form_blueprint_id": null,
"default_folder": null,
"folder_changeable_by_launcher": false,
"can_add_oot": false,
"kickoff_sharing_user_id": null
}
}

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.

Processes > Launch process

Launch a new Tallyfy process from a template using POST /organizations/[org_id]/runs with checklist_id and optional fields for kick-off form data, task assignments, and deadlines.

Templates > List templates

This API endpoint retrieves process templates (called Checklists in the API) from an organization using a GET request with query parameters for filtering, pagination and search.