Webhook šalje HTTP zahtjev na URL koji odabereš kad god se nešto desi u tvom salonu, na primjer kada se kreira termin ili ažurira klijent. Koristi ga da drugi sistem održavaš usklađenim sa Softalonom.
Prije nego što počnete
- Tvoj salon je na planu Ultimate.
- Imaš ulogu Super administrator ili Vlasnik.
- Imaš URL koji prihvata
POSTzahtjeve s JSON tijelom i počinje shttps://ilihttp://.
Kreiraj webhook
- 1
Korak 1 od 4
Otvori Webhookove
Idi na Postavke › Programeri › Webhookovi i klikni Kreiraj webhook.
- 2
Korak 2 od 4
Unesi odredište
Popuni Odredišni URL, na primjer
https://example.com/webhook, i po želji Opis kako bi ga kasnije prepoznao. - 3
Korak 3 od 4
Odaberi teme
Pod Teme odaberi događaje koje želiš. Kartica Sve teme navodi sve dostupne teme, a Odabrane teme prikazuje šta si odabrao. Tvoj URL prima samo teme koje odabereš.
- 4
Korak 4 od 4
Sačuvaj
Klikni Kreiraj webhook.
Vidjet ćete:Webhook kreiran, a webhook se pojavljuje u tabeli s uključenim prekidačem statusa.
Teme
Teme se zovu resource.action. Dostupne su ove:
Šta znači svaki okidač, pogledaj u Okidači automatizacija – objašnjenje.
Šta Softalon šalje
Svaki događaj je POST zahtjev s JSON tijelom:
{
"topic": "booking/appointment.created",
"event": {
"id": "...",
"type": "booking/appointment.created",
"resource": "booking/appointment",
"resourceId": "...",
"salonId": "...",
"data": {
"object": { "...": "the full object" },
"previousAttributes": { "...": "changed fields, for updates" }
}
}
}
Zahtjev ima ove headere:
Provjeri potpis
Svaki webhook ima secret. Softalon njime potpisuje tijelo zahtjeva koristeći HMAC-SHA256 i šalje heksadecimalni rezultat u X-Webhook-Signature. Izračunaj istu vrijednost iz sirovog tijela zahtjeva i uporedi. Ako se ne poklapaju, zanemari zahtjev.
const crypto = require("crypto");
function isValid(rawBody, header, secret) {
const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(header));
}
Za upravljanje secretom koristi dugmad u koloni Secret:
- Dugme s okom prikazuje cijeli secret, a dugme za kopiranje ga kopira.
- Dugme za regenerisanje odmah kreira novi secret. Stari secret odmah prestaje raditi, pa istovremeno ažuriraj svoj sistem.
Dostave i ponovni pokušaji
- Tvoj URL mora odgovoriti statusnim kodom
2xxu roku od 10 sekundi. Sve ostalo se računa kao neuspjeh. - Neuspjela dostava se ponovo pokušava, do ukupno 5 pokušaja. Čekanje između pokušaja raste: otprilike 30 sekundi, 1 minuta, 2 minute i 4 minute.
- Koristi
X-Webhook-Delivery-Idda zanemariš dostavu koju si već obradio.
Svaka dostava ima jedan od ovih statusa:
Aplikacija još ne prikazuje evidenciju dostava. Dostave možeš čitati putem API-ja na GET /v1/salons/:salonId/webhook-endpoints/:webhookEndpointId/deliveries. Pogledaj Kreiraj API aplikaciju.
Ako su posljednjih 5 dostava na webhook sve iscrpljene, Softalon isključuje webhook. Popravi svoj endpoint, a zatim ponovo uključi prekidač statusa. Događaji koji se dese dok je webhook isključen ne šalju se kasnije.
Uredi, pauziraj ili obriši webhook
- Pauziraj: isključi prekidač u koloni Status.
- Uredi: otvori meni reda i odaberi Ažuriraj.
- Obriši: otvori meni reda i odaberi Obriši.
Webhookovi šalju samo dok tvoj salon ima aktivnu pretplatu, pretplatu u probnom periodu ili dospjelu pretplatu na planu koji uključuje webhookove.
Česta pitanja
Svaka dostava se šalje zasebno i ponovo pokušava po svom rasporedu, pa se ne oslanjaj na redoslijed kojim zahtjevi stižu. Umjesto toga koristi vremenske oznake samog objekta.