Pozwól agentom AI rezerwować w Twojej firmie
Serwer MCP, API REST i podpisane webhooki, z kluczami pod kontrolą właściciela i zasadami salonu sprawdzanymi przy każdej rezerwacji.
Pełna dokumentacja API i MCP dostępna na życzenie [email protected]
Serwer MCP
Model Context Protocol pozwala asystentowi AI bezpośrednio wywoływać narzędzia Cadenspot: Streamable HTTP i JSON-RPC 2.0 pod jednym adresem, a każdy klucz działa tylko dla jednej firmy.
POSThttps://cadenspot.com/api/mcp
Narzędzia
Klucz widzi i wywołuje tylko narzędzia, na które pozwalają jego uprawnienia.
Uprawnienie availability:read
list_event_typesUsługi do zarezerwowania: czas trwania, cena, opcje, zasady i przygotowanie.list_staffStylistki, o które klient może poprosić przy danej usłudze.get_available_slotsWolne terminy jednej usługi, do 14 dni na wywołanie, według godzin, rezerwacji i podłączonych kalendarzy.
Uprawnienie bookings:read
get_bookingJedna rezerwacja po numerze: status i to, co jeszcze można zmienić.find_client_bookingsWizyty klienta wyszukane po telefonie lub e-mailu.get_client_contextKrótka karta dzwoniącego: wizyty, nieobecności, ostatnia usługa, nadchodzące terminy.
Uprawnienie bookings:write
intakeZacznij tutaj: przekaż słowa klienta; serwer wybierze usługę i kolejny krok.propose_slotsDo 3 terminów pasujących do prośby klienta; gdy znany jest telefon lub e-mail, pierwszy jest blokowany na 10 minut.hold_slotBlokuje termin do 10 minut, gdy klient potwierdza.release_holdZwalnia zablokowany termin.create_bookingRezerwuje termin, ponownie sprawdzony z zasadami i kalendarzami; ta sama osoba nigdy nie zostanie na nim zarezerwowana dwa razy.reschedule_bookingPrzenosi rezerwację na inny termin; obie strony dostają zaktualizowane zaproszenie.escalate_to_ownerPrzekazuje właścicielowi zwroty, skargi i wszystko, co nietypowe.join_waitlistDopisuje klienta do listy oczekujących, gdy żaden termin nie pasuje.
Uprawnienie bookings:cancel
cancel_bookingOdwołuje, gdy agent przekaże confirmed: true (po „tak” klienta), i proponuje bliskie terminy na nową rezerwację.
Uprawnienie bookings:approve
decide_requestAkceptuje lub odrzuca prośbę o rezerwację; wymaga uprawnienia bookings:approve.
Podłącz swojego asystenta
Dodaj to do konfiguracji klienta MCP (Claude Code czyta ją z .mcp.json) i zamień YOUR_API_KEY na klucz z Panel → Ustawienia → Klucze API. Inne klienty potrzebują tego samego adresu i nagłówka Authorization.
{
"mcpServers": {
"cadenspot": {
"type": "http",
"url": "https://cadenspot.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Pełna dokumentacja API i MCP dostępna na życzenie [email protected]
API REST v1
Dla kodu, który nie jest klientem MCP: zwykłe HTTPS i JSON, z tymi samymi kluczami i uprawnieniami. Klucz wysyłaj jako token Bearer.
GET
Firma i jej usługi do rezerwacji, z cenami z ustawień właściciela./api/v1/servicesavailability:readGET
Wolne terminy jednej usługi, liczone na bieżąco, do 14 dni./api/v1/availabilityavailability:readPOST
Rezerwuje termin. Wyślij nagłówek Idempotency-Key, by ponowienie nigdy nie zarezerwowało dwa razy./api/v1/bookingsbookings:writeGET
Jedna rezerwacja i dozwolone jeszcze działania./api/v1/bookings/:idbookings:readPATCH
Odwołuje (bookings:cancel) lub przenosi (bookings:write) rezerwację./api/v1/bookings/:idbookings:cancelbookings:write
Błędy wracają jako JSON ze stałym kodem i komunikatem: 401 przy złym kluczu, 403 gdy brakuje uprawnienia, 429 przy limicie.
Pierwsze wywołanie
curl https://cadenspot.com/api/v1/services \
-H "Authorization: Bearer YOUR_API_KEY"Pełna dokumentacja API i MCP dostępna na życzenie [email protected]
Webhooki
Dowiaduj się, gdy coś się dzieje. Właściciel dodaje endpoint w Panel → Ustawienia → Webhooki i wybiera zdarzenia.
booking.createdRezerwacja została potwierdzona.booking.requestedRezerwacja czeka na zgodę właściciela.booking.rescheduledRezerwacja została przeniesiona.booking.cancelledRezerwacja została odwołana.booking.declinedWłaściciel odrzucił prośbę albo wygasła.booking.reminderOkoło 24 godzin przed wizytą.booking.no_showWłaściciel oznaczył, że klient nie przyszedł.escalation.createdAgent przekazał rozmowę właścicielowi.waitlist.slot_openedZwolnił się termin i lista oczekujących dostała informację.rebook.dueKlient powinien umówić kolejną wizytę.
Podpisane wysyłki
Każda wysyłka zawiera x-veyracal-signature (v1= i szesnastkowy HMAC-SHA256 znacznika czasu, kropki i surowej treści), x-veyracal-timestamp (sekundy Unix), x-veyracal-event i x-veyracal-delivery. Zanim porównasz HMAC, odrzuć wysyłkę, jeśli brakuje znacznika czasu lub podpisu albo mają zły format, lub jeśli znacznik czasu różni się od Twojego zegara o ponad 300 sekund; potem porównaj w stałym czasie i usuwaj duplikaty po id wysyłki. Nieudana wysyłka jest próbowana łącznie do 5 razy.
Bezpieczne z założenia
Klucze z minimalnymi uprawnieniami
Każdy klucz należy do jednej firmy i robi tylko to, co zaznaczy właściciel: sprawdza wolne terminy, rezerwuje, odwołuje lub zatwierdza. Klucze mogą wygasać, można je unieważnić i są przechowywane tylko jako hash.
Zasady salonu przy każdym żądaniu
Godziny, przerwy, wyprzedzenie, dzienne limity i to, jak daleko naprzód można rezerwować, serwer sprawdza przy każdej rezerwacji, blokadzie i zmianie terminu. Żadne narzędzie nie przyjmuje ceny: ceny pochodzą wyłącznie z ustawień właściciela. Ta sama osoba nigdy nie zostanie zarezerwowana dwa razy na ten sam termin.
Bezpieczne ponawianie
Z kluczem idempotencji powtórzone żądanie zwraca tę samą rezerwację zamiast tworzyć drugą, a klucz nigdy nie zwróci rezerwacji innej firmy. Przez MCP termin zajęty w międzyczasie wraca z bliskimi alternatywami.
Człowiek do trudnych spraw
Zwroty, skargi i nagłe sprawy trafiają do właściciela przez escalate_to_owner, a intake wykrywa je w słowach klienta. Odwołanie wymaga confirmed: true, wysyłanego dopiero po „tak” klienta, a akceptacja lub odrzucenie prośby wymaga klucza z uprawnieniem bookings:approve.
Pytania
- Które asystenty AI mogą się połączyć?
- Każdy asystent lub platforma agentów obsługująca zdalne serwery MCP przez HTTP oraz każdy kod, który potrafi wywołać API HTTPS.
- Jak zdobyć klucz API?
- Właściciel firmy tworzy go w Panel → Ustawienia → Klucze API, wybiera uprawnienia i kopiuje go raz: później nie jest już pokazywany.
- Czy agent może zarezerwować poza godzinami otwarcia albo zmienić cenę?
- Nie. Każda rezerwacja, blokada i zmiana terminu jest sprawdzana z godzinami, przerwami, wyprzedzeniem i dziennymi limitami właściciela, a żadne narzędzie nie przyjmuje ceny: ceny pochodzą wyłącznie z jego ustawień.
- Co jeśli to samo żądanie zostanie wysłane dwa razy?
- Wyślij ten sam klucz idempotencji (idempotencyKey w MCP, nagłówek Idempotency-Key w REST), a drugie żądanie zwróci pierwszą rezerwację.
- Co się dzieje, gdy klient prosi o zwrot albo składa skargę?
- Agent wywołuje escalate_to_owner: właściciel dostaje e-mail, sprawa pojawia się w jego skrzynce, a webhook escalation.created zostaje wysłany.
- Czy są limity zapytań?
- Tak. Obecnie każdy klucz ma 120 żądań naraz, potem 2 na sekundę, liczone osobno dla MCP i REST. Limity mogą się zmienić.
Gotowy, by się połączyć?
Prowadzisz salon lub studio? Najpierw utwórz link do rezerwacji; asystent będzie w nim rezerwował.
Utwórz darmowy link do rezerwacjiBudujesz agenta? Napisz do nas, a wyślemy Ci pełną dokumentację API i MCP.
Napisz do nas