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

Tallyfy’s API lets you update an existing template by sending a PUT request with a required title field and optional properties like guidance text and owner and webhook URL and folder assignment and public visibility and auto-naming format and user/group lists where array fields fully replace existing lists rather than appending to them.

Processes > Launch process

Tallyfy’s Launch Process API endpoint (POST to /organizations/[org_id]/runs) lets you programmatically start a new process from a template by providing a checklist_id along with optional parameters like name and pre-filled kick-off form fields and per-step assignee or deadline overrides.

Templates > List templates

Tallyfy’s API lets you retrieve a paginated and filterable list of process templates (called “checklists” in the API) for your organization using a GET request with optional query parameters for searching by title and filtering by status or tags or owner along with code examples in JavaScript and Python and Java and Go and C++ and C#.

Templates > Get template

Tallyfy’s API lets you fetch full details of any process template by its unique ID using a GET request and optionally include related data like steps and tags through query parameters.