VodičPlan Ultimate

Postavi webhookove

Šalji ažuriranja o terminima, klijentima, računima i drugom u realnom vremenu svom sistemu i provjeri da svaki zahtjev dolazi od Softalona.

4 min čitanjaUloga: Super administrator ili višaIntegracije i programeriAžurirano 25. oktobar 2026.
Otvori u aplikaciji

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 POST zahtjeve s JSON tijelom i počinje s https:// ili http://.

Kreiraj webhook

  1. 1

    Korak 1 od 4

    Otvori Webhookove

    Idi na Postavke › Programeri › Webhookovi i klikni Kreiraj webhook.

  2. 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. 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. 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:

OblastTeme
Uposlenicisalons/member.created, .updated, .deleted
Lokacijelocations/location.created, .updated, .deleted
Uslugeservices/service.created, .updated, .deleted
Klijenticlients/client.created, .updated, .deleted, .birthday, .lapsed
Kodovi za prijavu klijenataclients/session_request.code_generated
Terminibooking/appointment.created, .updated, .deleted, .upcoming, .started
Konverzacijeconversations/conversation.created, .updated, .deleted
Računifinances/invoice.created, .updated, .deleted

Š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:

HeaderVrijednost
X-Webhook-Signaturesha256= iza čega slijedi potpis
X-Webhook-TopicTema, na primjer booking/appointment.created
X-Webhook-Endpoint-IdID tvog webhooka
X-Webhook-Delivery-IdID ove dostave. Ostaje isti kada se dostava ponovo pokuša.
User-AgentSoftalon API

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 2xx u 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-Id da zanemariš dostavu koju si već obradio.

Svaka dostava ima jedan od ovih statusa:

StatusŠta znači
pendingČeka na slanje.
deliveredTvoj URL je odgovorio statusom 2xx.
failedPosljednji pokušaj nije uspio. Ako ima preostalih pokušaja, ponovo se pokušava.
exhaustedSvih 5 pokušaja nije uspjelo. Neće se ponovo pokušavati.

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.