Skip to content

Reopen task

Endpoint

Send a DELETE request to the completed-tasks resource to reopen a finished task. This sets the task’s status back to in-progress and nulls out completed_at, completer_id, completer_guest_id, and is_approved.

  • Process task: DELETE /organizations/{org_id}/runs/{run_id}/completed-tasks/{task_id}
  • One-off task: DELETE /organizations/{org_id}/completed-tasks/{task_id}

Replace {org_id}, {run_id} (if applicable), and {task_id} with your actual IDs.

Request

Headers

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

Body

No request body is needed.

Code samples

const accessToken = 'YOUR_PERSONAL_ACCESS_TOKEN';
const orgId = 'YOUR_ORGANIZATION_ID';
const runId = 'PROCESS_RUN_ID'; // Set to null or omit for one-off task
const taskId = 'TASK_ID_TO_REOPEN';
const apiUrl = runId
? `https://go.tallyfy.com/api/organizations/${orgId}/runs/${runId}/completed-tasks/${taskId}`
: `https://go.tallyfy.com/api/organizations/${orgId}/completed-tasks/${taskId}`;
const headers = new Headers();
headers.append('Authorization', `Bearer ${accessToken}`);
headers.append('Accept', 'application/json');
headers.append('X-Tallyfy-Client', 'APIClient');
fetch(apiUrl, {
method: 'DELETE', // Use DELETE method on completed-tasks endpoint
headers: headers
})
.then(response => {
return response.json().then(data => { // Attempt to parse JSON regardless of status
if (!response.ok) { // Check for 200 OK on success
console.error(`Failed to reopen task ${taskId}:`, data);
throw new Error(`HTTP error! status: ${response.status}`);
}
console.log(`Successfully reopened task ${taskId}. Status: ${response.status}`);
return data; // Reopen might return the updated task state
});
})
.then(data => {
if(data) {
console.log('Reopened task details:');
console.log(JSON.stringify(data, null, 2));
}
})
.catch(error => {
console.error(`Error reopening task ${taskId}:`, error.message);
});

Response

A 200 OK response returns the reopened task with its status set to in-progress.

{
"data": {
"id": "TASK_ID_TO_REOPEN",
"title": "Review Proposal",
"status": "in-progress",
"completed_at": null,
"completer_id": null,
"completer_guest_id": null,
"is_approved": null
}
}

For process tasks, the response also includes a tasks_changed_by_rules field showing any sibling tasks affected by automation rules triggered by the reopen.

If the task isn’t currently completed or the ID is invalid, expect an error status code.


Tasks > Delete task

Tallyfy’s API lets you permanently delete a standalone one-off task along with all its form fields and captured values by sending a DELETE request to the task’s endpoint which returns a 204 No Content response on success and cannot be undone.

Tasks > Archive task

Tallyfy’s API lets you soft-delete (archive) a standalone one-off task by sending a DELETE request to /organizations/[org_id]/tasks/[task_id] which hides it from default views while preserving all data and allowing restoration later through a separate restore endpoint.

Tasks > Complete task

Tallyfy’s API lets you mark both process tasks and standalone tasks as complete by POSTing the task ID to the appropriate endpoint and optionally handling approval decisions or overriding the completing user while requiring all form fields to be filled beforehand.

Code Samples > Managing tasks

Tallyfy’s API gives you full control over tasks — whether they live inside a running process or exist as standalone one-off items — allowing you to list and retrieve them as well as create and update and complete and reopen them programmatically.