Recupera e monitora i feed di attività del progetto utilizzando l'API di Blue.
Recupera Attività del Progetto
La query activityList
fornisce accesso a un feed di attività completo per progetti e aziende. Le attività vengono generate automaticamente quando gli utenti eseguono azioni come la creazione di todo, commenti o modifiche al progetto.
Esempio Base
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
}
}
Esempio Avanzato con Filtraggio
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
}
}
Parametri di Input
Query activityList
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
companyId |
String | No | Filtra le attività per ID azienda o slug |
projectId |
String | No | Filtra le attività per ID progetto o slug |
userId |
String | No | Filtra le attività per un utente specifico |
userIds |
[String!] | No | Filtra le attività per più utenti |
tagIds |
[String!] | No | Filtra le attività per tag todo |
categories |
[ActivityCategory!] | No | Filtra per tipi di attività specifici |
startDate |
DateTime | No | Filtra le attività da questa data |
endDate |
DateTime | No | Filtra le attività fino a questa data |
skip |
Int | No | Salta questo numero di record (paginazione offset) |
first |
Int | No | Restituisci i primi N record (paginazione a cursore) |
last |
Int | No | Restituisci gli ultimi N record (paginazione a cursore) |
after |
String | No | Restituisci i record dopo questo cursore |
before |
String | No | Restituisci i record prima di questo cursore |
orderBy |
ActivityOrderByInput | No | Ordine di sort per i risultati |
Valori ActivityCategory
Il sistema tiene traccia di vari tipi di attività automaticamente:
Categoria | Descrizione |
---|---|
CREATE_TODO |
È stato creato un nuovo todo/task |
MARK_TODO_AS_COMPLETE |
Un todo è stato contrassegnato come completato |
CREATE_COMMENT |
È stato aggiunto un commento |
CREATE_DISCUSSION |
È stata avviata una discussione |
CREATE_STATUS_UPDATE |
È stato pubblicato un aggiornamento di stato |
CREATE_TODO_LIST |
È stata creata una nuova lista di todo |
MOVE_TODO |
Un todo è stato spostato tra le liste |
COPY_TODO |
Un todo è stato copiato |
ADD_USER_TO_PROJECT |
Un utente è stato aggiunto al progetto |
REMOVE_USER_FROM_PROJECT |
Un utente è stato rimosso dal progetto |
ARCHIVE_PROJECT |
Il progetto è stato archiviato |
UNARCHIVE_PROJECT |
Il progetto è stato dearchiviato |
CREATE_INVITATION |
Un utente è stato invitato |
ACCEPT_INVITATION |
Un invito è stato accettato |
CREATE_CUSTOM_FIELD |
È stato creato un campo personalizzato |
RECEIVE_FORM |
È stata ricevuta una sottomissione di modulo |
Valori ActivityOrderByInput
Valore | Descrizione |
---|---|
createdAt_DESC |
Più recente per primo (predefinito) |
createdAt_ASC |
Più vecchio per primo |
updatedAt_DESC |
Più recentemente aggiornato per primo |
updatedAt_ASC |
Meno recentemente aggiornato per primo |
category_ASC |
Alfabetico per categoria |
category_DESC |
Alfabetico inverso per categoria |
Campi di Risposta
Tipo di Attività
Campo | Tipo | Descrizione |
---|---|---|
id |
ID! | Identificatore unico per l'attività |
uid |
String! | Identificatore unico alternativo |
category |
ActivityCategory! | Tipo di attività che si è verificata |
html |
String! | Descrizione HTML ricca dell'attività |
createdAt |
DateTime! | Quando si è verificata l'attività |
updatedAt |
DateTime! | Quando l'attività è stata aggiornata per l'ultima volta |
createdBy |
User! | Utente che ha eseguito l'azione |
affectedBy |
User | Utente che è stato influenzato dall'azione |
company |
Company | Azienda associata |
project |
Project | Progetto associato |
todo |
Todo | Todo associato (se applicabile) |
todoList |
TodoList | Lista di todo associata (se applicabile) |
comment |
Comment | Commento associato (se applicabile) |
discussion |
Discussion | Discussione associata (se applicabile) |
statusUpdate |
StatusUpdate | Aggiornamento di stato associato (se applicabile) |
metadata |
String | Metadati aggiuntivi dell'attività |
Risposta ActivityList
Campo | Tipo | Descrizione |
---|---|---|
activities |
[Activity!]! | Array di record di attività |
pageInfo |
PageInfo! | Informazioni sulla paginazione |
totalCount |
Int! | Numero totale di attività che corrispondono ai filtri |
Aggiornamenti di Attività in Tempo Reale
Iscriviti ai cambiamenti di attività utilizzando l'iscrizione 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
}
}
}
}
Parametri di Iscrizione
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
companyId |
String | No | Iscriviti ad attività aziendali |
projectId |
String | No | Iscriviti a specifiche attività di progetto |
L'iscrizione ti notificherà di:
ACTIVITY_CREATED
- Nuove attivitàACTIVITY_UPDATED
- Attività modificateACTIVITY_DELETED
- Attività rimosse
Filtraggio e Privacy
Filtraggio Automatico
Il feed di attività filtra automaticamente i risultati in base a:
- Impostazioni del Progetto: Mostra solo attività da progetti con tracciamento delle attività abilitato
- Permessi Utente: Diversi ruoli utente vedono diversi tipi di attività
- Appartenenza al Progetto: Gli utenti vedono solo attività dai progetti a cui hanno accesso
- Appartenenza all'Azienda: Le attività sono limitate alle aziende dell'utente
Considerazioni sulla Privacy
- Gli utenti con ruolo CLIENT hanno una visibilità limitata su alcune attività amministrative
- Le attività rispettano le impostazioni di privacy a livello di progetto
- Operazioni sensibili potrebbero non generare attività pubbliche
Risposte di Errore
Progetto/Azienda Non Valido
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Permesso Negato
{
"errors": [{
"message": "You do not have permission to view activities for this project",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Intervallo di Date Non Valido
{
"errors": [{
"message": "Start date must be before end date",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Migliori Pratiche
- Usa la Paginazione: I feed di attività possono essere grandi, usa sempre il parametro
first
- Filtra per Progetto: I feed di attività aziendali possono essere opprimenti
- Aggiornamenti in Tempo Reale: Usa iscrizioni per feed di attività dal vivo
- Filtraggio per Data: Usa intervalli di date per analisi storiche delle attività
- Filtraggio per Categoria: Filtra per tipi di attività specifici per feed mirati
- Filtraggio per Utente: Monitora le attività di membri specifici del team utilizzando
userIds
Note Importanti
- Le attività vengono generate automaticamente e non possono essere create manualmente tramite API
- Il testo delle attività utilizza la formattazione HTML per una visualizzazione ricca
- Il campo
text
è deprecato a favore dihtml
- Le attività sono archiviate permanentemente e forniscono una completa traccia di audit
- Le iscrizioni in tempo reale richiedono l'autenticazione della connessione WebSocket