Integracje Integrations
Dla developerów For developers

API i integracje techniczne — widget, osadzanie i status API Terapeuto API and technical integrations — the widget, embedding and the status of the Terapeuto API

Ta strona jest przeznaczona dla agencji i osób wdrażających Terapeuto u klientów. Opisujemy, co można zrobić już dziś, a czego nie oferuje publiczne API — tak, aby ułatwić zaplanowanie wdrożenia. This page is aimed at agencies and people implementing Terapeuto for clients. We describe what you can do today and what the public API doesn't offer — to make planning an implementation easier.

Spis treści Contents

Widget publiczny (iframe)The public widget (iframe)

Publiczny widget rezerwacji działa pod adresem:The public booking widget runs at:

https://app.terapeuto.com/widget/{ORGANIZATION_ID}

oraz w widoku pojedynczego terapeuty:and in a single-therapist view:

https://app.terapeuto.com/widget/{ORGANIZATION_ID}/therapist/{THERAPIST_ID}

Widget jest standardową stroną HTML, którą możesz osadzić w ramce iframe o wybranej szerokości i wysokości. To najprostszy sposób na dodanie rezerwacji do witryny klienta bez ingerowania w jej kod.The widget is a standard HTML page you can embed in an iframe of your chosen width and height. It's the simplest way to add booking to a client's website without touching its code.

Osadzanie przez <script>Embedding via <script>

Panel Terapeuto generuje gotowy fragment kodu z identyfikatorem organizacji. Skrypt umieszcza kalendarz we wskazanym kontenerze i nie wymaga użycia dodatkowego frameworka.The Terapeuto panel generates a ready-made code snippet with the organization ID. The script mounts the calendar in the container you specify and requires no extra framework.

<div id="terapeuto-widget"></div>
<script src="https://app.terapeuto.com/widget/embed.js"
        data-org="ORGANIZATION_ID"
        data-target="#terapeuto-widget"
        async></script>

Wskazówki wdrożeniowe:Implementation notes:

  • KontenerThe container musi istnieć w DOM przed wykonaniem skryptu (data-target).must exist in the DOM before the script runs (data-target).
  • Jeśli na jednej stronie osadzasz kilka widgetów, nadaj każdemu kontenerowi unikalny identyfikator.If you embed several widgets on one page, give each container a unique ID.
  • Widget dopasowuje się do ekranu i nie wymaga stałej wysokości. W przypadku iframe ustaw minimalną wysokość na około 700 px, aby ograniczyć przewijanie wewnątrz ramki.The widget adapts to the screen and needs no fixed height. For iframe, set a minimum height of around 700 px to reduce scrolling inside the frame.

Personalizacja wygląduCustomising the appearance

Wygląd widgetu ustawisz w panelu organizacji, bez wprowadzania zmian w kodzie strony:You set the widget's appearance in the organization panel, without changing the website code:

  • kolory główny, drugorzędny, tła i tekstu,primary, secondary, background and text colours,
  • wybór czcionki,your choice of font,
  • pokazywanie/ukrywanie nagłówków, listy terapeutów, przycisku powrotu i oznaczenia dostawcy,showing or hiding headings, the therapist list, the back button and the vendor mark,
  • widok siatki albo listy,a grid or list layout,
  • własne tłumaczenia dowolnego tekstu,custom translations of any text,
  • wybór języka (PL/EN) po stronie pacjenta.the patient choosing the language (PL/EN).

Dostępność terapeutów w widgecieTherapist visibility in the widget

  • Terapeuta może być ukryty w widgecie bez usuwania go z grafiku (show_on_widget).A therapist can be hidden from the widget without removing them from the schedule (show_on_widget).
  • Terapeuta może być wykluczony z publicznej listy oczekujących (allow_waitlist).A therapist can be excluded from the public waiting list (allow_waitlist).
  • Widget można ograniczyć do jednego terapeuty (widok /therapist/{id}).The widget can be limited to a single therapist (the /therapist/{id} view).

Formularz rezerwacji — jakie dane zbieraThe booking form — what data it collects

Widget zbiera tylko niezbędne dane:The widget collects only the essential data:

PoleFieldCzy wymagane?Required?
Imię i nazwiskoFull nametakyes
TelefonPhonetakyes
E-mailEmailnie (opcjonalnie)no (optional)

Nie zbieramy powodu wizyty ani informacji o stanie zdrowia.We don't collect the reason for the visit or any health information. To celowa decyzja projektowa wynikająca z charakteru danych o zdrowiu psychicznym.It's a deliberate design decision that follows from the nature of mental health data.

Status API publicznego i webhookówThe status of the public API and webhooks

Mówimy wprost, żeby nie budować planów na czymś, czego nie ma:We'll say it plainly so you don't build plans on something that doesn't exist:

  • Publiczne REST API: nie planujemy.A public REST API: not planned. Wewnętrznie aplikacja działa na FastAPI, ale nie udostępniamy klientom otwartego API.Internally the app runs on FastAPI, but we don't expose an open API to clients.
  • Webhooki: nie planujemy.Webhooks: not planned. Nie wysyłamy zdarzeń do zewnętrznych systemów.We don't push events to external systems.
  • Apple Shortcuts: nie planujemy.Apple Shortcuts: not planned. Nie budujemy aplikacji mobilnej ani integracji ze skrótami systemowymi. System działa w przeglądarce na telefonie i tablecie.We're not building a mobile app or system-shortcut integrations. The system runs in the browser on a phone and a tablet.
  • Webhooki SMS:SMS webhooks: po stronie serwera system obsługuje zdarzenia od dostawcy SMS. Jest to mechanizm wewnętrzny, a nie integracja dostępna dla klientów.on the server side the system handles events from the SMS provider. That's an internal mechanism, not an integration available to clients.

Planujesz własny interfejs rezerwacji?Planning a custom booking interface? Publicznego API nie planujemy, więc własnego panelu rezerwacji nie zbudujesz — możesz osadzić gotowy widget. Jeśli to warunek projektu, powiedz nam o tym przed wyceną. Pełny status funkcji: status produktu.We don't plan a public API, so you can't build your own booking panel — you can embed the ready-made widget. If that's a project requirement, tell us before quoting. Full feature status: product status.

Płatności i powiadomieniaPayments and notifications

  • Powiadomienia SMS i e-mailSMS and email notifications konfiguruje się w panelu organizacji, ustawiając reguły dla poszczególnych zdarzeń i korzystając z szablonów.are configured in the organization panel, by setting rules for individual events and using templates.
  • Płatności onlineOnline payments nie są dostępne i nie planujemy ich — to świadoma decyzja produktowa. Szczegóły na stronie statusu.aren't available and aren't planned — that's a deliberate product decision. Details on the status page.

Czego potrzebujesz od nas do wdrożeniaWhat you need from us to implement

Jeśli wdrażasz Terapeuto u klienta i potrzebujesz:If you're implementing Terapeuto for a client and need:

  • identyfikatora organizacji i kodu osadzenia widgetu,the organization ID and the widget embed code,
  • informacji o działaniu widgetu, gdy brakuje wolnych terminów (lista oczekujących),information on how the widget behaves when there are no free slots (the waiting list),
  • informacji o regionie danych i umowie powierzenia,information about the data region and the DPA,

napisz na mateusz@terapeuto.com. Odpowiemy technicznie, nie marketingowo.write to mateusz@terapeuto.com. We'll answer technically, not with marketing.

Wdrażasz Terapeuto u klienta? Implementing Terapeuto for a client?

Załóż darmowe konto, żeby przetestować widget i przepływ rezerwacji, albo napisz do nas — pomożemy przy wdrożeniu. Create a free account to test the widget and the booking flow, or write to us — we'll help with the implementation.

Załóż darmowe konto Create a free account bez karty · bez prowizji od wizyt · plany od 8,99 zł/mies. za terapeutę no card · no per-session fees · plans from 2.29 EUR per therapist/mo