---
agentTools:
  projectIndex: https://docs.wiboor.com.br/llms.txt
  projectSearch: https://docs.wiboor.com.br/agentSearch?query=term1%20term2
---

# Criar uma tarefa a partir de um template

Encontre o template com GET /v1/templates, pegue o rascunho com o prazo já calculado e crie a tarefa enviando o templateId.

## Encontre o template

> Linhas destacadas: 7-10

[Listar templates](/reference/listar-os-templates-que-voce-ve) devolve os templates que você vê, paginados em `data`. Filtre por `kind=TASK` (ou `PROJECT`), por `search` no título e por `departmentId`.

## Pegue o rascunho

> Linhas destacadas: 12-14

[Buscar um template](/reference/buscar-um-template-por-id-com-o-rascunho-para-aplica-lo) traz o `draft`: para template de tarefa, `{ task: {...} }`, com título, descrição, prioridade, checklist e o `endedAt` já calculado pelo prazo sugerido do template.

## Crie a tarefa

> Linhas destacadas: 16-26

Envie o conteúdo de `draft.task` (não o envelope `draft`), e complete o `userExecutorId` se ele vier nulo: é obrigatório. Mande também o `templateId`, que registra a origem da tarefa e conta nas métricas do template. Campos que o rascunho traz mas a criação ignora: `openReview`, `attachments` e, no checklist, `assigneeId` e os subitens.

Para template de projeto, o rascunho vem como `{ project: { ..., tasks: [...] } }`: crie antes cada item de `project.tasks` com `POST /v1/tasks` e siga a recipe [Criar um projeto com tarefas](/recipes/criar-um-projeto-com-tarefas).

## Código

```js Node.js
const BASE_URL = 'https://api.azzimuti.com.br/v1';
const headers = {
  Authorization: `Bearer ${process.env.WIBOOR_TOKEN}`,
  'Content-Type': 'application/json',
};

// 1. Encontre o template de tarefa pelo título
const listRes = await fetch(`${BASE_URL}/templates?kind=TASK&search=Fechamento%20mensal`, { headers });
const { data: templates } = await listRes.json();
const templateId = templates[0].id;

// 2. Pegue o rascunho, com o prazo calculado a partir de agora
const detailRes = await fetch(`${BASE_URL}/templates/${templateId}`, { headers });
const { draft } = await detailRes.json();

// 3. Crie a tarefa com o conteúdo de draft.task e o templateId
const taskRes = await fetch(`${BASE_URL}/tasks`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    ...draft.task,
    userExecutorId: draft.task.userExecutorId ?? '0197a1c2-9b8a-7c6d-8e5f-40312a1b2c3d',
    templateId,
  }),
});
const task = await taskRes.json();
```

## Resposta

```json
{
  "id": "0197b5c2-3d4e-7f5a-8b6c-7d8e9f0a1b2c",
  "taskNumber": 85740,
  "title": "Fechamento mensal — novembro",
  "type": "TASK",
  "status": "NOT_STARTED",
  "priority": 6,
  "endedAt": "2026-11-08T21:00:00.000Z",
  "userExecutorId": "0197a1c2-9b8a-7c6d-8e5f-40312a1b2c3d"
}
```
