Wychodzące Webhooki
Wysyłaj zdarzenia FreeMaint do zewnętrznych systemów w czasie rzeczywistym
Czas czytania: 5 min
Webhooki sprawiają, że FreeMaint wysyła POST na kontrolowany przez Ciebie adres w chwili, gdy coś się wydarzy, dzięki czemu inny system (ERP, fakturowanie, magazyn, księgowość, kanał czatu) pozostaje zgodny bez ręcznego przepisywania. Konfiguracja w /company-settings/webhooks. Starter ma limit 100 dostarczeń dziennie; Business i wyżej bez limitu. Pełne odniesienie do ładunków znajdziesz w API & GraphQL > Webhooki.
Dostępne zdarzenia
- work_order.created — utworzono zlecenie pracy
- work_order.completed — zlecenie pracy przeszło do statusu Zakończone
- work_order.status_changed — zlecenie pracy przeszło do dowolnego statusu; work_order.completed jest nadal wysyłane
- request.created — wysłano zgłoszenie konserwacyjne
- request.status_changed — zgłoszenie zostało zatwierdzone, odrzucone lub anulowane
- part.low_stock — stan części spadł do punktu ponownego zamówienia lub poniżej
- part.out_of_stock — stan części spadł do zera
- part.low_stock_summary — raz dziennie: części na poziomie punktu ponownego zamówienia lub poniżej, w tym te, które nigdy nie miały ruchu
- part.out_of_stock_summary — raz dziennie: części, których stan wynosi zero
- part.consumed — zużyta na zleceniu pracy albo zwrócona
- compliance.chain_divergence — łańcuch hashy audytu został przerwany (Enterprise)
- asset.downtime_started — otwarto postój maszyny
- asset.downtime_ended — zamknięto postój maszyny
- report.daily_summary — zakończone prace z danego dnia, raz dziennie o wybranej przez Ciebie godzinie
- purchase_order.created — utworzono zamówienie zakupu
- purchase_order.status_changed — zamówienie zakupu przeszło do innego statusu (zatwierdzone, zamówione, anulowane…)
- purchase_order.received — przyjęto dostawę do zamówienia zakupu, także częściową
Semantyka dostarczania
- POST z ciałem JSON: { event, timestamp, data }
- Nagłówek X-FreeMaint-Signature — t=<sekundy unix>,v1=<hex>, gdzie v1 to HMAC-SHA256 ciągu «<t>.<surowe ciało>» z kluczem równym sekretowi Twojego webhooka. Weryfikuj przy każdym żądaniu, względem surowego ciała
- Wysyłamy też X-FreeMaint-Event oraz X-FreeMaint-Delivery-Id
- Błędy sieci i 5xx są ponawiane do 3 razy z wykładniczym opóźnieniem (około 2 s, 4 s, 8 s); 4xx to trwała odmowa i nie jest ponawiane
- Każda próba jest zapisywana przy webhooku ze statusem, kodem odpowiedzi i liczbą prób — a każde zakończone dostarczenie można stamtąd wysłać ponownie
- Opcjonalne zdjęcia: przy włączonym „Dołącz zdjęcia” zdarzenia "work_order" i "request" zawierają do 4 linków do obrazów w polu "photos", ważnych 7 dni dla każdego, kto je ma — włączaj tylko dla punktu końcowego, który kontrolujesz
Konfiguracja
- Otwórz /company-settings/webhooks — Wymaga uprawnienia do ustawień firmy lub uprawnienia „Zarządzanie integracjami”.
- Kliknij «Dodaj webhook» — Nadaj nazwę, podaj adres https:// i zaznacz wybrane zdarzenia.
- Skopiuj sekret podpisu — Jest pokazywany TYLKO raz przy tworzeniu. Później wygenerujesz nowy przez «Zmień sekret», co unieważnia poprzedni.
- Obserwuj dostarczenia — Otwórz historię dostarczeń webhooka, aby potwierdzić, że zdarzenia docierają, i ponowić to, co się nie powiodło.
Limity w planach
- Starter — 100 dostarczeń dziennie na firmę (licznik zeruje się o 00:00 UTC)
- Business — bez limitu
- Enterprise — bez limitu
- Licznik zlicza PRÓBY: trzy webhooki na to samo zdarzenie zużywają trzy jednostki
Wskazówka
Zawsze weryfikuj X-FreeMaint-Signature po stronie serwera, względem surowego ciała żądania — bez tego nie odróżnisz prawdziwego zdarzenia FreeMaint od podrobionego, a sfałszowane part.consumed mogłoby ruszyć stany w Twoim ERP.
Powiązane artykuły
Czy ta strona była pomocna?