> 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.

# Phase templates

A **phase template** is a saved set of tasks (and optional subtasks) attached to one phase. Applying a template at onboarding creation, or to a live phase, drops the full task list in pre-assigned and pre-dated. You can have multiple templates per phase. Pick the right one when you spin up an onboarding.

## Template fields

| Field                     | What it controls                                 | Notes                                                                       |
| ------------------------- | ------------------------------------------------ | --------------------------------------------------------------------------- |
| `name`                    | Display name in the picker                       | Required. Show your audience: "Enterprise Kickoff", "Self-serve UAT".       |
| `phase`                   | Which phase this template attaches to            | One template, one phase. Can't span phases.                                 |
| `tasks[]`                 | The list of tasks the template creates           | Each task carries the fields below.                                         |
| `tasks[].title`           | Task name                                        | Required.                                                                   |
| `tasks[].assignee_rule`   | Who gets the task on apply                       | One of `csm`, `account_owner`, `customer_primary_contact`, or a named role. |
| `tasks[].due_offset`      | Days from phase start until `due_date`           | Negative numbers mean "before phase start". `null` leaves the date empty.   |
| `tasks[].customer_facing` | Whether the task shows in the customer portal    | Defaults to `false`.                                                        |
| `tasks[].subtasks[]`      | Optional one-level subtask list                  | Same fields as tasks, no further nesting.                                   |
| `tasks[].links[]`         | Inline reference URLs that render on the task    | Helpful for runbooks or doc links.                                          |
| `default_for_phase`       | Auto-apply when the onboarding enters this phase | One template per phase can hold this flag.                                  |

## Creating a template

1. Open **Admin > Templates > New template**.
2. Pick the phase.
3. Add tasks. For each task, set `title`, `assignee_rule`, `due_offset`, and optionally subtasks and links.
4. Save. The template appears in the **Apply template** dropdown on any onboarding sitting in that phase.

## Applying a template

Two paths:

* **At creation**: the **New onboarding** dialog offers a template picker for each phase that has one available. Selected templates apply immediately so tasks land on day zero.
* **Live**: open an onboarding, go to the phase tab, click **Apply template**. Tasks merge in. Existing tasks aren't removed, so applying twice doubles the list. Pivotal warns you before applying a second time.

## Auto-apply on phase entry

Mark a template `default_for_phase: true` and it runs whenever an onboarding enters that phase via [phase move](/product/onboardings/move-through-phases). The transition's audit entry records `template_applied: <template_name>`.

## Gotchas

* `due_offset` is calculated from the phase entry timestamp, not from the onboarding's `created_at`. A 7-day offset on a Kickoff task due-dates from when you advance into Kickoff.
* `customer_facing: true` tasks fire portal notifications immediately on apply. Stage them with `customer_facing: false` if you want to review before customer eyes land on them.
* Templates are versioned. Editing a template doesn't update tasks already created from it. New applications use the new version.
* An `assignee_rule` that doesn't resolve (e.g. `csm` with no CSM assigned) leaves the task unassigned. Pi surfaces unassigned tasks on the Workbench.

## Related

* [The phase model](/product/onboardings/the-phase-model)
* [Task completion](/product/onboardings/task-completion)
* [Subtasks](/product/onboardings/subtasks)

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.