> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pivotal.app/llms.txt.
> For full documentation content, see https://docs.pivotal.app/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pivotal.app/_mcp/server.

# Task completion

A task is done when its `done` flag flips to `true`. The flag carries a `completed_by` (the user) and a `completed_at` (timestamp). Both feed Pi's velocity model and the on-time launch report. Completing a task fires an `onboarding.task_completed` [webhook](/webhooks/overview) and adds a `task_completed` entry to the [audit log](/product/onboardings/audit-log).

## Complete a single task

1. Open the onboarding and switch to the **Tasks** tab.
2. Click the checkbox to the left of the task title. The task strikes through and `done` flips immediately.
3. To add context, open the task first and click **Complete with note**. The note goes on the task's activity feed.

You can also complete from your personal **My tasks** view in the [Workbench](/product/workbench), which is the faster path when you're closing tasks across multiple onboardings.

## Complete multiple tasks at once

1. On the **Tasks** tab, hold **Shift** and click two tasks to select a range, or check each task's selection box.
2. Click **Bulk actions > Mark complete** in the bar that appears at the top.
3. Confirm. Every selected task writes its own audit entry with the same timestamp.

Bulk completion respects subtask rules. Completing a parent task with open subtasks asks if you want to complete the subtasks too. Default is yes.

## Undo a completed task

Within 30 days of completion, click the checkbox again or open the task and click **Mark incomplete**. The `done` flag flips to `false`, `completed_at` clears, and the audit log records `task_reopened` with your user and a timestamp.

After 30 days, the inline undo is hidden. Admins can reopen via **Task menu > Reopen** at any time.

## What happens when a parent task's subtasks all complete

The parent task auto-completes when every [subtask](/product/onboardings/subtasks) is checked. The auto-completion writes `task_completed` with `completed_by: system` and `auto: true` in the audit log. Undoing the parent reopens it but leaves the subtasks done; you'd flip each subtask's `done` flag back if you want to redo the work.

## Phase completion and task completion

Closing every task in a phase doesn't auto-advance the onboarding. Phase moves happen manually so you can decide carryover; see [Move through phases](/product/onboardings/move-through-phases). Pi flags a phase with zero open tasks as **ready to advance** on the Workbench.

## Gotchas

* A customer-facing task notifies the customer when it's marked done. If you're cleaning up old tasks, set them to internal-only first or you'll send a flurry of "done" emails to the primary contact.
* `completed_at` uses the workspace time zone from **Admin > Workspace settings > General**, not the user's local zone. Bulk completing across midnight can put tasks on different calendar days from what the user sees.
* Reopening a task does not reopen the parent onboarding if it's already `done`. Resume the onboarding first; see [Onboarding states](/product/onboardings/onboarding-states).

## Related

* [Subtasks](/product/onboardings/subtasks)
* [Audit log](/product/onboardings/audit-log)
* [Move through phases](/product/onboardings/move-through-phases)

Email **[help@pivotal.app](mailto:help@pivotal.app)** with a screenshot of where you got stuck and the customer or onboarding id from the URL.