Reten Docs
Integração de Tarefas

Listar Atividades

Consulte as atividades do tipo tarefa visíveis para sua integração.

GET /api/integration/activities/tasks

Retorna uma lista paginada de atividades do tipo tarefa visíveis para a chave de API da sua integração, de um projeto ou de todo o tenant (veja Header exigido).

Autenticação: Exigida — permissão activity:view

Header exigido

HeaderValor
x-api-keyYOUR_API_KEY

x-project-id é opcional: este é um endpoint project-optional. Com uma chave de tenant ou um token de usuário, enviar o header restringe a lista a esse projeto; sem ele, a lista abrange todos os projetos do tenant, e cada atividade traz o seu projectId. Uma chave de projeto sempre lista as atividades do seu próprio projeto. Um header enviado é validado — veja Erros de projeto.

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
pagenumberNãoNúmero da página (padrão: 1)
per_pagenumberNãoResultados por página (padrão: 25, máximo: 100)
statusstringNãoFiltrar por status da atividade (ver Activity States). Valores filtráveis: READY, RETRYING, DISPATCHED, COMPLETED, CANCELED, FAILED
result_statusstringNãoFiltrar por status do resultado (ver Activity States). Valores filtráveis: COMPLETED, NOT_EXECUTED
channelstringNãoFiltrar por canal (SALESMAN, CALLCENTER, etc.)
external_commerce_idstringNãoFiltrar por ID externo do comércio
external_operator_idstringNãoFiltrar por ID externo do operador
scheduled_fromstringNãoData mínima de agendamento (ISO 8601)
scheduled_tostringNãoData máxima de agendamento (ISO 8601)

Exemplo

curl -X GET "BASE_URL/api/integration/activities/tasks?page=1&per_page=10&status=READY" \
  -H "x-api-key: YOUR_API_KEY"
const params = new URLSearchParams({
  page: "1",
  per_page: "10",
  status: "READY",
});

const response = await fetch(
  `${BASE_URL}/api/integration/activities/tasks?${params}`,
  {
    headers: {
      "x-api-key": "YOUR_API_KEY",
    },
  }
);

const data = await response.json();
import requests

response = requests.get(
    f"{BASE_URL}/api/integration/activities/tasks",
    headers={
        "x-api-key": "YOUR_API_KEY",
    },
    params={
        "page": 1,
        "per_page": 10,
        "status": "READY",
    },
)

data = response.json()

Resposta 200 OK

O exemplo a seguir é ilustrativo do formato da resposta. Os valores de campos como id, scheduledAt, status, lifecycleStatus, etc., variam de acordo com o estado real de cada atividade. Para o catálogo completo dos possíveis valores de status e lifecycleStatus, veja Activity States.

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "activityOrigin": "ACTIVITY",
      "projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
      "type": "TASK",
      "status": "READY",
      "score": 85,
      "channel": "SALESMAN",
      "scheduledAt": "2026-04-10T18:00:00.000Z",
      "occurredAt": null,
      "createdAt": "2026-04-10T14:30:00.000Z",
      "lifecycleStatus": "READY",
      "lifecycleStatusLabel": "Lista",
      "lifecycleStatusDetail": null,
      "canForceRetryDispatch": false,
      "commerceExternalId": "COM-001",
      "commerceName": "Farmacia Central",
      "reason": {
        "code": "CHURN_RISK",
        "label": "Riesgo de fuga"
      },
      "userStatus": null,
      "commerceAssignment": {
        "commerceExternalId": "COM-001",
        "assignmentReason": "Asignación por ruta",
        "commerce": {
          "externalId": "COM-001",
          "name": "Farmacia Central"
        }
      },
      "activityDetails": {
        "type": "TASK",
        "assignedRouteCode": "RUTA-NORTE-01",
        "assignedOperatorExternalId": "OP-042",
        "assignedRoute": {
          "code": "RUTA-NORTE-01",
          "name": "Ruta Norte"
        },
        "assignedOperator": {
          "externalId": "OP-042",
          "name": "Carlos Pérez",
          "type": "SALESMAN"
        }
      },
      "activityResult": null
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total": 47,
    "total_pages": 5,
    "has_next": true,
    "has_previous": false
  }
}

Exemplo de execução independente (STANDALONE)

Os itens com activityOrigin: "STANDALONE" vêm de um resultado registrado como execução independente, sem uma atividade anterior: scheduledAt repete o occurredAt do resultado, e activityResult vem sempre preenchido. Um activityResult preenchido também aparece nos itens ACTIVITY depois de tratados.

Abaixo é mostrado apenas o item — o envelope pagination ao redor é idêntico ao do exemplo anterior.

{
  "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "activityOrigin": "STANDALONE",
  "projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
  "type": null,
  "reason": null,
  "userStatus": null,
  "status": null,
  "score": null,
  "scheduledAt": "2026-04-12T16:45:00.000Z",
  "occurredAt": "2026-04-12T16:45:00.000Z",
  "createdAt": "2026-04-12T16:47:00.000Z",
  "lifecycleStatus": null,
  "lifecycleStatusLabel": null,
  "lifecycleStatusDetail": null,
  "canForceRetryDispatch": false,
  "channel": "SALESMAN",
  "commerceExternalId": "COM-001",
  "commerceName": "Farmacia Central",
  "commerceAssignment": null,
  "activityResult": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
    "resultStatus": "COMPLETED",
    "source": "STANDALONE",
    "origin": "PLATFORM",
    "channel": "SALESMAN",
    "occurredAt": "2026-04-12T16:45:00.000Z",
    "createdAt": "2026-04-12T16:47:00.000Z",
    "resultDetails": {
      "type": "TASK",
      "result": {
        "code": "RESCHEDULE",
        "label": "Reprogramar visita"
      },
      "comment": null,
      "requiresFutureScheduledAt": true,
      "externalOperatorId": "OP-042",
      "operator": {
        "externalId": "OP-042",
        "name": "Carlos Pérez"
      }
    }
  },
  "activityDetails": {
    "type": "TASK",
    "assignedRouteCode": null,
    "assignedOperatorExternalId": "OP-042",
    "assignedRoute": null,
    "assignedOperator": {
      "externalId": "OP-042",
      "name": "Carlos Pérez",
      "type": "SALESMAN"
    }
  }
}

Campos da atividade

CampoTipoDescrição
idstringIdentificador único da atividade
activityOrigin"ACTIVITY" | "STANDALONE"Origem da atividade
projectIdstringProjeto ao qual a atividade pertence
typestring | nullTipo de atividade (ex.: "TASK")
statusstring | nullStatus atual da atividade — veja Activity States para o catálogo completo
scorenumber | nullPontuação de prioridade da atividade (definida na criação)
channelstring | nullCanal da atividade (SALESMAN, CALLCENTER, etc.)
scheduledAtstring | nullData agendada (ISO 8601)
occurredAtstring | nullData em que a atividade foi tratada (ISO 8601)
createdAtstring | nullData de criação (ISO 8601)
lifecycleStatusstring | nullStatus do ciclo de vida para exibição (somente leitura, calculado) — veja Activity States
lifecycleStatusLabelstring | nullRótulo legível do status do ciclo de vida
lifecycleStatusDetailstring | nullDetalhe adicional do status
canForceRetryDispatchbooleanIndica se é possível forçar um novo despacho
commerceExternalIdstringID externo do comércio associado
commerceNamestringNome do comércio
reasonobject | nullMotivo da atividade (code, label)
userStatusobject | nullStatus personalizado do usuário (code, label)
commerceAssignmentobject | nullInformação de atribuição do comércio
activityDetailsobject | nullDetalhes específicos do tipo de atividade
activityResultobject | nullResultado da atividade (se existir)

Campos de activityDetails (tipo TASK)

CampoTipoDescrição
type"TASK"Discriminador de tipo
assignedRouteCodestring | nullCódigo da rota atribuída
assignedOperatorExternalIdstring | nullID externo do operador atribuído
assignedRouteobject | nullRota atribuída (code, name)
assignedOperatorobject | nullOperador atribuído (externalId, name, type)

Campos de activityResult

CampoTipoDescrição
idstringIdentificador do resultado
resultStatusstringStatus do resultado — veja Activity States §resultStatus
sourcestringOrigem do resultado
originstringCanal de origem
channelstring | nullCanal do resultado
occurredAtstringData em que ocorreu (ISO 8601)
createdAtstringData de criação (ISO 8601)
resultDetailsobject | nullDetalhes do resultado de tarefa

Campos de resultDetails (tipo TASK)

CampoTipoDescrição
type"TASK"Discriminador de tipo
resultobjectTipo de resultado enviado (code, label)
commentstring | nullComentário enviado junto com o resultado
requiresFutureScheduledAtbooleanIndica se o tipo de resultado enviado exige uma data future_scheduled_at
externalOperatorIdstring | nullID externo do operador que enviou o resultado
operatorobject | nullOperador que enviou o resultado (externalId, name)

Erros

StatusDescrição
401Chave de API ausente ou inválida
403A chave não tem a permissão activity:view
400 / 403 / 404O x-project-id enviado não é válido — veja Erros de projeto