Бронювання в Sviteya — це блок воронки «Бронювання», а не окремий сервіс запису. Людина обирає час прямо в боті, бот звіряється з вашим Google Calendar і показує лише реально вільні слоти. На підтверджений запис створюється подія в календарі та, якщо підключено Zoom, зустріч у Zoom.
Що потрібно для налаштування
- Google-акаунт із календарем, за яким ведеться ваша зайнятість
- Акаунт Zoom — якщо потрібні онлайн-зустрічі
- Воронка, у яку буде вбудований блок бронювання
Google Meet не підтримується: відео-зустрічі створюються в Zoom.
Крок 1. Підключення Google Calendar
- Відкрийте розділ «Інтеграції», група «Бронювання»
- Натисніть «Підключити Google Calendar» і дайте дозвіл на перегляд зайнятості та створення подій
- Щоб підключити ще один календар (наприклад, іншого спеціаліста), натисніть «Додати Google-акаунт» і увійдіть іншим Google-акаунтом
Бот перевіряє зайнятість запитом «вільно/зайнято»: він бачить, що час зайнятий, але не бачить змісту ваших подій. Використовується основний календар Google-акаунта: події з додаткових календарів не враховуються. Якщо підключено кілька Google-акаунтів, у кожному блоці бронювання обирається, чий календар він використовує.
Крок 2. Підключення Zoom
- У розділі «Інтеграції» знайдіть налаштування Zoom
- У Zoom створіть свій застосунок: marketplace.zoom.us → Develop → Build App → Server-to-Server OAuth
- Вставте три значення: Zoom Account ID, Zoom Client ID і Zoom Client Secret
Після цього на кожен підтверджений запис створюється окрема зустріч від вашого акаунта Zoom. Якщо підключено кілька Zoom, у блоці бронювання обирається потрібне підключення.
Якщо зустрічі офлайн — Zoom можна не підключати: статус показує «Zoom не налаштований (зустрічі будуть без відео-лінка)», а в календарі створиться звичайна подія.
Крок 3. Налаштування блоку «Бронювання»
Додайте блок у воронку і задайте параметри. Усі вони належать цьому конкретному блоку, тому різні послуги можуть мати різні правила.
| Параметр | Що означає | Приклад |
|---|---|---|
| Назва зустрічі | як подія називається в календарі (до неї додається ім’я контакта) | «Консультація» |
| Текст запрошення | повідомлення зі списком слотів; за замовчуванням «Обери зручний час» | необов’язково |
| тривалість, хв | скільки триває зустріч (не менше 10; за замовчуванням 30) | 30, 60 |
| буфер, хв | пауза між слотами (за замовчуванням 15) | 10 |
| робочі години | від і до (за замовчуванням 10:00–18:00) | 10:00–18:00 |
| дні тижня | у які дні відкритий запис (за замовчуванням Пн–Пт) | Пн–Пт |
| шукати час з … по … день | вікно днів від сьогодні, обидва краї включно: 0 — сьогодні, 1 — завтра (за замовчуванням з 0 по 7) | з 0 по 14 |
| показати слотів | скільки слотів показати (за замовчуванням 8, у Telegram максимум 16, у WhatsApp до 9) | 8 |
| по два в ряд | слоти по два кнопки в ряд (для каналів, де є ряди кнопок) | — |
| часовий пояс | пояс, у якому рахуються слоти, з коректним переходом на літній час; за замовчуванням — пояс бота | Europe/Kyiv |
Як рахуються слоти. Крок сітки — це тривалість плюс буфер: при тривалості 30 хвилин і буфері 15 слоти йдуть кожні 45 хвилин від початку робочого дня. Слоти, що перетинаються із зайнятим часом у календарі, не показуються. Слот має повністю вміститись у робочі години. Слоти не пропонуються ближче ніж за 2 години від поточного моменту (цей мінімальний запас у редакторі не налаштовується; його можна змінити, попросивши Claude через MCP).
Пізніші дні. Кнопки «ще» немає. Якщо людині не підійшли слоти, вона натискає «Жоден час не підходить», а ви ведете цей вихід у наступний блок бронювання з пізнішим вікном (наприклад, з 7 по 14 день).
Поля контакта. У блоці можна вказати:
- zoom-лінк у поле — куди зберегти посилання на зустріч, щоб підставити його в повідомлення;
- email гостя з поля — тоді Google надішле гостю запрошення на пошту;
- час зустрічі у поле — куди зберегти обраний час: його можна підставити в текст і використати для нагадувань.
Підтвердження. Після вибору слота бот надсилає текст підтвердження ({{time}} підставляє обраний час) і кнопки «Так, бронюй» та «Обрати інший час» (підписи можна змінити).
Виходи блоку
Бронювання має кілька виходів, і до кожного підключається своя гілка воронки:
- заброньовано — людина підтвердила слот: подія в календарі й Zoom вже створені;
- час не підійшов — людина натиснула «Жоден час не підходить»;
- немає слотів — вільного часу у вікні пошуку не знайшлося;
- не відповіли за … — людина не обрала слот за заданий час (0 — чекати безстроково).
Якщо слот встигли зайняти між вибором і підтвердженням, бот надішле ваше повідомлення «якщо слот щойно зайняли» і покаже оновлені вільні слоти. Захист від подвійного бронювання працює для всіх клієнтів одночасно.
Крок 4. Що поставити навколо блоку
Бронювання рідко буває окремим кроком. Типова конструкція:
До запису:
- коротке пояснення, як проходить зустріч і скільки триває
- вибір послуги або майстра, якщо їх кілька, — окрема гілка на кожен календар
Після вибору слота (вихід «заброньовано»):
- оплата — повна або передоплата: кнопка оплати в повідомленні (див. Підключення оплат: WayForPay і Stripe)
- анкета — кілька питань, відповіді лягають у поля контакта
- підтвердження з датою, часом і посиланням (змінні з полів «час зустрічі» і «zoom-лінк»)
Нагадування:
- пауза «до дати» бере значення поля «час зустрічі» і «зсув від дати» з мінусом: −1 день — за добу до зустрічі, −1 година — за годину. Далі йде повідомлення з кнопками, наприклад «Буду» і «Перенести». Якщо момент нагадування вже минув, прохід іде виходом «дата вже минула» або, якщо його не підключено, одразу далі
- якщо вказано «email гостя з поля», Google сам надсилає запрошення на пошту
Після зустрічі:
- подяка й прохання про відгук
- затримка на ваш цикл і пропозиція наступного візиту
Скасування і перенесення
Скасування — це дія у воронці «скасувати бронювання». Поставте її після кнопки в нагадуванні:
- подія в Google Calendar видаляється
- зустріч у Zoom видаляється
- слот звільняється й одразу доступний іншим
- поля «час зустрічі» і «zoom-лінк» очищуються
- людині можна запропонувати обрати новий час: після дії поверніть гілку в блок бронювання
Увага: дія скасовує всі активні майбутні зустрічі цього контакта.
Кнопка «Перенести» в нагадуванні за добу — це та сама дія «скасувати бронювання» з поверненням у блок бронювання.
Ви також можете скасувати або перенести зустріч вручну в картці контакта (блок «Зустріч»): кнопки «Скасувати зустріч» і «Перенести на цей час», з можливістю повідомити контакта. Якщо новий час перетинається з іншою подією в календарі, сервіс попередить і запитає підтвердження.
Кілька майстрів або спеціалістів
Кожен майстер — свій Google-акаунт (календар) і свій блок бронювання зі своїми налаштуваннями.
Схема воронки:
- Повідомлення «Оберіть майстра» з кнопками
- Кожна кнопка веде у свою гілку
- У гілці — блок бронювання з календарем саме цього майстра (вибір Google-акаунта в блоці)
- Далі гілки сходяться в спільне підтвердження й нагадування
Так само робиться вибір послуги з різною тривалістю або вибір «онлайн / офлайн».
Часті питання
Бот показує зайнятий час.
Перевірте, що вибрано правильний Google-акаунт у блоці і що подія лежить в основному календарі цього акаунта, а не в додатковому календарі.
Слотів немає взагалі.
Найчастіші причини: вікно «шукати час з … по …» менше, ніж ви думаєте; сьогодні неробочий день за налаштуваннями; мінімальний запас у 2 години відрізає найближчі години; робочі години коротші за тривалість зустрічі.
Клієнти з іншої країни приходять не в той час.
Слоти рахуються у вказаному часовому поясі. Якщо аудиторія міжнародна, вкажіть у тексті пояс явно.
Потрібен Google Meet.
Не підтримується — відео-зустрічі створюються в Zoom.
Чи можна обмежити запис лише для своїх.
Так, умовою у воронці: блок бронювання показується лише тим, у кого є потрібний тег або хто оплатив.