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 aktiviteter
  • ACTIVITY_UPDATED - Modifierade aktiviteter
  • ACTIVITY_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

  1. Använd Paginering: Aktivitetsflöden kan vara stora, använd alltid first parametern
  2. Filtrera efter Projekt: Företagsomfattande aktivitetsflöden kan vara överväldigande
  3. Realtidsuppdateringar: Använd prenumerationer för live aktivitetsflöden
  4. Datumfiltrering: Använd datumintervall för historisk aktivitetsanalys
  5. Kategorifiltrering: Filtrera efter specifika aktivitetstyper för fokuserade flöden
  6. 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ör html
  • Aktiviteter lagras permanent och ger en komplett revisionsspår
  • Realtidsprenumerationer kräver autentisering av WebSocket-anslutning

AI-assistent

Svar genereras med hjälp av AI och kan innehålla misstag.

Hur kan jag hjälpa dig?

Fråga mig vad som helst om Blue eller denna dokumentation.

Tryck Enter för att skicka • Shift+Enter för ny rad • ⌘I för att öppna