Dokumentacja dla programistów

Dzienniki aktywności

Aktualizacja 2026-10-30

Dzienniki aktywności użytkowników nie są jeszcze stabilne. Tworzymy nowe API dzienników aktywności na najwyższym poziomie, które obejmie tablice i użytkowników (między tablicami i użytkownikami). Do czasu jego wdrożenia i ustabilizowania pola dotyczącego użytkowników traktuj users { activity_logs } wyłącznie jako wersję zapoznawczą - może się ono zmienić, zanim wersja API zostanie sfinalizowana. Nie używaj go w aplikacjach produkcyjnych, dopóki nie ogłosimy jego stabilności w informacjach o wersjach.

Dzienniki aktywności rejestrują działania na Twoim koncie monday.com. GraphQL API udostępnia je na dwa sposoby:

Punkt wejścia Struktura GraphQL Użyj, gdy
Dzienniki aktywności tablicy boards(ids: …) { activity_logs(…) { … } } Znasz ID tablicy i chcesz pobrać zdarzenia na tej tablicy (filtrując według kolumn, grup, elementów lub użytkowników).
Dzienniki aktywności użytkownika users(ids: …) { activity_logs(…) { logs cursor } } Znasz ID użytkownika lub użytkowników i chcesz pobrać ich aktywność (opcjonalne filtrowanie według tablic i typów zdarzeń; stronicowanie za pomocą kursora).
  • Dzienniki tablicy są oparte na tablicy: musisz podać ID tablicy. Możesz zawęzić wyniki za pomocą user_ids w polu tablicy, aby uwzględnić osoby z tej tablicy.
  • Dzienniki użytkownika są oparte na użytkowniku: podajesz ID użytkowników. Możesz zawęzić wyniki za pomocą board_ids w polu użytkownika.
  • Struktura wierszy, stronicowanie i limity różnią się w obu ścieżkach - sprawdź je pod kątem swojego zastosowania, zanim założysz, że są takie same.

Zapytania

Pobierz dzienniki aktywności tablicy

  • Wymagany zakres dostępu: boards:read
  • Dostępne wyłącznie wewnątrz zapytania boards - pełną listę argumentów, definicje pól i strukturę ActivityLog dla tej ścieżki znajdziesz w sekcji Dzienniki aktywności tablicy.
  • Stronicowanie: page i limit (domyślnie 25 wierszy); maksymalnie 10 000 wierszy dziennika na zapytanie.
query {
  boards(ids: [1234567890]) {
    activity_logs(
      from: "2026-03-01T00:00:00Z"
      to: "2026-04-09T23:59:59Z"
      limit: 25
      page: 1
    ) {
      id
      event
      entity
      data
      user_id
      created_at
    }
  }
}

Pobierz dzienniki aktywności użytkownika

  • Wymagany zakres dostępu: users:read
  • Dostępne wewnątrz zapytania users jako activity_logs typu User. Odpowiedź ma typ UserActivityLogsPage i zawiera logs oraz cursor wskazujący następną stronę.
  • Wersja API: użyj API-Version: 2026-04 lub nowszej.
  • from / to: w schemacie mają typ String - podaj daty i godziny w formacie ISO 8601 (na przykład 2026-03-01T00:00:00Z). Nieprawidłowe wartości mogą powodować błędy pól zwracane przez usługę dzienników aktywności.

Pierwsza strona

query UserActivityFirstPage(
  $userIds: [ID!]!
  $from: String!
  $to: String!
  $limit: Int
) {
  users(ids: $userIds) {
    id
    activity_logs(from: $from, to: $to, limit: $limit) {
      cursor
      logs {
        id
        account_id
        user_id
        event
        entity
        data
        created_at
      }
    }
  }
}

Zmienne (przykład):

{
  "userIds": ["1234567890"],
  "from": "2026-03-01T00:00:00Z",
  "to": "2026-04-09T23:59:59Z",
  "limit": 50
}

Stronicowanie (kursor)

W dziennikach aktywności użytkownika stosuje się stronicowanie za pomocą kursora (a nie numerów page).

  1. Przy pierwszym wywołaniu activity_logs nie podawaj cursor (lub ustaw cursor: null).
  2. Jeśli cursor w odpowiedzi nie ma wartości null, przekaż ten ciąg jako cursor w następnym żądaniu dla tego samego użytkownika, z tym samym from / to (i pozostałymi filtrami).
  3. Zakończ, gdy cursor ma wartość null.
query UserActivityNextPage(
  $userIds: [ID!]!
  $from: String!
  $to: String!
  $cursor: String!
  $limit: Int
) {
  users(ids: $userIds) {
    id
    activity_logs(from: $from, to: $to, limit: $limit, cursor: $cursor) {
      cursor
      logs {
        id
        event
        created_at
      }
    }
  }
}
  • Domyślny rozmiar strony: 50 wierszy.
  • Maksymalny rozmiar strony: 200 wierszy na wywołanie activity_logs.

Argumenty

Argument Typ Opis
from String Początek przedziału (ISO 8601). Musi przypadać w ciągu ostatnich 90 dni (zobacz ograniczenia).
to String Koniec przedziału (ISO 8601).
board_ids [ID!] Opcjonalne. Tylko zdarzenia związane z tymi tablicami.
event_types [String!] Opcjonalne. Tylko zdarzenia, których typ odpowiada jednemu z podanych ciągów (dokładny zestaw może się zmieniać).
limit Int Rozmiar strony. Domyślnie 50, maksymalnie 200.
cursor String Nieprzezroczysty kursor z poprzedniej odpowiedzi dla tego samego użytkownika i zestawu filtrów.

Pola UserActivityLogsPage

Pole Typ Opis
logs [ActivityLog!] Wiersze na tej stronie.
cursor String Kursor następnej strony lub null, jeśli nie ma kolejnej strony.

Pola ActivityLog (ścieżka dzienników aktywności użytkownika)

Pole Typ Opis
id ID Unikatowe ID wiersza dziennika.
account_id ID Konto, którego dotyczy zdarzenie.
user_id ID Użytkownik powiązany ze zdarzeniem.
event String Nazwa lub typ zdarzenia.
entity String Encja, której dotyczy zdarzenie.
data String Dane zdarzenia (ich struktura zależy od event).
created_at String Czas zdarzenia. W dziennikach tablicy created_at używa formatu 17-cyfrowego opisanego w sekcji Dzienniki aktywności tablicy; w dziennikach użytkownika format ciągu może być inny - parsuj go z uwzględnieniem możliwych różnic.

Dzienniki aktywności użytkownika - ograniczenia i błędy

Poniższe informacje odzwierciedlają obecne założenia.

Zakres dat

  • Można pobierać tylko aktywność z ostatnich 90 dni.
  • Jeśli from przypada wcześniej niż 90 dni temu, pole może zwrócić błąd dla tego użytkownika. Pozostali użytkownicy w tym samym żądaniu nadal mogą zwrócić dane.

Przypadki brzegowe stronicowania

  • Wiersze są uporządkowane według znacznika czasu. Nie ma gwarancji kolejności wśród wierszy z dokładnie takim samym znacznikiem czasu.
  • Jeśli granica strony wypada między wierszami z identycznymi znacznikami czasu, między stronami mogą pojawić się duplikaty lub braki - usuń duplikaty na podstawie id i nie zakładaj dokładnej liczby wyników bez ich uzgodnienia.

Błędy (GraphQL)

W przypadku błędu activity_logs może zwrócić wartość null dla danego użytkownika, podczas gdy pozostałe pola nadal zwrócą dane. Sprawdź tablicę errors; ścieżki błędów mają postać users → <index> → activity_logs.

Sytuacja Typowy komunikat Typowe extensions
from poza dozwolonym przedziałem np. "from" date cannot be older than 90 days code: INVALID_ARGUMENT, service: activity-log

Wybór między dziennikami tablicy a dziennikami użytkownika

Temat activity_logs tablicy activity_logs użytkownika
Masz ID tablicy lub tablic ID użytkownika lub użytkowników
Stronicowanie page + limit cursor + limit (maks. 200)
Domyślna liczba wierszy na stronę 25 50
Główne filtry Kolumna, grupa, element, użytkownik (na tej tablicy) Lista tablic, typy zdarzeń
Wersja API Wersje stabilne oznaczone datą (np. 2026-07) 2026-07 po udostępnieniu w wersji API oznaczonej datą; zobacz ostrzeżenie - nie używaj w środowisku produkcyjnym, dopóki funkcja nie będzie stabilna