1) Обов’язковий функціонал чат-бота (Telegram)
1.1 Логіка онбордингу
Вибір міста: Дніпро / Київ / Івано-Франківськ
Вибір локації (динамічний список залежно від міста)
Вибір дати святкування (календар, валідація доступності)
Введення кількості дітей (ціле число, межі керовані в адмінці)
Вибір програми/активності (з коротким описом/тривалістю/базовою ціною)
Вік іменинника/ів (1 або кілька значень)
Передача заявки менеджеру — кнопка: «Продовжити в чаті» або «Запланувати дзвінок» (+ вибір часу/телефону)
1.2 Додатковий функціонал
FAQ (редагований у CMS/адмінці; категорії/пошук по ключових словах).
Вибір програм/активностей з фільтрами (за віком/тривалістю/типом активності).
Підключення менеджера у чат (хендовер режим) або ініціація дзвінка/заявки на зворотний дзвінок.
Сегментація (місто, локація, вік, програма, кількість дітей, статуси ліда, джерело, UTM).
Розсилки:
Автоматичні нагадування за 14 днів до ДН (запит дати ДН дитини на онбордингу + можливість додати кількох дітей).
Регулярні двотижневі розсилки з оферами (лазертаг, пейнтбол, табір «Скаут», квадроцикли тощо); сегментовані за інтересами/містом.
Мультимовність: на старті тільки українська (архітектурно передбачити додавання мов).
Оплати в чат-боті — відсутні на старті (передбачити подальше підключення).
Інтеграція з Kommo CRM (ex-amoCRM) — обов’язково.
Копірайтинг коротких, лаконічних повідомлень (тон: дружній, професійний, без «води», максимум 1–2 емодзі за меседж при доречності).
1.3 UX/тексти/компоненти
Кнопки Reply/Inline, короткі гілки діалогу, валідації полів.
Швидкі відповіді: «Змінити місто», «Інші дати», «Поставити питання», «Менеджер».
Повідомлення про помилки: зрозумілі, без технічного жаргону, з варіантами дій.
Прев’ю обраної програми (фото/опис/ціна/тривалість) — опційно, якщо платформа дозволяє.
2) Інтеграція з Kommo CRM
2.1 Об’єкти та поля (мапінг)
Контакт
Ім’я батька/матері (string)
Телефон (string, E.164; якщо відсутній — запитати)
Telegram username/ID (string)
Email (опціонально)
Лід/Угода
Місто (enum)
Локація (enum)
Дата події (date)
Кількість дітей (int)
Вік іменинника/ів (string/array)
Обрана програма (enum)
Додаткові опції/інтереси (multi-enum)
Бюджет/орієнтовна сума (decimal, якщо вираховується)
Канал: Telegram-бот (string)
UTM (source/medium/campaign/content/term)
Згода на комунікацію (boolean + datetime)
Пріоритет контакту (enum)
Обраний спосіб зв’язку: чат/дзвінок + бажаний час (datetime)
Теги:city:<місто>, loc:<локація>, prog:<код програми>, kids:<N>, birthday:true, lead_src:tg-bot, інтереси.
2.2 Події/автоматизації
При створенні заявки: створити/знайти контакт + створити угоду у відповідній воронці/статусі.
Створити завдання менеджеру («Передзвонити» або «Продовжити в чаті») із крайнім терміном до 1 години.
Вебхуки/інтеграція: отримання статусів із CRM для «пушів» у бот (опційно).
3) Розсилки та нагадування
3.1 Нагадування про ДН
Збір дати народження(нь) дитини(ей) при онбордингу.
За 14 днів — автоматичний персоналізований меседж з пропозицією/знижкою/пакетом.
Якщо дата не вказана — м’який ретрай 1 раз/квартал.
3.2 Регулярні оффер-розсилки
Кожні 2 тижні, окремі сегменти за містом/вподобаннями/віком.
A/B тестування заголовків/пропозицій (де можливо).
Відписка/обмеження частоти (не більше 2–3 широких повідомлень/міс. на користувача).
4) Аналітика та логування
Внутрішня статистика бота: унікальні користувачі, кроки воронки, відмови, CTR кнопок.
Зв’язка з GA4 (через сайт/конструктор) + UTM збереження в CRM.
Логи інтеграцій/помилок (rotate, 30 днів).
5) Вимоги до безпеки та приватності
Обмеження масових розсилок (rate-limit), захист від спаму/ботів.
Відповідність GDPR-подібним вимогам (право на видалення даних — через звернення).
Варіанти реалізації чат-бота
Варіант A: На базі SendPulse (чат-бот конструктор)
Стек: SendPulse Chatbot Builder (Telegram) + інтеграції/вебхуки + Kommo CRM API + міні-бекенд (за потреби).
Що чекаємо від підрядника:
Проєктування діалогових гілок у SendPulse (блок-схеми).
Налаштування змінних/тегів/сегментів/аудиторій.
Інтеграція з Kommo CRM (через вебхуки/сценарії/зовнішній скрипт).
Розсилки: сценарії, сегменти, календар кампаній.
FAQ: структура + CMS-редагування (в межах можливостей платформи).
Збір дати ДН + тригери за 14 днів.
Адмін-інструкції (відео + PDF).
Тестування, реліз, гарантія.
Плюси: швидкий старт, менше коду, просте керування розсилками.
Мінуси/обмеження: лімітовані кастомні інтеграції/логіка; залежність від тарифів SendPulse; складні калькуляції — краще винести на сайт.
Конструктор на сайті: окремий веб-модуль (див. розд. 6) з інтеграцією в CRM та оплатами.
Варіант B: Самописне рішення
Стек (рекомендовано):
Бекенд: Node.js (NestJS) або Python (FastAPI).
Бот: node-telegram-bot-api/Telegraf або aiogram.
БД: PostgreSQL/MySQL.
Адмін-панель: React/Vue + RBAC.
Інтеграції: Kommo CRM API, платіжний шлюз (для сайту), GA4.
Хостинг: VPS (Ubuntu), Docker, Nginx, HTTPS (Let’s Encrypt).
Що чекаємо від підрядника:
Повна реалізація логіки бота з кастомними сценаріями, кешуванням, валідаціями.
Гнучка система довідників (міста/локації/програми/слоти) у БД.
Модуль розсилок і тригерів (ДН, 2-тижневі оффери), throttle/blacklist.
Розширена аналітика/логи + вебхуки з CRM (двостороння взаємодія, якщо потрібно).
Повний «Конструктор» на сайті (розд. 6) у тому ж стеку, єдина БД/адмінка.
Unit/інтеграційні тести, CI/CD, документація.
Плюси: необмежена гнучкість, єдина адмінка для бота й конструктора, масштабованість.
Мінуси: довший термін, більша вартість підтримки.
Нефункціональні вимоги
Продуктивність: 1000 одночасних діалогів без деградації (самописний), для SendPulse — відповідно до тарифів.
Відмовостійкість: автоперезапуск, моніторинг (Uptime/Healthcheck).
Бекапи: БД щоденно (зберігання 14 днів), конфіги — Git.
Документація: схема БД, API, інструкції контент-менеджеру та менеджеру з продажів.
Ролі та доступи
Адмін: довідники, ціни, розсилки, розклади, промокоди.
Контент-менеджер: FAQ, тексти, зображення.
Сейлз/ПМ: перегляд заявок/чати (де доречно), експорт.
Передача матеріалів від Замовника
Брендбук (логотипи, палітра, шрифти).
Перелік міст/локацій, фо