# Task templates

A task template is a preset from which Bitrix24 creates tasks with a predefined title, description, creator and responsible person. The methods in this subsection create templates, read them as a list or one at a time, and change template fields.

Bitrix24 API: `tasks.template.add`, `tasks.template.list`, `tasks.template.get`, `tasks.template.update`
Scope: `task`

## Operations

- [Create a task template](./templates-create.md) — `POST /v1/task-templates`
- [List task templates](./templates-list.md) — `GET /v1/task-templates`
- [Get a task template](./templates-get.md) — `GET /v1/task-templates/:templateId`
- [Update a task template](./templates-update.md) — `PATCH /v1/task-templates/:templateId`

## Key fields

Template fields keep their Bitrix24 names: uppercase with underscores. The full set is in the response of [`GET /v1/task-templates/:templateId`](./templates-get.md).

| Field | Description |
|------|----------|
| `ID` | Template ID |
| `TITLE` | Title of the template and of the future task |
| `DESCRIPTION` | Task description |
| `CREATED_BY` | Creator ID. List: [`GET /v1/users`](/docs/entities/users/list) |
| `RESPONSIBLE_ID` | Responsible person ID. List: [`GET /v1/users`](/docs/entities/users/list) |
| `PRIORITY` | Priority: `0` — low, `1` — normal, `2` — high |
| `GROUP_ID` | Workgroup ID. List: [`GET /v1/workgroups`](/docs/entities/workgroups/list) |

## What to know before you start

1. **Field names are not converted to camelCase.** The request body and the response are passed through without renaming or conversion: `TITLE`, not `title` as in the [task](/docs/entities/tasks) methods.
2. **Creation needs three fields.** If `TITLE`, `CREATED_BY` or `RESPONSIBLE_ID` is missing, creation responds `200` with `data: 0`, and no template appears. Success means `data` is greater than zero.
3. **A missing template is not an error.** Get and update for a `templateId` that does not exist in the Bitrix24 account respond `200` with `data: false`.
4. **List and get return fields in different forms.** In the list without `select`, the `ID` and `RESPONSIBLE_ID` fields are numbers, and member lists are arrays of IDs. In the get response, standard field values are strings, and member lists are strings in PHP serialization format.
5. **A read-only key can only read templates.** Create and update with such a key respond `403 WRITE_BLOCKED_READONLY_KEY`.

## Typical scenario

1. Find the creator and the responsible person: [`GET /v1/users`](/docs/entities/users/list).
2. Create a template: [`POST /v1/task-templates`](./templates-create.md).
3. Find the template in the list: [`GET /v1/task-templates`](./templates-list.md).
4. Change template fields: [`PATCH /v1/task-templates/:templateId`](./templates-update.md).

## Limits

| Limit | Value |
|-------|----------|
| List pagination | One page per call. For the next one, repeat the request with `start` equal to `meta.next`. Pages are not loaded automatically |
| Request rate | Common API limits — [Limits and optimization](/docs/optimization) |

## See also

- [Tasks](/docs/entities/tasks)
- [Employees](/docs/entities/users)
- [Workgroups](/docs/entities/workgroups)
