Atividades

Gerencie tarefas e atividades dentro do pipeline de vendas. Agende ligações, reuniões, emails e acompanhamentos com suporte a templates e sequências automatizadas.

Base URL

As rotas desta página usam o prefixo /api/v1/accounts/{account_id}/pipeline. Cada bloco abaixo mostra o caminho completo do recurso.

Listar Atividades

GET/api/v1/accounts/{account_id}/pipeline/activities

Lista atividades com filtros.

Parâmetros

NomeTipoObrigatorioDescricao
pipeline_card_id(query)integerNaoFiltrar por card do pipeline
type(query)stringNaocall, email, meeting, task, note, demo, follow_up (filtra activity_type)
status(query)stringNaoStatus: pending, in_progress, completed, cancelled
priority(query)stringNaoFiltrar por prioridade
assigned_to_id(query)integerNaoFiltrar por responsável
overdue(query)booleanNaotrue para apenas atividades atrasadas
upcoming(query)booleanNaotrue para apenas atividades futuras
page(query)integerNaoPágina (padrão 1)
per_page(query)integerNaoItens por página (padrão 25)
bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/pipeline/activities?status=pending" \
  -H "api_access_token: YOUR_TOKEN" | jq .
200Lista de atividades (chave activities)
json
{
  "activities": [
    {
      "id": 1,
      "pipeline_card_id": 5,
      "activity_type": "call",
      "status": "pending",
      "priority": "medium",
      "title": "Ligação de follow-up",
      "description": "Confirmar interesse na proposta",
      "scheduled_at": "2026-02-20T14:00:00Z",
      "due_at": null,
      "duration": 30,
      "is_overdue": false,
      "created_by": { "id": 3, "name": "Maria Santos" },
      "assigned_to": { "id": 3, "name": "Maria Santos" },
      "created_at": "2026-02-15T10:00:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 15,
    "per_page": 25
  }
}
POST/api/v1/accounts/{account_id}/pipeline/activities

Cria uma nova atividade.

Parâmetro obrigatório na URL

O pipeline_card_id deve ser passado como query param na URL, não no corpo da requisição. Todos os campos do corpo devem estar dentro do wrapper activity.

Query Params

NomeTipoObrigatorioDescricao
pipeline_card_id(query)integerSimID do card do pipeline ao qual a atividade pertence

Body (dentro de activity)

NomeTipoObrigatorioDescricao
titlestringSimTítulo da atividade
activity_typestringSimcall, email, meeting, task, note, demo, follow_up
scheduled_atstringNaoData/hora agendada (ISO 8601)
durationintegerNaoDuração em minutos
descriptionstringNaoDescrição detalhada
assigned_to_idintegerNaoID do agente responsável
contact_idintegerNaoID do contato associado
bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/activities?pipeline_card_id=5" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "activity": {
      "activity_type": "meeting",
      "title": "Reuniao de apresentacao",
      "scheduled_at": "2026-02-20T14:00:00Z",
      "duration": 60
    }
  }'

Nota

Para GET, PATCH e DELETE em uma atividade específica, inclua ?pipeline_card_id=XXX na URL.

GET/api/v1/accounts/{account_id}/pipeline/activities/{id}?pipeline_card_id={card_id}

Retorna detalhes de uma atividade.

PATCH/api/v1/accounts/{account_id}/pipeline/activities/{id}?pipeline_card_id={card_id}

Atualiza uma atividade. Wrap fields inside activity object.

DELETE/api/v1/accounts/{account_id}/pipeline/activities/{id}?pipeline_card_id={card_id}

Remove uma atividade.

Ações da Atividade

POST/api/v1/accounts/{account_id}/pipeline/activities/{id}/start?pipeline_card_id={card_id}

Inicia uma atividade agendada.

POST/api/v1/accounts/{account_id}/pipeline/activities/{id}/complete?pipeline_card_id={card_id}

Marca a atividade como concluída.

POST/api/v1/accounts/{account_id}/pipeline/activities/{id}/cancel?pipeline_card_id={card_id}

Cancela a atividade.

POST/api/v1/accounts/{account_id}/pipeline/activities/{id}/reschedule?pipeline_card_id={card_id}

Reagenda a atividade.

Body

NomeTipoObrigatorioDescricao
scheduled_atstringSimNova data/hora (ISO 8601)
GET/api/v1/accounts/{account_id}/pipeline/activities/analytics

Métricas de atividades (conclusão, atrasos, por tipo).

200Analytics de atividades (objeto top-level, sem envelope data)
json
{
  "total": 150,
  "by_type": { "call": 45, "meeting": 30, "email": 50, "task": 25 },
  "by_status": { "pending": 40, "in_progress": 12, "completed": 98, "cancelled": 0 },
  "by_priority": { "low": 10, "medium": 100, "high": 40 },
  "completion_rate": 65.3,
  "overdue_count": 12,
  "upcoming_count": 20,
  "average_duration": 18,
  "by_outcome": { "successful": 80, "no_answer": 18 }
}

Operações em Lote

POST/api/v1/accounts/{account_id}/pipeline/activities/bulk_create

Cria a mesma atividade em múltiplos cards de uma vez (max 100 cards).

Query + Body

NomeTipoObrigatorioDescricao
pipeline_card_idintegerSimQuery param obrigatório. Mesmo usando pipeline_card_ids no body, é preciso passar um pipeline_card_id na query — sem ele a rota retorna 404.
pipeline_card_idsarraySimBody: IDs dos cards onde a atividade será criada (max 100, escopados à conta). Mais que 100 retorna 400.
activityobjectSimBody: objeto com os campos da atividade (activity_type, title, scheduled_at, etc.) — os mesmos de Criar Atividade.
bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/activities/bulk_create?pipeline_card_id=5" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "pipeline_card_ids": [5, 9, 12],
    "activity": { "activity_type": "call", "title": "Ligacao de prospeccao" }
  }'
POST/api/v1/accounts/{account_id}/pipeline/activities/create_from_template?pipeline_card_id={card_id}

Cria uma atividade a partir de um template, vinculada ao card informado na query.

Query Params

NomeTipoObrigatorioDescricao
pipeline_card_id(query)integerSimID do card ao qual a atividade será vinculada

Body

NomeTipoObrigatorioDescricao
template_idintegerSimID do template de atividade
activityobjectNaoCampos da atividade que sobrescrevem os defaults do template

Sequências de Atividades

Uma definição descreve o gatilho e os passos reutilizáveis. Criar, atualizar, ativar ou desativar uma definição que contenha um passo de webhook exige um administrador da conta. Agentes podem gerenciar definições sem webhook.

GET/api/v1/accounts/{account_id}/pipeline/activity_sequences

Lista definições de sequências da conta.

Query Params

NomeTipoObrigatorioDescricao
active(query)booleanNaoFiltra por definições ativas (true) ou inativas (false)
trigger_type(query)stringNaomanual, stage_change, time_based ou condition_based
page(query)integerNaoPágina da listagem
per_page(query)integerNaoItens por página
POST/api/v1/accounts/{account_id}/pipeline/activity_sequences

Cria uma nova definição de sequência.

Body (pipeline_activity_sequence)

NomeTipoObrigatorioDescricao
namestringSimNome único da sequência na conta (máximo 255 caracteres)
descriptionstringNaoDescrição
trigger_typestringNaomanual (padrão), stage_change, time_based ou condition_based
trigger_conditionsobjectNaoCondições compatíveis com trigger_type; use os formatos validados abaixo
activebooleanNaoCria a definição ativa; padrão true
stepsarraySimLista não vazia de objetos. Cada passo exige activity_type e title; atrasos usam delay_days/delay_hours

Contratos de trigger_conditions

  • manual: objeto vazio {}.
  • stage_change: { "funnel_id": 9, "from_stage_id": "lead", "to_stage_id": "qualified" }. to_stage_id é obrigatório; os demais são opcionais.
  • time_based: exatamente uma cadência, { "every_n_days": 7 } (1 a 365) ou { "cron_expression": "0 9 * * 1" }.
  • condition_based: { "field": "lead_score", "operator": ">=", "value": 80 }.

O cron aceita exatamente cinco campos numéricos: minuto (0-59), hora (0-23), dia do mês (1-31), mês (1-12) e dia da semana (0-7). São aceitos *, */n, listas e intervalos crescentes; nomes e um campo de segundos retornam 422.

Campos dos passos

Tipos aceitos: call, email, meeting,task, note, demo, follow_up,delay, webhook, whatsapp_message ewhatsapp_media. Além de activity_type etitle, os campos gerais incluem step_number,description, delay_days, delay_hours,duration, priority, assign_to,schedule_hours, due_days e on_failure.

bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/activity_sequences" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "pipeline_activity_sequence": {
      "name": "Cadencia de Vendas",
      "trigger_type": "time_based",
      "trigger_conditions": { "cron_expression": "0 9 * * 1-5" },
      "steps": [
        { "step_number": 1, "activity_type": "call", "title": "Ligacao inicial", "delay_days": 0, "duration": 15 },
        { "step_number": 2, "activity_type": "email", "title": "Email de follow-up", "delay_days": 2, "duration": 5 }
      ]
    }
  }'
201Definição criada
json
{
  "data": {
    "id": 3,
    "name": "Cadência de Vendas",
    "trigger_type": "time_based",
    "trigger_conditions": { "cron_expression": "0 9 * * 1-5" },
    "active": true,
    "step_count": 2,
    "steps": [
      { "step_number": 1, "activity_type": "call", "title": "Ligação inicial", "delay_days": 0, "duration": 15 }
    ]
  },
  "message": "Activity sequence created successfully"
}
GET/api/v1/accounts/{account_id}/pipeline/activity_sequences/{id}

Retorna a definição e os totais de execuções.

PATCH/api/v1/accounts/{account_id}/pipeline/activity_sequences/{id}

Atualiza parcialmente a definição usando o wrapper pipeline_activity_sequence.

Execuções ativas e webhooks

Substituir steps retorna 422 enquanto houver execuções ativas. Se a definição atual ou a nova lista de passos contiver webhook, qualquer atualização exige administrador.

POST/api/v1/accounts/{account_id}/pipeline/activity_sequences/{id}/activate

Ativa a definição. Definições com webhook exigem administrador.

POST/api/v1/accounts/{account_id}/pipeline/activity_sequences/{id}/deactivate

Desativa a definição e pausa suas execuções ativas. Definições com webhook exigem administrador.

DELETE/api/v1/accounts/{account_id}/pipeline/activity_sequences/{id}

Remove uma definição sem execuções ativas. Requer administrador.

Templates de Atividade

GET/api/v1/accounts/{account_id}/pipeline/activity_templates

Lista templates de atividade.

POST/api/v1/accounts/{account_id}/pipeline/activity_templates

Cria um novo template.

Body (pipeline_activity_template)

NomeTipoObrigatorioDescricao
namestringSimNome do template
activity_typestringSimcall, email, meeting, task, note, demo, follow_up
categorystringNaoCategoria do template
default_contentstringNaoConteúdo padrão da atividade (não existe campo "title" no template)
descriptionstringNaoDescrição padrão
default_durationintegerNaoDuração padrão em minutos

Formato de resposta

A resposta é retornada dentro de um objeto data: {"data": {"id": 1, ...}}

DELETE/api/v1/accounts/{account_id}/pipeline/activity_templates/{id}

Remove um template.