Funkcije › Integracije
Integracije i API

Integracije: webhook,
REST API i pretplata na kalendar

Šesnaest događaja izlazi iz sistema u trenutku kada nastanu, potpisano algoritmom HMAC-SHA256 i u JSON formatu koji razume svaki alat za automatizaciju. Četiri rute puštaju spoljni softver da čita podatke. Prepisivanje podataka rukom nije potrebno.

Dva smera prenosa podataka

Razlika između ta dva smera određuje koji mehanizam koristite. Ostatak ove stranice su detalji jednog ili drugog.

Odlazni smer

Webhook

Sistem javlja napolje u trenutku kada se događaj desi, bez upita sa druge strane. Vi unosite adresu i izaberete događaje, a paket sa podacima odlazi sam.

Primer: klijent zakaže termin u 23 časa. Sekundu kasnije podaci su u vašoj tabeli, poruka je otišla na Viber, a obaveštenje je stiglo na telefon.
Dolazni smer

API ključ

Spoljni sistem čita podatke iz plugina kada mu zatrebaju. Vi izdajete ključ, a sistem njime traži termine od zadatog datuma, spisak usluga ili spisak aktivnog osoblja.

Primer: knjigovođa svakog prvog u mesecu povlači spisak završenih termina za prethodni mesec, bez prijave u administraciju.
Većini korisnika je potreban samo odlazni smer. Webhook pokriva veći deo potreba, jer je cilj da poruka ode sama i da se red u tabeli upiše sam. API ključ je potreban kada spoljni sistem treba da čita vaše podatke.

Spisak šesnaest događaja

Svaki webhook prima samo događaje koje mu dodelite. Jedna adresa može da prima jedan događaj, druga svih šesnaest.

Rezervacije

7
  • booking.createdNova rezervacija
  • booking.cancelledOtkazana rezervacija
  • booking.completedZavršena rezervacija
  • booking.status_changedPromena statusa, bilo koja
  • booking.confirmedKlijent potvrdio dolazak
  • payment.recordedEvidentirana uplata
  • waitlist.joinedPrijava na listu čekanja

Poruke klijentu

9
  • booking.reminderPodsetnik pre termina
  • booking.reminder2Drugi podsetnik
  • booking.no_showKlijent nije došao
  • customer.debt_reminderPodsetnik za neplaćeno
  • customer.review_requestZahtev za recenziju
  • customer.winbackUspavani klijent
  • customer.rebookVreme za ponovno zakazivanje
  • customer.birthdayRođendanska čestitka
  • customer.loyaltyNagrada za vernost

Šta tačno stiže na vašu adresu

JSON poruka u fiksnoj strukturi. Ispod je paket koji odlazi kod nove rezervacije.

POST na vašu adresu
X-PB-Event:     booking.created
X-PB-Signature: sha256=a3f1c8...
Content-Type:   application/json

{
  "id":          1482,
  "reference":   "3BB6844B",
  "status":      "pending",
  "service":     "Žensko šišanje",
  "staff":       "Milica Jovanović",
  "date":        "2026-07-24",
  "time":        "17:30",
  "price":       2500,
  "amount_paid": 0,
  "customer": {
    "name":  "Ana Petrović",
    "email": "ana@primer.rs",
    "phone": "+381 60 123 4567"
  }
}
Telefon je deo paketa. Zbog toga svaka poruka koja inače ide email-om može istovremeno da ode kao WhatsApp, Viber ili SMS, preko alata koji već koristite. Plugin sam ne šalje SMS i ne sadrži SMS gateway, ali u paketu šalje sve podatke potrebne da ga pošalje drugi servis.

Dva mehanizma bez kojih webhook nije proverljiv

Prvi dokazuje da paket dolazi od vas, drugi pokazuje da li je adresa primaoca ispravno podešena.

Potpis kojim primalac proverava pošiljaoca

Adresa webhooka je javna. Bez potpisa svako ko je pogodi može da upiše lažnu rezervaciju u vašu tabelu.

  • Svaki paket nosi zaglavlje sa potpisom, izračunatim algoritmom HMAC-SHA256 nad sadržajem poruke i tajnom koju znate samo vi i primalac.
  • Primalac ponavlja isti račun i upoređuje rezultat. Ako se potpisi ne poklapaju, poruka nije od vas ili je sadržaj izmenjen u prenosu.
  • Tajna se ne prenosi. Putuje samo rezultat računa, iz kojeg se tajna ne može izvesti.
  • Bez postavljene tajne potpisa nema i paket odlazi bez tog zaglavlja. Prenos radi, ali primalac ne može da proveri pošiljaoca.
Zašto je ovo standard: isti mehanizam potpisivanja koriste Stripe, GitHub i Shopify, pa ga alati za automatizaciju već podržavaju.

Probno slanje bez prave rezervacije

Bez probnog slanja integracija se proverava tako što sami sebi zakažete termin i pratite da li je nešto stiglo.

  • Dugme šalje probni paket na vašu adresu i prikazuje odgovor servera.
  • Odgovor se prikazuje u administraciji, a ne u logu. Pogrešna adresa ili isključen scenario vide se u tom trenutku.
  • Broj adresa nije ograničen, a svaka ima svoj izbor događaja i svoju tajnu.
  • Webhook se isključuje prekidačem, bez brisanja. Podešavanje ostaje sačuvano.

Radi sa svakim alatom koji prima HTTP zahtev

Zapier
Make
n8n
Pabbly
vaš server

Četiri rute za čitanje podataka

Mehanizam za slučaj kada spoljni sistem treba da postavi upit, umesto da čeka obaveštenje.

/auth/test Provera ispravnosti ključa. Prvi poziv koji integracija upućuje.
/api/appointments Termini sa punim podacima o klijentu. Filteri po datumu kreiranja, opsegu datuma termina, statusu i broju redova (najviše 100).
/api/services Šifarnik usluga: naziv, trajanje, cena.
/api/staff Šifarnik osoblja.

Upravljanje ključevima

  • Najviše dvadeset ključeva, svaki sa svojim nazivom. Naziv treba da označava integraciju, na primer „Zapier“ ili „Izveštaj za knjigovođu“, jer se posle nekoliko meseci ne pamti koji ključ pripada čemu.
  • Za svaki ključ se beleži vreme poslednje upotrebe. Ključ koji mesecima nije upotrebljen je ili neaktivna integracija ili pristup o kojem ne znate. U oba slučaja ga treba opozvati.
  • Opoziv je pojedinačan. Jedna integracija se isključuje bez uticaja na ostale.
  • Ključ se prenosi u zaglavlju zahteva, kao X-PB-API-Key ili standardno kao Authorization: Bearer.
  • Poređenje ključa je otporno na merenje vremena, pa se ključ ne može pogoditi merenjem vremena odziva servera.

Pretplata na kalendar, bez spoljnog alata

Zaposleni svoj raspored najčešće gleda na telefonu, a ne u administraciji WordPress-a. Pretplata na kalendar prenosi raspored tamo gde se zaista gleda.

Jedan link, dodat jednom

Postavljanje ne zahteva ni Zapier ni programera. Potrebno je oko trideset sekundi po zaposlenom, jednom.

  • Svaki zaposleni dobija svoj link i u njemu vidi isključivo svoje termine. Link se jednom dodaje u Google, Apple ili Outlook kalendar.
  • Globalni link postoji za vlasnika ili recepciju, sa svim terminima na jednom mestu.
  • Reč je o pretplati, a ne o jednokratnom uvozu. Novi termin se pojavljuje sam, otkazani se sam uklanja. Posle prvog dodavanja nema dalje intervencije.
  • Radi na satu, telefonu i računaru, jer je iCal standard koji podržavaju svi uobičajeni kalendari. Uputstvo za sva tri sistema je u pluginu.
  • Ovo nije dugme „Dodaj u kalendar“ iz email-a. To dugme klijentu dodaje jedan termin. Pretplata zaposlenom drži ceo raspored, trajno.
Kada je korisno: kada raspored treba da bude na telefonu zaposlenog, bez naloga na platformi za automatizaciju.
Stranica Integracije: webhook sa izborom događaja i dugmetom za probu
Integracije u administraciji: adresa, izbor događaja, tajna za potpis i dugme za probno slanje.

Granice ovog dela sistema

Integracije prenose podatke. Obradu podataka podešavate u alatu po svom izboru.

  • Nema gotovu vezu sa imenovanom platformom. Ne postoji dugme za povezivanje sa Zapier nalogom. Postoji adresa na koju sistem šalje, a scenario pravite sami. To je nekoliko minuta posla, ali jeste posao.
  • Nema slanje SMS, WhatsApp ni Viber poruka iz plugina. Sistem šalje događaj sa telefonom klijenta, a poruku šalje alat koji sami izaberete i platite. Zato te poruke nisu uključene u cenu licence.
  • Nema dolazni upis. Rute su samo za čitanje. Spoljni sistem ne može da napravi termin kroz API, nego samo da pročita postojeće.
  • Nema uvoz iz Google kalendara. Termini idu iz plugina u kalendar, a ne u obrnutom smeru. Unosi napravljeni ranije u Google kalendaru ostaju tamo.
  • Nema ponovni pokušaj slanja. Ako server primaoca u tom trenutku ne odgovori, paket je propušten i ne šalje se ponovo. Za poruke koje ne smeju da se izgube koristi se alat koji sam ponavlja pokušaj.
Ova ograničenja su projektna odluka, a ne propust. Plugin radi na vašem hostingu i ne uslovljava vas nalogom ni pretplatom na tuđoj platformi.

U kom su paketu integracije

U svakom plaćenom paketu, bez ograničenja broja poziva i bez naplate po događaju.

Webhook, API i kalendar

Free1 usluga, 1 zaposleni
SingleSve, 1 sajt
BusinessSve, više sajtova
AgencySve, za sajtove klijenata
Pogledajte cene →

Pitanja o integracijama

Za webhook nije potrebno programiranje. U Zapier ili Make napravite korak koji se zove catch hook, dobijete adresu, unesete je u plugin i izaberete događaje. Zatim podešavate šta se dešava kada paket stigne: poruka na Viber, red u tabeli, obaveštenje na telefon. Za API ključeve je potrebno tehničko znanje, ali ih većina korisnika nikada ne otvara.

Uključite webhook na događaj podsetnika i povežite ga sa alatom koji šalje WhatsApp. Paket nosi ime, telefon, uslugu, datum, vreme i broj rezervacije, dakle sve podatke potrebne za poruku. Plugin i dalje šalje email, pa klijent dobija oba kanala, ili email isključite. Trošak poruka plaćate tom alatu, a ne nama, i zato licenca nema mesečnu naplatu.

Za tu situaciju postoji tajna za potpis. Onaj ko zna adresu, a ne zna tajnu, ne može da pošalje paket koji će proći proveru, jer primalac upoređuje potpis sa sopstvenim računom. Ako sumnjate da je i tajna procurela, promenite je u pluginu i kod primaoca. Adresa ostaje ista.

Ne. Paket se šalje bez čekanja na odgovor i sa kratkim rokom, pa klijent koji zakazuje ne čeka vaš Zapier. Jedini izuzetak je probno slanje, koje namerno čeka odgovor da bi ga prikazalo. Ako server primaoca ne odgovori, rezervacija se završava normalno.

Da, na tri načina. Rute za termine, usluge i osoblje vraćaju podatke u JSON formatu. Karton klijenta ima izvoz. Baza je na vašem hostingu, pa joj pristupate direktno. Nema zaključavanja podataka, jer podaci nisu kod nas.

Šta ovim putem izlazi

Integracije nemaju sopstveni sadržaj. Prenose ono što ostali delovi sistema proizvedu.

Podatak koji se prepisuje rukom pre ili kasnije se izgubi

Šesnaest događaja izlazi samo, potpisano, u sekundi kada nastanu. Licenca se plaća jednom, a broj poziva se ne naplaćuje.