Haal projectactiviteit feeds op en monitor ze met behulp van de Blue API.
Haal Project Activiteit Op
De activityList
query biedt toegang tot een uitgebreide activiteit feed voor projecten en bedrijven. Activiteiten worden automatisch gegenereerd wanneer gebruikers acties uitvoeren zoals het aanmaken van taken, opmerkingen of het aanbrengen van wijzigingen in projecten.
Basis Voorbeeld
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
}
}
Geavanceerd Voorbeeld met Filtering
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
}
}
Invoervelden
activityList Query
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
companyId |
String | Nee | Filter activiteiten op bedrijfs-ID of slug |
projectId |
String | Nee | Filter activiteiten op project-ID of slug |
userId |
String | Nee | Filter activiteiten op een specifieke gebruiker |
userIds |
[String!] | Nee | Filter activiteiten op meerdere gebruikers |
tagIds |
[String!] | Nee | Filter activiteiten op todo-tags |
categories |
[ActivityCategory!] | Nee | Filter op specifieke activiteitstypen |
startDate |
DateTime | Nee | Filter activiteiten vanaf deze datum |
endDate |
DateTime | Nee | Filter activiteiten tot deze datum |
skip |
Int | Nee | Sla dit aantal records over (offset paginering) |
first |
Int | Nee | Geef de eerste N records terug (cursor paginering) |
last |
Int | Nee | Geef de laatste N records terug (cursor paginering) |
after |
String | Nee | Geef records terug na deze cursor |
before |
String | Nee | Geef records terug voor deze cursor |
orderBy |
ActivityOrderByInput | Nee | Sorteervolgorde voor resultaten |
ActivityCategory Waarden
Het systeem volgt automatisch verschillende soorten activiteiten:
Categorie | Beschrijving |
---|---|
CREATE_TODO |
Een nieuwe todo/takenlijst is aangemaakt |
MARK_TODO_AS_COMPLETE |
Een todo is gemarkeerd als voltooid |
CREATE_COMMENT |
Een opmerking is toegevoegd |
CREATE_DISCUSSION |
Een discussie is gestart |
CREATE_STATUS_UPDATE |
Een statusupdate is gepost |
CREATE_TODO_LIST |
Een nieuwe takenlijst is aangemaakt |
MOVE_TODO |
Een todo is tussen lijsten verplaatst |
COPY_TODO |
Een todo is gekopieerd |
ADD_USER_TO_PROJECT |
Een gebruiker is aan het project toegevoegd |
REMOVE_USER_FROM_PROJECT |
Een gebruiker is uit het project verwijderd |
ARCHIVE_PROJECT |
Het project is gearchiveerd |
UNARCHIVE_PROJECT |
Het project is gedearchiveerd |
CREATE_INVITATION |
Een gebruiker is uitgenodigd |
ACCEPT_INVITATION |
Een uitnodiging is geaccepteerd |
CREATE_CUSTOM_FIELD |
Een aangepast veld is aangemaakt |
RECEIVE_FORM |
Een formulierinzending is ontvangen |
ActivityOrderByInput Waarden
Waarde | Beschrijving |
---|---|
createdAt_DESC |
Meest recent eerst (standaard) |
createdAt_ASC |
Oudste eerst |
updatedAt_DESC |
Meest recent bijgewerkt eerst |
updatedAt_ASC |
Het minst recent bijgewerkt eerst |
category_ASC |
Alfabetisch op categorie |
category_DESC |
Omgekeerd alfabetisch op categorie |
Antwoordvelden
Activiteitstype
Veld | Type | Beschrijving |
---|---|---|
id |
ID! | Unieke identificatie voor de activiteit |
uid |
String! | Alternatieve unieke identificatie |
category |
ActivityCategory! | Type activiteit die heeft plaatsgevonden |
html |
String! | Rijke HTML-beschrijving van de activiteit |
createdAt |
DateTime! | Wanneer de activiteit heeft plaatsgevonden |
updatedAt |
DateTime! | Wanneer de activiteit voor het laatst is bijgewerkt |
createdBy |
User! | Gebruiker die de actie heeft uitgevoerd |
affectedBy |
User | Gebruiker die door de actie is beïnvloed |
company |
Company | Geassocieerd bedrijf |
project |
Project | Geassocieerd project |
todo |
Todo | Geassocieerde todo (indien van toepassing) |
todoList |
TodoList | Geassocieerde takenlijst (indien van toepassing) |
comment |
Comment | Geassocieerde opmerking (indien van toepassing) |
discussion |
Discussion | Geassocieerde discussie (indien van toepassing) |
statusUpdate |
StatusUpdate | Geassocieerde statusupdate (indien van toepassing) |
metadata |
String | Extra activiteit metadata |
ActivityList Antwoord
Veld | Type | Beschrijving |
---|---|---|
activities |
[Activity!]! | Array van activiteit records |
pageInfo |
PageInfo! | Paginainformatie |
totalCount |
Int! | Totaal aantal activiteiten dat overeenkomt met filters |
Real-Time Activiteit Updates
Abonneer je op activiteit wijzigingen met behulp van de subscribeToActivity
abonnement:
subscription ActivityUpdates($companyId: String!, $projectId: String) {
subscribeToActivity(companyId: $companyId, projectId: $projectId) {
mutation
node {
id
category
html
createdAt
createdBy {
id
name
email
}
project {
id
name
}
}
}
}
Abonnementsparameters
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
companyId |
String | Nee | Abonneer op bedrijfsbrede activiteiten |
projectId |
String | Nee | Abonneer op specifieke projectactiviteiten |
Het abonnement zal je op de hoogte stellen van:
ACTIVITY_CREATED
- Nieuwe activiteitenACTIVITY_UPDATED
- Gewijzigde activiteitenACTIVITY_DELETED
- Verwijderde activiteiten
Filtering en Privacy
Automatische Filtering
De activiteit feed filtert automatisch resultaten op basis van:
- Projectinstellingen: Toont alleen activiteiten van projecten met geactiveerde activiteit tracking
- Gebruikersrechten: Verschillende gebruikersrollen zien verschillende activiteitstypen
- Projectlidmaatschap: Gebruikers zien alleen activiteiten van projecten waartoe ze toegang hebben
- Bedrijfsleden: Activiteiten zijn beperkt tot de bedrijven van de gebruiker
Privacy Overwegingen
- CLIENT rol gebruikers hebben beperkte zichtbaarheid in bepaalde administratieve activiteiten
- Activiteiten respecteren de privacy-instellingen op projectniveau
- Gevoelige operaties genereren mogelijk geen openbare activiteiten
Fout Antwoorden
Ongeldig Project/Bedrijf
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Toegang Geweigerd
{
"errors": [{
"message": "You do not have permission to view activities for this project",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Ongeldig Datumbereik
{
"errors": [{
"message": "Start date must be before end date",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Beste Praktijken
- Gebruik Paginering: Activiteit feeds kunnen groot zijn, gebruik altijd de
first
parameter - Filter op Project: Bedrijfsbrede activiteit feeds kunnen overweldigend zijn
- Real-time Updates: Gebruik abonnementen voor live activiteit feeds
- Datum Filtering: Gebruik datumbereiken voor historische activiteit analyse
- Categorie Filtering: Filter op specifieke activiteitstypen voor gerichte feeds
- Gebruiker Filtering: Volg specifieke teamleden activiteiten met behulp van
userIds
Belangrijke Notities
- Activiteiten worden automatisch gegenereerd en kunnen niet handmatig worden aangemaakt via de API
- Activiteitstekst gebruikt HTML-opmaak voor rijke weergave
- Het
text
veld is verouderd ten gunste vanhtml
- Activiteiten worden permanent opgeslagen en bieden een complete audit trail
- Real-time abonnementen vereisen authenticatie van de WebSocket-verbinding