Skip to content

Launch process

Launch process API endpoint

This endpoint launches a new process (run) from a template (checklist/blueprint).

Endpoint

POST /organizations/{org_id}/runs

Request

Replace {org_id} with your Organization ID.

Headers

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

Body (JSON)

Required field:

  • checklist_id (string): The template ID to launch from.

Optional fields:

  • name (string, max 550 chars): Name for this process instance. If omitted, auto-generates as "{template title} - {date}".
  • summary (string): Description for this process instance.
  • owner_id (string): User ID of the process owner.
  • user_id (string): User ID of the process starter (must belong to the organization).
  • starred (boolean): Whether the process is starred.
  • is_public (boolean): Make the process accessible via a public link.
  • parent_id (string): Link this process as a sub-process of another run.
  • prerun (object): Key-value pairs to pre-fill kick-off form fields, keyed by field timeline ID (see below).
  • tasks (object): Overrides for task properties like assignees and deadlines. Keys are step timeline IDs from the template.
  • tags (array of strings): Tag IDs to apply to this process.
  • users (array of strings): User IDs assigned to the process.
  • groups (array of strings): Group IDs assigned to the process.
  • roles (object): Role-based assignments, keyed by role ID.
  • folders (array of strings): Folder IDs where this process should appear.

Populating kick-off fields with prerun

The prerun object is keyed by kick-off field timeline ID. The value format depends on the field type:

  • Text/Textarea: { "field_id_abc": "Your text value" }
  • Date: { "field_id_def": "YYYY-MM-DDTHH:mm:ss.sssZ" } (ISO 8601)
  • Radio button: { "field_id_ghi": "Selected Option Value" }
  • Dropdown: { "field_id_jkl": { "id": 2, "text": "Option Text", "value": null } }
  • Checklist (multi-select): { "field_id_mno": [{ "id": 1, "text": "Option 1", "value": null, "selected": true }] }
  • File/Image: { "field_id_pqr": [{ "id": "asset_id", "filename": "report.pdf", "version": 1, "url": "...", "uploaded_from": "ko_field", "subject": { "id": "template_id", "type": "Checklist" } }] } (requires pre-uploading the file first)

Overriding task properties with tasks

The tasks object lets you set assignees and deadlines per step. Each key is a step timeline ID from the template.

Assignees go inside an owners sub-object:

{
"step_timeline_id": {
"deadline": "2025-01-20T17:00:00Z",
"owners": {
"users": [12345],
"guests": ["guest@example.com"],
"groups": ["group_id"]
}
}
}

Code samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID';
const apiUrl = `https://go.tallyfy.com/api/organizations/${orgId}/runs`;
const launchPayload = {
checklist_id: "TEMPLATE_ID_TO_LAUNCH",
name: "Process Launched via JS",
summary: "Started programmatically.",
// prerun is an object keyed by kick-off field timeline IDs
prerun: {
"kickoff_field_id_1": "Customer XYZ",
"kickoff_field_id_2": "2025-01-15T12:00:00Z"
},
// Task overrides keyed by step timeline IDs
tasks: {
"step_id_abc": {
deadline: "2025-01-20T17:00:00Z",
owners: {
users: [12345]
}
}
}
};
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(launchPayload)
})
.then(response => {
return response.json().then(data => {
if (!response.ok) {
console.error("Failed to launch process:", data);
throw new Error(`HTTP error! status: ${response.status}`);
}
console.log(`Process launched. Status: ${response.status}`);
return data;
});
})
.then(data => {
console.log('Successfully launched process:');
console.log(JSON.stringify(data, null, 2));
// Access the new run ID via data.data.id
})
.catch(error => {
console.error('Error launching process:', error.message);
});

Response

A successful request returns a 201 Created status code and a JSON object with the full details of the newly created process instance, wrapped in a data object.

Postman > Working with templates and processes

Tallyfy’s API lets you launch processes from templates by posting to the runs endpoint with a checklist ID and optional kick-off form data while also supporting advanced patterns like dynamic template selection and bulk launching through Postman scripts.

Triggers > Launch via API

Tallyfy’s REST API lets you programmatically launch processes by sending a POST request with a template ID and optional pre-filled data so that external events like CRM deal closures or form submissions can automatically kick off tracked workflows with custom names and assignments and deadlines.

Templates > Create a template

Tallyfy’s API lets you create a new process template by sending a POST request to the checklists endpoint with a required title and type (procedure/form/document) along with optional settings like owner assignment and kick-off form fields and webhook URLs and access controls — returning the full template object with a 201 status code.

Pro > Launching

Tallyfy lets you launch reusable templates into independent trackable processes — each with its own name and deadlines and assignments — through six different methods including manual clicks and API calls and email triggers and magic links while template edits only affect future launches and never alter already-running work.