Wychodzące Webhooki

Wysyłaj zdarzenia FreeMaint do zewnętrznych systemów w czasie rzeczywistym

Czas czytania: 5 min
Drukuj tę sekcję

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

  1. Otwórz /company-settings/webhooks — Wymaga uprawnienia do ustawień firmy lub uprawnienia „Zarządzanie integracjami”.
  2. Kliknij «Dodaj webhook» — Nadaj nazwę, podaj adres https:// i zaznacz wybrane zdarzenia.
  3. Skopiuj sekret podpisu — Jest pokazywany TYLKO raz przy tworzeniu. Później wygenerujesz nowy przez «Zmień sekret», co unieważnia poprzedni.
  4. 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.

Czy ta strona była pomocna?