Dokumentacja dla programistów›Marketplace aplikacji›Subskrypcje zdarzeń cyklu życia na poziomie funkcji
Dokumentacja dla programistów

Subskrypcje zdarzeń cyklu życia na poziomie funkcji

Marketplace aplikacjiAplikacje monday.com
Aktualizacja 2026-06-04

Subskrypcje zdarzeń cyklu życia na poziomie funkcji pozwalają deweloperom aplikacji otrzymywać powiadomienia webhook, gdy użytkownicy wchodzą w interakcję z określonymi funkcjami aplikacji (np. gdy widok tablicy zostaje zduplikowany, obiekt utworzony lub rozszerzenie kolumny usunięte).

Ta funkcja rozszerza obsługę zdarzeń cyklu życia w monday.com poza poziom aplikacji. Dzięki niej możesz precyzyjnie określić, na które zdarzenia dotyczące poszczególnych funkcji nasłuchuje aplikacja i jak każde z nich jest obsługiwane.

Przegląd

Subskrypcje zdarzeń cyklu życia na poziomie funkcji pozwalają subskrybować zdarzenia osobno dla każdej funkcji aplikacji, zamiast obsługiwać wszystkie zdarzenia na poziomie aplikacji za pomocą jednego webhooka.

Możesz:

  • Subskrybować tylko te zdarzenia na poziomie funkcji, które Cię interesują
  • Kierować różne zdarzenia do różnych adresów webhooków
  • Wybrać synchroniczną lub asynchroniczną obsługę każdego zdarzenia
  • Zarządzać subskrypcjami za pomocą czytelnych identyfikatorów funkcji

Dzięki temu możesz projektować zaplecze aplikacji z myślą o działaniu poszczególnych funkcji, zamiast kierować wszystkie zdarzenia cyklu życia do jednego punktu końcowego.

Możesz na przykład kierować zdarzenia dotyczące duplikowania widoku tablicy do jednej usługi, a zdarzenia dotyczące usuwania rozszerzenia kolumny obsługiwać w innej - zależnie od architektury aplikacji.

Obsługiwane typy zdarzeń

Zdarzenia cyklu życia na poziomie funkcji są obsługiwane w przypadku kilku typów funkcji aplikacji. Każdy typ zdarzenia jest powiązany z konkretnym typem funkcji aplikacji i musi do niego pasować.

Zdarzenia dotyczące widoków tablicy

Typ zdarzenia Opis
AppFeatureBoardView:delete Widok tablicy zostaje usunięty
AppFeatureBoardView:duplicate Widok tablicy zostaje zduplikowany
AppFeatureBoardView:restore Widok tablicy zostaje przywrócony

Zdarzenia dotyczące rozszerzeń kolumn

Typ zdarzenia Opis
AppFeatureBoardColumnExtension:delete Rozszerzenie kolumny zostaje usunięte
AppFeatureBoardColumnExtension:duplicate Rozszerzenie kolumny zostaje zduplikowane
AppFeatureBoardColumnExtension:export Rozszerzenie kolumny zostaje wyeksportowane

Zdarzenia dotyczące niestandardowych kolumn

Typ zdarzenia Opis
AppFeatureColumn:create Niestandardowa kolumna zostaje utworzona
AppFeatureColumn:delete Niestandardowa kolumna zostaje usunięta
AppFeatureColumn:board_deleted Tablica zawierająca niestandardową kolumnę zostaje usunięta
AppFeatureColumn:board_restored Tablica zawierająca niestandardową kolumnę zostaje przywrócona

Zdarzenia dotyczące niestandardowych obiektów

Typ zdarzenia Opis
AppFeatureObject:archive Niestandardowy obiekt zostaje zarchiwizowany
AppFeatureObject:create Niestandardowy obiekt zostaje utworzony
AppFeatureObject:delete Niestandardowy obiekt zostaje usunięty
AppFeatureObject:duplicate Niestandardowy obiekt zostaje zduplikowany
AppFeatureObject:import Niestandardowy obiekt zostaje zaimportowany
AppFeatureObject:publish Niestandardowy obiekt zostaje opublikowany
AppFeatureObject:restore Niestandardowy obiekt zostaje przywrócony z archiwum
AppFeatureObject:unpublish Publikacja niestandardowego obiektu zostaje cofnięta
AppFeatureObject:update_attributes Atrybuty niestandardowego obiektu zostają zaktualizowane

Typy zdarzeń muszą pasować do typu funkcji aplikacji. Na przykład nie możesz subskrybować zdarzeń AppFeatureObject:*, jeśli funkcją aplikacji jest widok tablicy.

Niektóre zdarzenia mogą zawierać pole event_action_origin, które podaje dodatkowy kontekst dotyczący przyczyny wystąpienia zdarzenia. Na przykład pole to może wskazywać, czy zdarzenie AppFeatureColumn:board_deleted zostało wywołane usunięciem czy zarchiwizowaniem tablicy.

Zarządzanie subskrypcjami na poziomie funkcji

Subskrypcje zdarzeń cyklu życia na poziomie funkcji są w pełni samoobsługowe i zarządza się nimi za pomocą dedykowanego interfejsu GraphQL API. Subskrypcje konfiguruje się osobno dla każdej funkcji aplikacji i każdego typu zdarzenia. Możesz dzięki temu określić:

  • Na które zdarzenia na poziomie funkcji nasłuchuje aplikacja
  • Gdzie każde zdarzenie jest dostarczane
  • Czy każde zdarzenie jest obsługiwane synchronicznie, czy asynchronicznie

Możesz w ten sposób kierować różne interakcje z funkcjami do różnych usług i wybierać najodpowiedniejszy tryb obsługi dla każdego zdarzenia.

Przepływ zdarzeń

Po skonfigurowaniu subskrypcji zdarzenia cyklu życia na poziomie funkcji za pomocą API, za każdym razem, gdy wystąpi subskrybowane zdarzenie, przebiegają następujące kroki.

sequenceDiagram
    participant MondayPlatform as monday platform
    participant MondayAppsService as monday app service
    participant YourApp as Your app

    MondayPlatform->>MondayAppsService: Lifecycle event triggered
    MondayAppsService->>MondayAppsService: Look up subscription
    MondayAppsService->>YourApp: POST to webhook URL

    alt Sync Mode (is_sync: true)
        YourApp-->>MondayAppsService: HTTP 200 (success) or 4XX (failure)
        MondayAppsService->>MondayPlatform: Notify result
        Note over MondayPlatform: Update UI
    else Async Mode (is_sync: false)
        YourApp-->>MondayAppsService: HTTP 202 (acknowledged)
        Note over YourApp: Process event...
        YourApp->>MondayAppsService: POST to back_to_url with result
        MondayAppsService->>MondayPlatform: Notify result
        Note over MondayPlatform: Update UI
    end

Zabezpieczenia webhooków

Wszystkie żądania webhooków dotyczące zdarzeń cyklu życia na poziomie funkcji są uwierzytelniane za pomocą tokena JWT podpisanego kluczem tajnym aplikacji.

Serwer musi zweryfikować token JWT w każdym żądaniu, aby potwierdzić, że zostało wysłane przez monday.com. Otrzymanie ładunku bez weryfikacji podpisu nie gwarantuje, że żądanie jest autentyczne.

Żądanie webhook

Gdy wystąpi subskrybowane zdarzenie na poziomie funkcji, monday.com wysyła żądanie POST na skonfigurowany adres URL webhooka.

Nagłówki

  • Authorization: token JWT podpisany kluczem tajnym aplikacji (służy do sprawdzenia, czy żądanie pochodzi z monday)
  • Content-Type: application/json
  • X-Apps-Event-Id: unikalny identyfikator zdarzenia do śledzenia

Treść żądania

json { "type": "AppFeatureObject:create", "payload": { // Event-specific data }, "accountId": 12345, "userId": 67890, "back_to_url": "https://monday-apps-ms.monday.com/api/webhooks/response/{jobId}" }

Weryfikacja żądania webhook

Aby upewnić się, że żądanie zostało wysłane przez monday.com:

  1. Pobierz token JWT z nagłówka Authorization.
  2. Zweryfikuj podpis tokena JWT, używając klucza tajnego aplikacji.
  3. Odrzuć żądanie, jeśli weryfikacja się nie powiedzie.

Więcej informacji o nagłówku Authorization znajdziesz tutaj.

Tryb synchroniczny i asynchroniczny

Każde zdarzenie cyklu życia na poziomie funkcji można obsługiwać niezależnie, synchronicznie lub asynchronicznie.

Tryb asynchroniczny

  • Odpowiedz kodem HTTP 202, aby potwierdzić odbiór
  • Przetwórz zdarzenie w tle
  • Po zakończeniu przetwarzania wywołaj back\_to\_url
<p><strong>Przykład odpowiedzi asynchronicznej</strong></p>

```bash
curl -X POST "{back_to_url}" \
  -H "Content-Type: application/json" \
  -d '{"success": true}'
```

<p><strong>Najlepszy wybór w przypadku:</strong> złożonych obliczeń, wywołań zewnętrznych interfejsów API, operacji na bazie danych i przetwarzania plików</p>

Tryb synchroniczny

  • Odpowiedz od razu kodem HTTP 200 (powodzenie) lub 4XX (niepowodzenie)
  • Wybierz ten tryb, gdy przetwarzanie jest szybkie i wymagane są natychmiastowe informacje zwrotne
<p>
  <strong>Najlepszy wybór w przypadku:</strong> prostych walidacji, szybkiego przekształcania danych i natychmiastowych odpowiedzi z błędem
</p>