Бронь встреч и вебхуки

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

Бронь — публичная страница записи на встречу, как cal.com, прямо в вашем Rivo. Раздел в дашборде — Бронирование: вкладки «Встречи», «Типы встреч», «Расписание», «Настройки».

Как это выглядит для гостя

Страница /book/<тип-встречи> на вашем инстансе (например, https://имя.me.rivo.day/book/intro): гость выбирает тип встречи, если их несколько, день и время в своём часовом поясе, указывает имя, почту, Telegram и отвечает на вопросы. После записи — подтверждение с файлом для календаря и ссылкой на Google Meet. Отменить или перенести встречу гость может по ссылке из подтверждения.

Встроить запись в свой сайт — скриптом (data-slug — адрес типа встречи):

<script src="https://имя.me.rivo.day/book/embed.js" data-slug="intro" data-mode="popup"></script>

В режиме popup окно записи открывает любой элемент с атрибутом data-oc-book, в режиме inline форма встаёт в контейнер data-oc-book-inline.

Каждая бронь сама создаёт лида в нетворке, а вам приходит уведомление в Telegram и пуш.

Типы встреч

У типа есть длительность, буферы до и после, минимальное время до записи, место (Google Meet, телефон или своё), вопросы гостю, «требует подтверждения» и цена: сумма, валюта (трёхбуквенный код) и примечание. Пустая цена — встреча бесплатная или «по запросу».

Вебхуки

Вебхук отправляет события брони на ваш сайт или в CRM. Адрес и секрет задаются в Настройки → Сервисы и уведомления → Бронирование: BOOKING_WEBHOOK_URL и BOOKING_WEBHOOK_SECRET.

СобытиеКогда
booking.createdновая бронь
booking.cancelledбронь отменена
booking.rescheduledвстреча перенесена
booking.types_updatedизменились типы встреч (серия правок за пару секунд — одно событие с последней версией)

События брони приходят с данными встречи: id, статус, начало и конец, тип, гость (имя, почта, Telegram, часовой пояс), источник.

Доставка. Успех — любой ответ 2xx в течение 5 секунд. Иначе — повторы через 10 секунд, 1 минуту и 10 минут; после четырёх неудач событие помечается недоставленным, и на экране брони появляется баннер «Вебхук на сайт не доставлен» с кнопкой повтора. Журнал доставок хранится 30 дней.

Заголовки:

  • X-Delivery-Id — один и тот же во всех повторах: по нему отбрасывайте дубли;
  • X-Delivery-Attempt — номер попытки;
  • X-Signature: sha256=<hex> — HMAC-SHA256 сырого тела запроса ключом BOOKING_WEBHOOK_SECRET. Без секрета заголовка нет.

В Облаке адрес вебхука — только https и только публичный, без редиректов.

Публичные ручки брони работают без токена, не больше 30 запросов в минуту с одного адреса. Их описание — в OpenAPI инстанса, см. API-токены и OpenAPI.