~ 7 мин

Мы оживили готовый дизайн на Tilda и превратили его в работающий сервис: каталог психологов, календарь с учётом часовых поясов, онлайн-оплата через ЮKassa с автоматическим разделением 25/75, возвраты по правилам отмены и напоминания. Ручных выплат нет, вся инфраструктура находится в России. Основная разработка заняла 14 дней.

Представьте: вы запускаете сервис, где пары и отдельные люди могут найти своего психолога, записаться на онлайн-сессию и оплатить её за пару минут. Дизайн уже готов, страницы на Tilda сверстаны, психологи ждут запуска. Но сайт пока только картинка: кнопка «Записаться» никуда не ведёт, оплаты нет, кабинетов нет.

С этим к нам пришла команда «Двое» (dvoe.life) — пространства практик, курсов и психологической поддержки для пар и тех, кто хочет лучше понять себя. Нам нужно было не перерисовывать сайт, а собрать под ним «мотор»: запись, деньги, роли и уведомления.

Проблема: маркетплейс психологов сложнее обычной записи

- Деньги должны уходить двум сторонам. Клиент платит один раз, а часть суммы получает платформа, часть — психолог. Если собирать всё на счёт платформы и потом переводить вручную, появляются лишние налоги, ответственность и риск ошибок.
- Готовые сервисы записи не подходят. Они не умеют делить платёж и автоматически возвращать деньги по правилам отмены.
- Психологи и клиенты живут в разных часовых поясах. Клиент из Новосибирска должен видеть слоты в своём времени, а психолог — в своём.
- Данные чувствительные. Нужна российская инфраструктура и минимум ручных операций с платежами.

Задача

На базе готового дизайна в Figma и страниц Tilda:
- развернуть свой сервер с бэкендом, базой данных и кэшем;
- «оживить» страницы: регистрация, вход, восстановление пароля, кабинеты клиента и психолога;
- сделать календарь психолога с часовыми поясами, длительностью сессии, паузами и блокировками;
- подключить ЮKassa с услугой «Безопасная сделка», чтобы платёж автоматически делился: 25% платформе и 75% психологу;
- реализовать правила отмены и автоматические возвраты;
- настроить письма: подтверждение записи, отмена и напоминание за час;
- дать администратору модерацию психологов и аудит платежей без отдельной админ-панели.

Решение: Tilda как витрина, n8n как мотор

Дизайн и вёрстку заказчика мы не трогали. Поверх страниц Tilda подключили скрипты, которые общаются с бэкендом на n8n. Данные хранятся в SeaTable, очереди и быстрые операции обслуживает Redis. Всё развёрнуто на собственном сервере в Timeweb, в российской юрисдикции.

Экраны ниже — макеты интерфейса на готовом дизайне заказчика.

Пример: путь клиентки Марины (условный сценарий)

1. Марина открывает каталог, читает профили и выбирает психолога, который работает с парами.
2. В календаре она видит свободные окна уже в своём часовом поясе, хотя психолог работает по московскому времени.
3. Марина нажимает на удобный слот. Система создаёт запись со статусом «ожидает оплаты» и проверяет, что психолог подключён к ЮKassa и может принимать деньги.
4. Марина попадает на страницу оплаты ЮKassa и платит, можно через СБП с выбором банка.
5. Деньги списываются сразу. ЮKassa сообщает об успешной оплате, запись подтверждается, слот пропадает из календаря, а Марина и психолог получают письма.
6. В тот же момент платёж делится: 75% уходят психологу, 25% — платформе. В журнал платежей падает запись для бухгалтерии.
7. В кабинете Марины появляется карточка сессии со ссылкой на Zoom и материалами от психолога.
8. За час до начала оба получают напоминание.
9. Если у Марины меняются планы больше чем за 12 часов до сессии, она нажимает «Отменить» и получает полный возврат без комиссии. Возврат сам списывается пропорционально со счетов платформы и психолога.

Как это устроено

Каталог и профиль психолога

У каждого психолога есть публичная страница с описанием, фото, подходом и стоимостью сессии. Психолог сам редактирует профиль в кабинете, а изменения сразу видны в каталоге.

Календарь, который считает за человека

Психолог указывает свой часовой пояс, длительность сессии и «время охлаждения» — паузу между клиентами. Он может закрыть отдельные даты или создать шаблон вроде «каждый понедельник 10:00–13:00 занят». Сетку свободных слотов система собирает сама с учётом поясов, блокировок и уже оплаченных записей. Двойное бронирование одного окна исключено.

Оплата со сплитом без ручных выплат

В ЮKassa подключена «Безопасная сделка». Психолог регистрируется в ЮKassa как самозанятый или ИП и вводит в кабинете свой ID получателя. При каждой оплате платформа передаёт в ЮKassa, какую часть отправить психологу, а какую оставить себе. Деньги сразу расходятся по двум счетам, и администратору не нужно ничего переводить руками. Если ID не указан, система не даст создать платёж и покажет понятную ошибку.

Отмены и возвраты по правилам

- Планы изменились или клиент отменяет сессию больше чем за 12 часов: полный возврат без комиссии, автоматически.
- Клиент отменяет меньше чем за 12 часов: возврата нет, время специалиста было забронировано.
- Психолог отменяет сессию: клиент всегда получает полный возврат и письмо.

Возврат тоже «сплитовый»: ЮKassa сама списывает его пропорционально с платформы и с психолога.

Кабинет психолога

Регистрация проходит в три шага: описание, фото, контакт в Telegram и ID получателя ЮKassa. После этого аккаунт ждёт модерации. Когда администратор одобряет анкету, психолог получает письмо и попадает в каталог. В кабинете он видит свои сессии, добавляет ссылку на Zoom и загружает клиенту материалы (PDF, DOC, PNG, JPG до 10 МБ).

Администратор работает в таблице

Отдельный кабинет администратора не понадобился. В SeaTable есть реестр психологов, где одно поле статуса переводит анкету из «на модерации» в «одобрено». Там же лежит журнал платежей: общая сумма, доля платформы, выплата психологу, ID транзакции и статус сплита. Этого достаточно для аудита и финансовой отчётности.

Уведомления

Письма отправляются через Sendpulse: новая запись (психологу), подтверждение (клиенту), отмена и напоминание за час до сессии обоим.

Стек

Tilda — витрина и кабинеты по готовому дизайну заказчика; логика подключена скриптами.

n8n — бэкенд: регистрация, расчёт слотов, создание платежей, приём уведомлений от ЮKassa, отмены и возвраты, загрузка файлов.

SeaTable — база данных и админка: психологи, записи, журнал платежей.

Redis — очереди задач n8n, чтобы при наплыве записей ничего не терялось.

ЮKassa «Безопасная сделка» — приём оплаты, СБП, автоматическое разделение платежа и возвратов, чеки.

Sendpulse — письма-подтверждения и напоминания.

Zoom — ссылка на сессию прямо в карточке записи.

FilePond — удобная загрузка материалов с прогрессом.

Timeweb — собственный сервер в России.

Безопасность и надёжность

- Бэкенд, база и кэш работают на собственном сервере заказчика в России, а не в зарубежном SaaS.
- Платёжные данные карт не проходят через платформу: оплата идёт на стороне ЮKassa, чек клиент получает от платёжного оператора.
- Скрипты на страницах грузятся с CDN с повторными попытками, поэтому кабинет открывается даже при сбое загрузки.
- Каждый платёж и сплит фиксируется в журнале, и спорную ситуацию можно разобрать по записи.

Результаты проекта

- 14 дней на основную разработку.
- 3 роли: клиент, психолог, администратор.
- Сплит 25/75, правило отмены за 12 часов, напоминание за 1 час.
- Проект передан с видеоинструкциями для администратора.
- Сейчас платформа на этапе активного привлечения аудитории.

Нужен маркетплейс или сервис записи с оплатой?

Если вы запускаете сервис, где платёж нужно делить между платформой и специалистом, а запись, возвраты и напоминания должны работать без ручного труда, расскажите о проекте в брифе. Мы возьмём ваш дизайн, соберём бэкенд на вашем сервере и подключим платёжный сервис.

Стек технологий

Tilda logo

Tilda

n8n logo

n8n

SeaTable logo

SeaTable

Redis logo

Redis

YooKassa

Sendpulse logo

Sendpulse

Zoom

FilePond logo

FilePond

Timeweb

Достигнутые результаты

3

Ролей в системе

14 дней

Срок реализации

за 12+ часов

Полный возврат при отмене

25% / 75%

Деление платежа

Понравился кейс? Запустим ваш проект так же быстро

Тот же подход, та же скорость, то же качество. Заполните бриф или рассчитайте стоимость вашего проекта прямо сейчас.