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

# Criar uma tarefa a partir do CRM

Quando um lead muda de etapa, crie uma tarefa de follow-up com POST /v1/tasks, monte o checklist e deixe um comentário com o contexto.

## Autentique com o token

> Linhas destacadas: 1-5

Todas as chamadas vão para `https://api.azzimuti.com.br/v1` com o token de API no header `Authorization: Bearer`. A tarefa é aberta em nome do dono do token (o solicitante); use um usuário de integração se quiser que ela apareça como aberta pelo CRM. Veja [Autenticação](/docs/autenticacao).

## Crie a tarefa

> Linhas destacadas: 7-20

`title`, `type` e `userExecutorId` são obrigatórios. O `departmentId` e o `userExecutorId` saem de [Listar espaços](/reference/listar-todos-os-espacos-que-seu-usuario-esta-com-seus-membros): o executor precisa ser membro do espaço. A `description` aceita HTML. Guarde o `id` da resposta junto do lead, para não criar a mesma tarefa duas vezes se o lead voltar de etapa.

## Monte o checklist

> Linhas destacadas: 22-29

Cada item é um `POST /v1/tasks/{id}/checklist` com a `description`. Depois, o executor marca os itens no Wiboor, ou o seu sistema marca com [Marcar um item do checklist](/reference/marcar-um-item-do-checklist-de-uma-tarefa).

## Comente com o contexto

> Linhas destacadas: 31-37

O comentário aparece no histórico da tarefa para o executor. Use-o para o link do lead e para o que mudou desde a última etapa. O `taskNumber` é o número que as pessoas veem no Wiboor.

## 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. Crie a tarefa de follow-up para o vendedor
const taskRes = await fetch(`${BASE_URL}/tasks`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    title: 'Follow-up: ACME Ltda. entrou em Proposta',
    type: 'TASK',
    priority: 7,
    departmentId: '0197a1c2-3d4e-7f50-8a61-b2c3d4e5f607', // espaço Comercial
    userExecutorId: '0197a1c2-9b8a-7c6d-8e5f-40312a1b2c3d', // vendedor do lead
    description: '<p>Lead mudou para <strong>Proposta</strong> no CRM.</p>',
  }),
});
const task = await taskRes.json();

// 2. Monte o checklist, um item por chamada
for (const description of ['Enviar proposta', 'Agendar reunião', 'Registrar retorno no CRM']) {
  await fetch(`${BASE_URL}/tasks/${task.id}/checklist`, {
    method: 'POST',
    headers,
    body: JSON.stringify({ description }),
  });
}

// 3. Comente com o link do lead
await fetch(`${BASE_URL}/tasks/${task.id}/comments`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ message: 'Lead no CRM: https://crm.exemplo.com.br/leads/4821' }),
});
console.log(`Tarefa #${task.taskNumber} criada`);
```

## Resposta

```json
{
  "id": "0197b3f0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
  "taskNumber": 85731,
  "title": "Follow-up: ACME Ltda. entrou em Proposta",
  "type": "TASK",
  "status": "NOT_STARTED",
  "priority": 7,
  "departmentId": "0197a1c2-3d4e-7f50-8a61-b2c3d4e5f607",
  "userExecutorId": "0197a1c2-9b8a-7c6d-8e5f-40312a1b2c3d",
  "userRequesterId": "0197a1c2-0f1e-7d2c-9b3a-485960718293",
  "spentedTime": 0,
  "createdAt": "2026-11-03T14:02:11.000Z"
}
```
