Recupere e monitore feeds de atividade de projetos usando a API Blue.


Recuperar Atividade do Projeto

A consulta activityList fornece acesso a um feed de atividade abrangente para projetos e empresas. As atividades são geradas automaticamente quando os usuários realizam ações como criar tarefas, comentários ou fazer alterações no projeto.

Exemplo Básico

query ProjectActivity {
  activityList(
    projectId: "your-project-id"
    first: 20
    orderBy: createdAt_DESC
  ) {
    activities {
      id
      category
      html
      createdAt
      createdBy {
        id
        name
        email
      }
      project {
        id
        name
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
    totalCount
  }
}

Exemplo Avançado com Filtragem

query FilteredActivity {
  activityList(
    companyId: "your-company-id"
    categories: [CREATE_TODO, MARK_TODO_AS_COMPLETE, CREATE_COMMENT]
    userIds: ["user1-id", "user2-id"]
    startDate: "2024-01-01T00:00:00Z"
    endDate: "2024-12-31T23:59:59Z"
    first: 50
    orderBy: createdAt_DESC
  ) {
    activities {
      id
      uid
      category
      html
      createdAt
      updatedAt
      createdBy {
        id
        name
        email
      }
      affectedBy {
        id
        name
      }
      todo {
        id
        title
      }
      comment {
        id
        text
      }
      project {
        id
        name
        slug
      }
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    totalCount
  }
}

Parâmetros de Entrada

Consulta activityList

Parâmetro Tipo Obrigatório Descrição
companyId String Não Filtrar atividades por ID ou slug da empresa
projectId String Não Filtrar atividades por ID ou slug do projeto
userId String Não Filtrar atividades por um usuário específico
userIds [String!] Não Filtrar atividades por múltiplos usuários
tagIds [String!] Não Filtrar atividades por tags de tarefas
categories [ActivityCategory!] Não Filtrar por tipos de atividades específicas
startDate DateTime Não Filtrar atividades a partir desta data
endDate DateTime Não Filtrar atividades até esta data
skip Int Não Pular este número de registros (paginação de offset)
first Int Não Retornar os primeiros N registros (paginação de cursor)
last Int Não Retornar os últimos N registros (paginação de cursor)
after String Não Retornar registros após este cursor
before String Não Retornar registros antes deste cursor
orderBy ActivityOrderByInput Não Ordem de classificação para resultados

Valores de ActivityCategory

O sistema rastreia automaticamente vários tipos de atividades:

Categoria Descrição
CREATE_TODO Uma nova tarefa foi criada
MARK_TODO_AS_COMPLETE Uma tarefa foi marcada como completa
CREATE_COMMENT Um comentário foi adicionado
CREATE_DISCUSSION Uma discussão foi iniciada
CREATE_STATUS_UPDATE Uma atualização de status foi postada
CREATE_TODO_LIST Uma nova lista de tarefas foi criada
MOVE_TODO Uma tarefa foi movida entre listas
COPY_TODO Uma tarefa foi copiada
ADD_USER_TO_PROJECT Um usuário foi adicionado ao projeto
REMOVE_USER_FROM_PROJECT Um usuário foi removido do projeto
ARCHIVE_PROJECT O projeto foi arquivado
UNARCHIVE_PROJECT O projeto foi desarquivado
CREATE_INVITATION Um usuário foi convidado
ACCEPT_INVITATION Um convite foi aceito
CREATE_CUSTOM_FIELD Um campo personalizado foi criado
RECEIVE_FORM Uma submissão de formulário foi recebida

Valores de ActivityOrderByInput

Valor Descrição
createdAt_DESC Mais recente primeiro (padrão)
createdAt_ASC Mais antigo primeiro
updatedAt_DESC Mais recentemente atualizado primeiro
updatedAt_ASC Menos recentemente atualizado primeiro
category_ASC Alfabético por categoria
category_DESC Alfabético reverso por categoria

Campos de Resposta

Tipo de Atividade

Campo Tipo Descrição
id ID! Identificador único para a atividade
uid String! Identificador único alternativo
category ActivityCategory! Tipo de atividade que ocorreu
html String! Descrição rica em HTML da atividade
createdAt DateTime! Quando a atividade ocorreu
updatedAt DateTime! Quando a atividade foi atualizada pela última vez
createdBy User! Usuário que realizou a ação
affectedBy User Usuário que foi afetado pela ação
company Company Empresa associada
project Project Projeto associado
todo Todo Tarefa associada (se aplicável)
todoList TodoList Lista de tarefas associada (se aplicável)
comment Comment Comentário associado (se aplicável)
discussion Discussion Discussão associada (se aplicável)
statusUpdate StatusUpdate Atualização de status associada (se aplicável)
metadata String Metadados adicionais da atividade

Resposta ActivityList

Campo Tipo Descrição
activities [Activity!]! Array de registros de atividade
pageInfo PageInfo! Informações de paginação
totalCount Int! Número total de atividades que correspondem aos filtros

Atualizações de Atividade em Tempo Real

Inscreva-se para mudanças de atividade usando a assinatura subscribeToActivity:

subscription ActivityUpdates($companyId: String!, $projectId: String) {
  subscribeToActivity(companyId: $companyId, projectId: $projectId) {
    mutation
    node {
      id
      category
      html
      createdAt
      createdBy {
        id
        name
        email
      }
      project {
        id
        name
      }
    }
  }
}

Parâmetros de Assinatura

Parâmetro Tipo Obrigatório Descrição
companyId String Não Inscrever-se em atividades de toda a empresa
projectId String Não Inscrever-se em atividades de projetos específicos

A assinatura notificará você sobre:

  • ACTIVITY_CREATED - Novas atividades
  • ACTIVITY_UPDATED - Atividades modificadas
  • ACTIVITY_DELETED - Atividades removidas

Filtragem e Privacidade

Filtragem Automática

O feed de atividade filtra automaticamente os resultados com base em:

  • Configurações do Projeto: Mostra apenas atividades de projetos com rastreamento de atividade habilitado
  • Permissões do Usuário: Diferentes funções de usuário veem diferentes tipos de atividades
  • Membresia do Projeto: Usuários só veem atividades de projetos aos quais têm acesso
  • Membresia da Empresa: As atividades são limitadas às empresas do usuário

Considerações de Privacidade

  • Usuários com função CLIENTE têm visibilidade limitada sobre certas atividades administrativas
  • As atividades respeitam as configurações de privacidade em nível de projeto
  • Operações sensíveis podem não gerar atividades públicas

Respostas de Erro

Projeto/Empresa Inválido

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "NOT_FOUND"
    }
  }]
}

Permissão Negada

{
  "errors": [{
    "message": "You do not have permission to view activities for this project",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Intervalo de Data Inválido

{
  "errors": [{
    "message": "Start date must be before end date",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

Melhores Práticas

  1. Use Paginação: Os feeds de atividade podem ser grandes, sempre use o parâmetro first
  2. Filtrar por Projeto: Feeds de atividades de toda a empresa podem ser esmagadores
  3. Atualizações em Tempo Real: Use assinaturas para feeds de atividades ao vivo
  4. Filtragem por Data: Use intervalos de datas para análise de atividades históricas
  5. Filtragem por Categoria: Filtrar por tipos de atividades específicas para feeds focados
  6. Filtragem por Usuário: Rastreie as atividades de membros específicos da equipe usando userIds

Notas Importantes

  • As atividades são geradas automaticamente e não podem ser criadas manualmente via API
  • O texto da atividade usa formatação HTML para exibição rica
  • O campo text está obsoleto em favor de html
  • As atividades são armazenadas permanentemente e fornecem um registro de auditoria completo
  • Assinaturas em tempo real requerem autenticação de conexão WebSocket

Assistente de IA

As respostas são geradas usando IA e podem conter erros.

Como posso ajudá-lo?

Pergunte-me qualquer coisa sobre o Blue ou esta documentação.

Digite para enviar • Shift+Enter para nova linha • ⌘I para abrir