Ekademia daje Ci unikalną możliwość analizowania i reagowania na zachowania użytkowników Twoich produktów i bloga za pomocą dowolnego, zewnętrznego systemu.
Umożliwiają to między innymi specjalne kody
{WEBHOOK}
i {WEBHOOKJS}
.Umieszczenie kodu
{WEBHOOK}
lub {WEBHOOKJS}
w treści kursu wysyła na wskazany adres webhooka (skryptu czekającego na dane) mnóstwo wartościowych informacji.Gdzie można go użyć?
Kody
{WEBHOOK}
i {WEBHOOKJS}
mogą być użyte w:- ofercie
- w treści formularza
- w opisie sekcji
- w etykiecie
- w treści zasobu: strona html
- w treści informacji wprowadzających do zadania, forum, quizu lub innej aktywności
- w informacji zwrotnej w zadaniu lub quizie
Przekazywane dane
Przekazuje on standardowo:
time
- czas unixowy (liczba sekund od 1 stycznia 1970 r)key
- klucz SHA265 dynamicznie generowany za pomocąhash('sha256', USER_ID.TIME.sekret)
; - gdzie TIME to wartość przekazanego parametrutime
, a SEKRET to opcjonalny parametr - patrz niżej.wwwroot
- główny adres platformy np. https://www.ekademia.pl- w kursie:
- numer, nazwę skróconą, nazwę pełną, kategorię i url kursu
- jeśli jest to podstrona: numer, nazwę i adres strony
- jeśli jest to moduł kursu: id, nazwę, numer modułu, instancję i adres modułu
- na blogu:
- numer, nazwę, typ i url postu
- id, email i nazwę skróconą użytkownika - jeśli jest zalogowany i jeśli wyraził Ci wcześniej zgodę na przetwarzanie danych np. składając zamówienie.
- adres IP użytkownika
- informację z wyrażonej zgodzie na przetwarzanie danych w celach marketingowych
- informację o wyrażonej zgodzie na wysyłanie wiadomości komercyjnych za pomocą e-mail
Nie przekazujemy danych osobowych użytkownika, ponieważ:
- powinieneś je pozyskać wcześniej i zapisać w swojej bazie danych za pomocą:
- Webhook zdefiniowanego w produkcie albo w globalnie w ustawieniach sprzedawcy. Numer użytkownika przekazywany jest jako
client_id
- Integracji z Pipedrive.com. Numer użytkownika zapisywany jest w danych Kontaktu jako
imple_userid
- Webhook zdefiniowanego w produkcie albo w globalnie w ustawieniach sprzedawcy. Numer użytkownika przekazywany jest jako
- wiadomość email możesz wysłać też przez API Ekademii, które sprawdzi aktualne zgody marketingowe.
Struktura danych w formacie JSON:
Do adresu webhook możesz dodać własne parametry, które tez zostaną przekazane.
Różnica pomiędzy {WEBHOOK}
i {WEBHOOKJS}
Kod
{WEBHOOKJS}
:- jest wywoływany natychmiast po załadowaniu strony przez przeglądarkę użytkownika - za pomocą JavaScript
- jest wywoływany za każdym razem, gdy zostanie wyświetlony zasób posiadający tą flagę
- w przypadku błędu lub przepełnionej kolejki na serwerze docelowym, nie zostanie wywołany ponownie aż do ponownego wyświetlenia strony
- nie chroni adresu url webhooka - jest on widoczny w kodzie wyświetlonej strony oraz w konsoli JavaScript
- może spowalniać ładowanie pozostałych skryptów na stronie, jeśli na stronie jest więcej kodów albo webhook długo procesuje zapytanie
- nic nie kosztuje
Kod
{WEBHOOK}
:- jest dostępny tylko dla zarejestrowanych na platformie sprzedawców
- jest zapisywany do kolejki a potem wywoływany przez nasz serwer co kilka minut
- w przypadku błędu lub przepełnienia kolejki po stronie serwera docelowego, Ekademia próbuje wywołać skrypt max 10 razy w kilkuminutowych odstępach czasu.
- domyślnie ma ustawioną blokadę na 15 minut, możesz ją zmieniać między 0 a dowolna liczba minut, aby nie logować ciągle tych samych operacji wykonywanych przez te same osoby
- adres url webhooka jest niedostępny dla użytkownika - tylko Ty i my go znamy
- nie spowalnia ładowania strony
- ze względu na to, że nie jest wywoływany natychmiast, a system probuje go wywołać do 10 razy w przypadku błędów, weryfikując poprawność zapytania po stronie Webhook należy przyjąć czas życia dla parametru
time
kilka do 24 godzin. - kosztuje 1 grosz za każde zakończone sukcesem wywołanie webhooka - opłata jest doliczana do Twoich prowizji za sprzedaż.
Jeśli więc nie płacisz za wywołania webhooka (bo jest np. na Twoim serwerze) i nie przeszkadza Ci jego ciągłe wywoływanie lub możliwość, że ktoś skopiuje adres i zacznie go wywoływać złośliwie, to możesz wybrać
{WEBHOOKJS}
. Jeśli zdecydujesz się na {WEBHOOKJS}
koniecznie sprawdzaj czy parametr time nie jest stary (ktoś ręcznie/złośliwie wywołuje zapytanie) oraz czy klucz key jest prawidłowy.Jeśli korzystasz z usług typu Integromat.com lub Zapier.com, gdzie każde wywołanie webhooka jest płatne, polecamy korzystać z
{WEBHOOK}
. Wywołanie go również kosztuje, ale możesz kontrolować częstotliwość wywołania przez 1 osobę i nie ryzykujesz, że ktoś zacznie go złośliwie wywoływać. Jeśli zdecydujesz się na {WEBHOOK}
, możesz zrezygnować z weryfikacji klucza dla operacji niekrytycznych.Jak użyć kodów {WEBHOOK}
i {WEBHOOKJS}
:
W treści elementu, którego chcemy śledzić nalezy umieścić:
{WEBHOOK:URL_webhook}
lub {WEBHOOKJS:URL_webhook}
URL_webhook
MUSI rozpoczynać się od https. System wyśle zapytanie metodą GET.Aby dodać sekret, który zmodyfikuje klucz (bardzo ważne przy WEBHOOKJS):
{WEBHOOK:URL_webhook:sekret}
lub {WEBHOOKJS:URL_webhook:sekret}
Sekret
to alfanumeryczny ciąg znaków służący do wygenerowania klucza key
, który powinien być sprawdzony po stronie Webhook. Sekret NIE może być pusty. Dla zwiększonego bezpieczeństwa warto sprawdzać, czy pole time
nie jest zbyt stare. W przypadku {WEBHOOK}
pamiętaj, że wywołanie webhook następuje w ciągu kilku minut, ale w przypadku błędów może trwać dłużej - załóż maksymalny czas życia linku na kilka do 24 godzin.Opcjonalnie można zdefiniować metodę:
{WEBHOOK:URL_webhook:sekret:metoda}
lub {WEBHOOKJS:URL_webhook:sekret:metoda}
Metoda
może przyjąc wartość GET
albo POST
. Domyślnie jest to GET
.Na koniec tylko {WEBHOOK}
pozwala też określić czas blokady
Blokada dotyczy identycznego* wywołania wyrażona w minutach - domyślnie jest to 15 minut.
{WEBHOOK:URL_webhook:sekret:metoda:X}
Gdzie
X
to czas blokady wyrażony w minutach. 0
oznacza brak blokady. Możesz też podać bardzo dużą liczbę, aby logować daną operację tylko raz albo raz na długi czas. Np. 10 milionów minut to niecałe 40 lat.* Blokujemy wywołanie takiego samego zapytania realizowanego przez tą samą osobę, konkretnie:
- tego samego adresu,
- w tym samym kursie, na tej samej podstronie kursu, w tym samym module,
- lub na tym samym poście bloga
- przez tego samego użytkownika lub sesję, jeśli jest to osoba niezalogowana.
- naturalnie ignorujemy jednak time i key.
Debugowanie
Oba kody wyświetlają komunikaty o sukcesie lub błędzie w konsoli JavaScript dostępnej w każdej nowoczesnej przeglądarce.