Atividades e tarefas
Base path: /api/v1/activities
Scopes: activities:read | activities:write
Atividades são qualquer interação registrada na timeline de um contato, empresa ou deal:
- Tipos:
task,call,email,meeting,note,whatsapp,linkedin,custom - Estado: completed ou pendente (com
dueDateopcional) - Vinculadas a contatos, empresas e/ou deals (M:N — uma atividade pode ter múltiplas associações)
Lista atividades de um recurso
GET /api/v1/activities?relatedType=contact&relatedId=:idScope: activities:read
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
relatedType | contact | company | deal | ✅ | Tipo do recurso |
relatedId | string | ✅ | ID do recurso |
Retorna todas as atividades vinculadas, ordenadas por createdAt desc. Não tem paginação aqui — a timeline costuma ser pequena por contato. Se você precisar de listagem ampla por tenant, use o endpoint de tarefas (próxima seção).
curl "https://app.indutivacrm.com.br/api/v1/activities?relatedType=contact&relatedId=ckl4z9w8v0001abcdef123456" \ -H "X-API-Key: crm_live_..."Cria uma atividade
POST /api/v1/activitiesScope: activities:write
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | task | call | email | meeting | note | whatsapp | linkedin | custom | ✅ | Tipo |
title | string | ✅ | Título curto |
description | string | — | Detalhes (HTML/markdown suportado em notas) |
dueDate | string (ISO) | — | Quando é devida (pra tasks) |
completed | boolean | — | Default false |
completedAt | string (ISO) | — | Quando foi completada |
priority | low | medium | high | — | Pra tasks |
assignedToId | string | — | User responsável |
ownerId | string | — | Owner (default = createdBy) |
contactIds | string[] | — | Contatos vinculados |
companyIds | string[] | — | Empresas vinculadas |
dealIds | string[] | — | Deals vinculados |
Exemplo — registrando uma ligação:
curl -X POST https://app.indutivacrm.com.br/api/v1/activities \ -H "X-API-Key: crm_live_..." \ -H "Content-Type: application/json" \ -d '{ "type": "call", "title": "Apresentação inicial", "description": "Cliente interessado, agendar follow-up em 1 semana", "completed": true, "completedAt": "2026-05-22T15:30:00Z", "contactIds": ["ckl4z9w8v0001abcdef123456"], "dealIds": ["ckl4d01..."] }'Exemplo — criando uma task pra um vendedor:
curl -X POST https://app.indutivacrm.com.br/api/v1/activities \ -H "X-API-Key: crm_live_..." \ -H "Content-Type: application/json" \ -d '{ "type": "task", "title": "Enviar proposta atualizada", "dueDate": "2026-05-25T18:00:00Z", "priority": "high", "assignedToId": "ckl4u01...", "dealIds": ["ckl4d01..."] }'Atualiza uma atividade
PATCH /api/v1/activities/:idScope: activities:write
Atualização parcial. Útil pra marcar como completa:
curl -X PATCH https://app.indutivacrm.com.br/api/v1/activities/ckl4a01... \ -H "X-API-Key: crm_live_..." \ -H "Content-Type: application/json" \ -d '{"completed": true, "completedAt": "2026-05-22T18:00:00Z"}'Deleta uma atividade
DELETE /api/v1/activities/:idScope: activities:write
Hard-delete (atividades não têm soft-delete — não há ciclo de auditoria nesse nível).
Resposta 204 No Content.
Bulk: completar várias tarefas
POST /api/v1/activities/bulk/completeScope: activities:write
{ "ids": ["ckl4a01...", "ckl4a02...", "ckl4a03..."], "completed": true}Retorna { updated: <count> }. Use isso pra fechar múltiplas tasks de uma vez sem hitar rate limit (1 chamada em vez de N).
Bulk: atribuir tarefas
POST /api/v1/activities/bulk/assignScope: activities:write
{ "ids": ["ckl4a01...", "ckl4a02..."], "assignedToId": "ckl4u01..."}Passe assignedToId: null pra desatribuir.
Erros específicos
| Status | error | Cenário |
|---|---|---|
| 400 | validation_failed | type inválido ou title ausente |
| 400 | invalid_format | dueDate ou completedAt fora do ISO 8601 |
| 404 | not_found | Algum dos contactIds/companyIds/dealIds não existe |