
Форми ICanUp стали частиною єдиного центру комунікацій
ICanUp отримав багаторазові форми з динамічними полями, серверною перевіркою та захистом від спаму. Головне архітектурне рішення - звернення з форм стають розмовами й повідомленнями у спільній системі комунікацій, а не потрапляють до окремого сховища.
Коли в ICanUp зʼявилися сторінки «Послуги» та «Про авторку», наступним природним кроком стала можливість не лише читати інформацію, а й одразу звернутися.
Але замість кількох окремих контактних форм для різних сторінок у проєкті була створена одна багаторазова система форм.
Ту саму основу можна використовувати для звернення щодо проєкту, запиту на послугу, підтримки або інших майбутніх сценаріїв.
Одна форма може використовуватися в різних місцях
Багаторазові форми
Динамічні поля
Порядок полів
Дві мови
Форма стала звичайним контентним блоком
Налаштовану форму можна вставити в будь-яку Page через стандартний механізм ContentBlocks.
Сам блок зберігає лише посилання на форму та налаштування її представлення. Поля, переклади й правила не копіюються в кожну сторінку.
Тому зміна форми в адмінпанелі автоматично застосовується до всіх сторінок, де вона використовується.
Для представлення передбачені різні варіанти: звичайна картка, композиція з медіа та варіант із фоновим зображенням. Розташування полів і кнопки також можна налаштовувати на рівні блока.
Надсилання перевіряється на сервері
Динамічна перевірка
Зайві поля відхиляються
Захист від спаму
Мінімум зайвих даних
Звернення переходить у спільний Communication domain
Після успішної перевірки даних ICanUp не створює окремий запис із копією повідомлення у спеціальній таблиці Forms.
Система створює або використовує відповідну conversation, а фактичне звернення стає Message у чинній системі комунікацій.
Разом із conversation зберігається контрольований контекст: яка форма була використана, з якої сторінки прийшло звернення, якою мовою користувався відвідувач і до якого типу звернення воно належить.
Завдяки цьому ті самі механізми непрочитаних повідомлень, оновлень у реальному часі, прав доступу та подальшої роботи із розмовою можна використовувати без дублювання.
Один центр для різних типів звернень
Звернення щодо проєкту
Послуги
Підтримка
Спільний список
Контекст є частиною розмови, а не повідомлення
Для Communication Center важливо знати не лише текст повідомлення, а й його походження.
Тому conversation має окрему модель джерела та контексту. Вона дозволяє відрізнити звичайний чат, звернення з форми, запит щодо послуги, підтримку або інший тип комунікації.
При цьому тіло повідомлення не дублюється, а новий сценарій не потребує створення ще однієї таблиці розмов або окремої адмін-сторінки.
Повний шлях перевіряється наскрізно
Функціонал перевіряється не лише окремими компонентами.
Автоматичні тести покривають повний маршрут: створення та налаштування Form → вставлення на Page → публічне відображення → перевірка даних → надсилання → conversation → Message → відображення в Communication Center.
Окремо перевіряються гостьові й авторизовані звернення, неактивні форми, захист від зловживань, права доступу та відсутність дубльованого сховища повідомлень.
