Skip to content

Reopen task

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.

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

You don’t need a request body.

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);
});

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 automations 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 its form fields…

Tasks > Archive task

Tallyfy’s API lets you soft-delete (archive) a standalone one-off task by sending a DELETE…

Tasks > Complete task

Mark process tasks or standalone tasks as complete by POSTing the task ID to the right endpoint…