Pular para o conteúdo

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 dueDate opcional)
  • 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=:id

Scope: activities:read

ParamTipoObrigatórioDescrição
relatedTypecontact | company | dealTipo do recurso
relatedIdstringID 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).

Terminal window
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/activities

Scope: activities:write

CampoTipoObrigatórioDescrição
typetask | call | email | meeting | note | whatsapp | linkedin | customTipo
titlestringTítulo curto
descriptionstringDetalhes (HTML/markdown suportado em notas)
dueDatestring (ISO)Quando é devida (pra tasks)
completedbooleanDefault false
completedAtstring (ISO)Quando foi completada
prioritylow | medium | highPra tasks
assignedToIdstringUser responsável
ownerIdstringOwner (default = createdBy)
contactIdsstring[]Contatos vinculados
companyIdsstring[]Empresas vinculadas
dealIdsstring[]Deals vinculados

Exemplo — registrando uma ligação:

Terminal window
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:

Terminal window
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/:id

Scope: activities:write

Atualização parcial. Útil pra marcar como completa:

Terminal window
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/:id

Scope: 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/complete

Scope: 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/assign

Scope: activities:write

{
"ids": ["ckl4a01...", "ckl4a02..."],
"assignedToId": "ckl4u01..."
}

Passe assignedToId: null pra desatribuir.

Erros específicos

StatuserrorCenário
400validation_failedtype inválido ou title ausente
400invalid_formatdueDate ou completedAt fora do ISO 8601
404not_foundAlgum dos contactIds/companyIds/dealIds não existe