~ 6 min

We brought a ready Tilda design to life as a working service: a therapist catalog, a calendar that handles time zones, online payment through YooKassa with an automatic 25/75 split, refunds by cancellation rules and reminders. There are no manual payouts, and all infrastructure is hosted in Russia. Core development took 14 days.

Imagine launching a service where couples and individuals can find their therapist, book an online session and pay for it in a couple of minutes. The design is ready, the Tilda pages are built, therapists are waiting for the launch. But the site is still just a picture: the “Book” button leads nowhere, there is no payment and no member areas.

The team behind “Dvoe” (dvoe.life), a space of practices, courses and psychological support for couples and for people who want to understand themselves better, came to us with that. We did not need to redraw the site: we had to build the engine under it: booking, money, roles and notifications.

Problem: a therapist marketplace is harder than ordinary booking

- Money must go to two parties. The client pays once, and part goes to the platform, part to the therapist. Collecting everything to the platform account and transferring manually creates extra taxes, liability and a risk of errors.
- Off-the-shelf booking tools do not fit. They cannot split a payment or automatically refund by cancellation rules.
- Therapists and clients live in different time zones. A client from Novosibirsk must see slots in their own time, and the therapist in theirs.
- The data is sensitive. It needs Russian infrastructure and as few manual payment operations as possible.

Task

On the basis of a ready Figma design and Tilda pages:
- deploy our own server with a backend, a database and a cache;
- bring the pages to life: sign-up, sign-in, password recovery, client and therapist areas;
- build a therapist calendar with time zones, session length, pauses and blocks;
- connect YooKassa with its “Safe Deal” service so a payment splits automatically: 25% to the platform and 75% to the therapist;
- implement cancellation rules and automatic refunds;
- set up emails: booking confirmation, cancellation and a one-hour reminder;
- give the administrator therapist moderation and payment audit without a separate admin panel.

Solution: Tilda as the storefront, n8n as the engine

We did not touch the client’s design and layout. On top of the Tilda pages we connected scripts that talk to a backend on n8n. Data is stored in SeaTable, and Redis serves queues and fast operations. Everything runs on the client’s own server at Timeweb, in Russian jurisdiction.

The screens below are interface mockups on the client’s ready design.

Example: the journey of client Marina (illustrative scenario)

1. Marina opens the catalog, reads profiles and picks a therapist who works with couples.
2. In the calendar she sees free slots already in her own time zone, even though the therapist works on Moscow time.
3. Marina clicks a convenient slot. The system creates a booking with the status “awaiting payment” and checks that the therapist is connected to YooKassa and can receive money.
4. Marina lands on the YooKassa payment page and pays, optionally through the Faster Payments System with a bank of her choice.
5. The money is charged at once. YooKassa reports a successful payment, the booking is confirmed, the slot disappears from the calendar, and Marina and the therapist receive emails.
6. At that moment the payment splits: 75% goes to the therapist, 25% to the platform. A record for accounting lands in the payment log.
7. In Marina’s area a session card appears with a Zoom link and materials from the therapist.
8. An hour before the start both get a reminder.
9. If Marina’s plans change more than 12 hours before the session, she clicks “Cancel” and gets a full refund with no fee. The refund is deducted proportionally from the platform’s and the therapist’s accounts automatically.

How it works

Catalog and therapist profile

Every therapist has a public page with a description, photo, approach and session price. The therapist edits the profile in their area, and changes appear in the catalog at once.

A calendar that does the math for a person

The therapist sets their time zone, session length and a “cool-down” pause between clients. They can block specific dates or create a template such as “every Monday 10:00–13:00 is busy”. The system builds the grid of free slots itself, taking zones, blocks and already paid bookings into account. Double booking of a single slot is impossible.

Split payment with no manual payouts

YooKassa’s “Safe Deal” is connected. A therapist registers in YooKassa as self-employed or a sole proprietor and enters their recipient ID in the area. With every payment the platform tells YooKassa what share to send to the therapist and what to keep. The money immediately goes to two accounts, and the administrator does not have to transfer anything by hand. If no ID is entered, the system will not create a payment and shows a clear error.

Cancellations and refunds by the rules

- Plans changed or the client cancels more than 12 hours ahead: a full refund with no fee, automatically.
- The client cancels less than 12 hours ahead: no refund, since the specialist’s time was reserved.
- The therapist cancels the session: the client always gets a full refund and an email.

The refund is also split: YooKassa deducts it proportionally from the platform and the therapist.

Therapist area

Registration takes three steps: description, photo, a Telegram contact and the YooKassa recipient ID. After that the account waits for moderation. When the administrator approves the profile, the therapist receives an email and appears in the catalog. In the area they see their sessions, add a Zoom link and upload materials for the client (PDF, DOC, PNG, JPG up to 10 MB).

The administrator works in a table

A separate admin area was not needed. SeaTable holds a registry of therapists where one status field moves a profile from “under moderation” to “approved”. The payment log is there too: total amount, platform share, therapist payout, transaction ID and split status. That is enough for audit and financial reporting.

Notifications

Emails are sent through Sendpulse: a new booking (to the therapist), a confirmation (to the client), a cancellation and a reminder an hour before the session to both.

Stack

Tilda — the storefront and member areas on the client’s ready design; logic is connected by scripts.

n8n — the backend: sign-up, slot calculation, payment creation, receiving YooKassa notifications, cancellations and refunds, file upload.

SeaTable — database and admin: therapists, bookings, the payment log.

Redis — n8n task queues so nothing is lost when bookings surge.

YooKassa “Safe Deal” — accepting payment, Faster Payments, automatic splitting of payments and refunds, receipts.

Sendpulse — confirmation and reminder emails.

Zoom — the session link right in the booking card.

FilePond — convenient material upload with progress.

Timeweb — our own server in Russia.

Security and reliability

- The backend, database and cache run on the client’s own server in Russia, not in a foreign SaaS.
- Card data never passes through the platform: payment happens on the YooKassa side, and the receipt comes from the payment operator.
- Page scripts load from a CDN with retries, so the area opens even if loading fails.
- Every payment and split is recorded in a log, so a disputed case can be resolved from the record.

Project results

- 14 days of core development.
- 3 roles: client, therapist, administrator.
- A 25/75 split, a 12-hour cancellation rule and a 1-hour reminder.
- The project was handed over with video guides for the administrator.
- The platform is currently at the stage of actively attracting an audience.

Need a marketplace or a booking service with payment?

If you are launching a service where a payment must be split between the platform and a specialist, and booking, refunds and reminders must work without manual effort, describe the project in the brief. We will take your design, build the backend on your server and connect a payment service.

Tech Stack

Tilda logo

Tilda

n8n logo

n8n

SeaTable logo

SeaTable

Redis logo

Redis

YooKassa

Sendpulse logo

Sendpulse

Zoom

FilePond logo

FilePond

Timeweb

Results Achieved

3

Roles in the System

14 days

Delivery Time

12+ hours ahead

Full Refund on Cancellation

25% / 75%

Payment Split

Like this case? Launch yours just as fast

Same approach, same speed, same quality. Fill out the brief or calculate your project cost right now.