Hämta och övervaka projektaktivitetsflöden med hjälp av Blue API.
Hämta Projektaktivitet
Frågan activityList
ger tillgång till ett omfattande aktivitetsflöde för projekt och företag. Aktiviteter genereras automatiskt när användare utför åtgärder som att skapa att-göra-listor, kommentarer eller göra projektändringar.
Grundläggande Exempel
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
}
}
Avancerat Exempel med Filtrering
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
}
}
Inmatningsparametrar
activityList Fråga
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
companyId |
String | Nej | Filtrera aktiviteter efter företags-ID eller slug |
projectId |
String | Nej | Filtrera aktiviteter efter projekt-ID eller slug |
userId |
String | Nej | Filtrera aktiviteter efter en specifik användare |
userIds |
[String!] | Nej | Filtrera aktiviteter efter flera användare |
tagIds |
[String!] | Nej | Filtrera aktiviteter efter att-göra-taggar |
categories |
[ActivityCategory!] | Nej | Filtrera efter specifika aktivitetstyper |
startDate |
DateTime | Nej | Filtrera aktiviteter från detta datum |
endDate |
DateTime | Nej | Filtrera aktiviteter fram till detta datum |
skip |
Int | Nej | Hoppa över detta antal poster (offset-paginering) |
first |
Int | Nej | Returnera de första N posterna (cursor-paginering) |
last |
Int | Nej | Returnera de sista N posterna (cursor-paginering) |
after |
String | Nej | Returnera poster efter denna cursor |
before |
String | Nej | Returnera poster före denna cursor |
orderBy |
ActivityOrderByInput | Nej | Sorteringsordning för resultat |
ActivityCategory Värden
Systemet spårar automatiskt olika typer av aktiviteter:
Kategori | Beskrivning |
---|---|
CREATE_TODO |
En ny att-göra-lista/uppgift har skapats |
MARK_TODO_AS_COMPLETE |
En att-göra-lista har markerats som klar |
CREATE_COMMENT |
En kommentar har lagts till |
CREATE_DISCUSSION |
En diskussion har påbörjats |
CREATE_STATUS_UPDATE |
En statusuppdatering har publicerats |
CREATE_TODO_LIST |
En ny att-göra-lista har skapats |
MOVE_TODO |
En att-göra-lista har flyttats mellan listor |
COPY_TODO |
En att-göra-lista har kopierats |
ADD_USER_TO_PROJECT |
En användare har lagts till i projektet |
REMOVE_USER_FROM_PROJECT |
En användare har tagits bort från projektet |
ARCHIVE_PROJECT |
Projektet har arkiverats |
UNARCHIVE_PROJECT |
Projektet har avarkiverats |
CREATE_INVITATION |
En användare har bjudits in |
ACCEPT_INVITATION |
En inbjudan har accepterats |
CREATE_CUSTOM_FIELD |
Ett anpassat fält har skapats |
RECEIVE_FORM |
En formulärinlämning har mottagits |
ActivityOrderByInput Värden
Värde | Beskrivning |
---|---|
createdAt_DESC |
Senaste först (standard) |
createdAt_ASC |
Äldsta först |
updatedAt_DESC |
Senast uppdaterad först |
updatedAt_ASC |
Minst nyligen uppdaterad först |
category_ASC |
Alfabetiskt efter kategori |
category_DESC |
Omvänt alfabetiskt efter kategori |
Svarsfält
Aktivitetstyp
Fält | Typ | Beskrivning |
---|---|---|
id |
ID! | Unik identifierare för aktiviteten |
uid |
String! | Alternativ unik identifierare |
category |
ActivityCategory! | Typ av aktivitet som inträffade |
html |
String! | Rikt HTML-beskrivning av aktiviteten |
createdAt |
DateTime! | När aktiviteten inträffade |
updatedAt |
DateTime! | När aktiviteten senast uppdaterades |
createdBy |
User! | Användare som utförde åtgärden |
affectedBy |
User | Användare som påverkades av åtgärden |
company |
Company | Associerat företag |
project |
Project | Associerat projekt |
todo |
Todo | Associerad att-göra-lista (om tillämpligt) |
todoList |
TodoList | Associerad att-göra-lista (om tillämpligt) |
comment |
Comment | Associerad kommentar (om tillämpligt) |
discussion |
Discussion | Associerad diskussion (om tillämpligt) |
statusUpdate |
StatusUpdate | Associerad statusuppdatering (om tillämpligt) |
metadata |
String | Ytterligare aktivitetsmetadata |
ActivityList Svar
Fält | Typ | Beskrivning |
---|---|---|
activities |
[Activity!]! | Array av aktivitetsregister |
pageInfo |
PageInfo! | Pagineringinformation |
totalCount |
Int! | Totalt antal aktiviteter som matchar filtren |
Realtidsaktivitetsuppdateringar
Prenumerera på aktivitetsförändringar med hjälp av subscribeToActivity
prenumerationen:
subscription ActivityUpdates($companyId: String!, $projectId: String) {
subscribeToActivity(companyId: $companyId, projectId: $projectId) {
mutation
node {
id
category
html
createdAt
createdBy {
id
name
email
}
project {
id
name
}
}
}
}
Prenumerationsparametrar
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
companyId |
String | Nej | Prenumerera på företagsomfattande aktiviteter |
projectId |
String | Nej | Prenumerera på specifika projektaktiviteter |
Prenumerationen kommer att meddela dig om:
ACTIVITY_CREATED
- Nya aktiviteterACTIVITY_UPDATED
- Modifierade aktiviteterACTIVITY_DELETED
- Borttagna aktiviteter
Filtrering och Integritet
Automatisk Filtrering
Aktivitetsflödet filtrerar automatiskt resultat baserat på:
- Projektinställningar: Visar endast aktiviteter från projekt med aktiverad aktivitetsövervakning
- Användartillstånd: Olika användarroller ser olika aktivitetstyper
- Projektmedlemskap: Användare ser endast aktiviteter från projekt de har tillgång till
- Företagsmedlemskap: Aktiviteter är begränsade till användarens företag
Integritetsöverväganden
- Användare med CLIENT-roll har begränsad insyn i vissa administrativa aktiviteter
- Aktiviteter respekterar projektets integritetsinställningar
- Känsliga operationer kanske inte genererar offentliga aktiviteter
Felmeddelanden
Ogiltigt Projekt/Företag
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Åtkomst nekad
{
"errors": [{
"message": "You do not have permission to view activities for this project",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Ogiltigt Datumintervall
{
"errors": [{
"message": "Start date must be before end date",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Bästa Praxis
- Använd Paginering: Aktivitetsflöden kan vara stora, använd alltid
first
parametern - Filtrera efter Projekt: Företagsomfattande aktivitetsflöden kan vara överväldigande
- Realtidsuppdateringar: Använd prenumerationer för live aktivitetsflöden
- Datumfiltrering: Använd datumintervall för historisk aktivitetsanalys
- Kategorifiltrering: Filtrera efter specifika aktivitetstyper för fokuserade flöden
- Användarfiltrering: Spåra specifika teammedlemmars aktiviteter med hjälp av
userIds
Viktiga Noter
- Aktiviteter genereras automatiskt och kan inte skapas manuellt via API
- Aktivitetstext använder HTML-formattering för rik visning
- Fältet
text
är avvecklat till förmån förhtml
- Aktiviteter lagras permanent och ger en komplett revisionsspår
- Realtidsprenumerationer kräver autentisering av WebSocket-anslutning