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

A DELETE endpoint permanently removes standalone tasks while preserving process-related tasks that can only be deleted through their parent process run deletion.

Code Samples > Managing tasks

Use the Tallyfy API to list, get, create, update, complete, and reopen tasks - both within process runs and as standalone one-off tasks.

Tasks > Archive task

Archive a standalone task using a DELETE request, which soft-deletes it so it’s hidden from default views but can be restored later.

Tasks > Complete task

Mark Tallyfy tasks as complete using POST requests to different endpoints for process tasks versus standalone tasks, with approval status support.