---
title: "Update project template"
method: PUT
path: "/admin/project_templates/{id}"
tags: ["Project templates"]
---

# Update project template

`PUT /admin/project_templates/{id}`

## Request

- Base URL: `https://api.pipelinecrm.com/api/v3`
- URL: `https://api.pipelinecrm.com/api/v3/admin/project_templates/{id}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer and API key in header `app-key`
  - API key in query parameter `api_key` and API key in query parameter `app_key`

## Path parameters

- `id` integer, required

## Request body

- object
  - `project_template` ProjectTemplateWritable
    - `created_at` string: Timestamp when the record was created (time zone in user's time zone).
    - `updated_at` string: Timestamp when the record was last touched (time zone in user's time zone).
    - `name` string: The name of the project template
    - `description` string: Explanatory or descriptive text about the template
    - `duration` integer: The default duration of projects created from this template, in days. Must be a positive integer.
    - `owner_id` integer, nullable: The ID of the [user](#tag/users) who owns this template
    - `is_enabled` boolean: Whether this template is available for use
    - `is_default` boolean: Whether this is the default template for new projects
    - `deal_owner_is_collaborator` boolean: Whether the deal owner should be automatically added as a project collaborator
    - `company_owner_is_collaborator` boolean: Whether the company owner should be automatically added as a project collaborator
    - `person_owner_is_collaborator` boolean: Whether the person owner should be automatically added as a project collaborator
    - `milestones_attributes` object[]: Nested milestone template attributes
      - `id` integer: Milestone template ID (required for updates, omit for new)
      - `name` string
      - `duration` integer: Duration of the milestone in days
      - `description` string
      - `status` 'not_started' | 'in_progress' | 'completed' | 'on_hold': The default status assigned to milestones created from this template
      - `_destroy` boolean: Set to true to remove this milestone template
    - `collaborators_attributes` object[]: Nested collaborator template attributes
      - `id` integer: Collaborator template ID (required for updates, omit for new)
      - `collaborator_type` 'User' | 'Team'
      - `collaborator_id` integer
      - `_destroy` boolean: Set to true to remove this collaborator template

## Response `200`

Successful Response

- ProjectTemplateAll
  - `id` integer: Unique identifier
  - `account_id` integer, nullable: The account ID. Null for system-wide templates.
  - `is_sample` boolean: Whether this is a sample template
  - `milestones` object[]: The milestone templates belonging to this project template
    - `id` integer
    - `project_template_id` integer
    - `name` string
    - `duration` integer
    - `status` 'not_started' | 'in_progress' | 'completed' | 'on_hold'
    - `description` string, nullable
    - `created_at` string
    - `updated_at` string
    - `calendar_entries` object[]
      - `id` integer
      - `project_template_milestone_id` integer
      - `name` string
      - `description` string, nullable
      - `calendar_entry_type` 'CalendarTask' | 'CalendarEvent' | 'null', nullable
      - `calendar_entry_category_id` integer, nullable
      - `calendar_entry_priority_id` integer, nullable
      - `calendar_entry_status_id` integer, nullable
      - `day` integer: Day offset from the milestone start (the calendar entry's relative due day)
      - `owner_id` integer, nullable: The ID of the [user](#tag/users) who owns this calendar entry
      - `created_at` string
      - `updated_at` string
  - `collaborators` object[]: The collaborator templates belonging to this project template
    - `id` integer
    - `project_template_id` integer
    - `collaborator_type` string
    - `collaborator_id` integer
    - `created_at` string
    - `updated_at` string
  - `created_at` string: Timestamp when the record was created (time zone in user's time zone).
  - `updated_at` string: Timestamp when the record was last touched (time zone in user's time zone).
  - `name` string: The name of the project template
  - `description` string: Explanatory or descriptive text about the template
  - `duration` integer: The default duration of projects created from this template, in days. Must be a positive integer.
  - `owner_id` integer, nullable: The ID of the [user](#tag/users) who owns this template
  - `is_enabled` boolean: Whether this template is available for use
  - `is_default` boolean: Whether this is the default template for new projects
  - `deal_owner_is_collaborator` boolean: Whether the deal owner should be automatically added as a project collaborator
  - `company_owner_is_collaborator` boolean: Whether the company owner should be automatically added as a project collaborator
  - `person_owner_is_collaborator` boolean: Whether the person owner should be automatically added as a project collaborator
  - `milestones_attributes` object[]: Nested milestone template attributes
    - `id` integer: Milestone template ID (required for updates, omit for new)
    - `name` string
    - `duration` integer: Duration of the milestone in days
    - `description` string
    - `status` 'not_started' | 'in_progress' | 'completed' | 'on_hold': The default status assigned to milestones created from this template
    - `_destroy` boolean: Set to true to remove this milestone template
  - `collaborators_attributes` object[]: Nested collaborator template attributes
    - `id` integer: Collaborator template ID (required for updates, omit for new)
    - `collaborator_type` 'User' | 'Team'
    - `collaborator_id` integer
    - `_destroy` boolean: Set to true to remove this collaborator template

## Other responses

- `403`: The credentials are valid but this user may not perform the action (permissions, a read-only token, or API access switched off).

---

[API](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api.md) · [All operations](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/revisions/53ebfcc83597?raw)
