Форми ICanUp стали частиною єдиного центру комунікацій
Продукт

Форми ICanUp стали частиною єдиного центру комунікацій

ICanUp отримав багаторазові форми з динамічними полями, серверною перевіркою та захистом від спаму. Головне архітектурне рішення - звернення з форм стають розмовами й повідомленнями у спільній системі комунікацій, а не потрапляють до окремого сховища.

Коли в ICanUp зʼявилися сторінки «Послуги» та «Про авторку», наступним природним кроком стала можливість не лише читати інформацію, а й одразу звернутися.

Але замість кількох окремих контактних форм для різних сторінок у проєкті була створена одна багаторазова система форм.

Ту саму основу можна використовувати для звернення щодо проєкту, запиту на послугу, підтримки або інших майбутніх сценаріїв.

Одна форма може використовуватися в різних місцях

Багаторазові форми

Форма існує як окрема керована сутність і може бути вставлена на кілька сторінок без копіювання її полів.

Динамічні поля

Адміністратор може додавати текстові поля, великі текстові поля, email, списки вибору та прапорці.

Порядок полів

Поля можна впорядковувати, а форма відображає їх у визначеній послідовності.

Дві мови

Назви, підказки, варіанти вибору, текст кнопки та повідомлення після успішного надсилання підтримують українську й англійську.

Форма стала звичайним контентним блоком

Налаштовану форму можна вставити в будь-яку Page через стандартний механізм ContentBlocks.

Сам блок зберігає лише посилання на форму та налаштування її представлення. Поля, переклади й правила не копіюються в кожну сторінку.

Тому зміна форми в адмінпанелі автоматично застосовується до всіх сторінок, де вона використовується.

Для представлення передбачені різні варіанти: звичайна картка, композиція з медіа та варіант із фоновим зображенням. Розташування полів і кнопки також можна налаштовувати на рівні блока.

Надсилання перевіряється на сервері

Динамічна перевірка

Правила перевірки формуються з актуального визначення полів, а не лише з обмежень у браузері.

Зайві поля відхиляються

Публічний запит не може непомітно додати дані, яких немає у визначенні конкретної форми.

Захист від спаму

Обмеження частоти запитів і легкий антибот-захист зменшують автоматизовані небажані відправлення.

Мінімум зайвих даних

До звернення додається лише необхідний контекст сторінки, мови та користувача без збереження всього необробленого запиту.

Звернення переходить у спільний Communication domain

Після успішної перевірки даних ICanUp не створює окремий запис із копією повідомлення у спеціальній таблиці Forms.

Система створює або використовує відповідну conversation, а фактичне звернення стає Message у чинній системі комунікацій.

Разом із conversation зберігається контрольований контекст: яка форма була використана, з якої сторінки прийшло звернення, якою мовою користувався відвідувач і до якого типу звернення воно належить.

Завдяки цьому ті самі механізми непрочитаних повідомлень, оновлень у реальному часі, прав доступу та подальшої роботи із розмовою можна використовувати без дублювання.

Один центр для різних типів звернень

Звернення щодо проєкту

Форма на сторінці «Про авторку» дозволяє написати щодо нового проєкту, ідеї або співпраці.

Послуги

Сторінка «Послуги» може приймати окремі запити щодо проєктів і послуг через ту саму Form architecture.

Підтримка

Запити підтримки використовують ту саму форму й систему повідомлень, але мають власний тип і зрозумілий контекст.

Спільний список

Адміністратор бачить звернення разом із іншими розмовами та може відфільтрувати їх за джерелом.

Контекст є частиною розмови, а не повідомлення

Для Communication Center важливо знати не лише текст повідомлення, а й його походження.

Тому conversation має окрему модель джерела та контексту. Вона дозволяє відрізнити звичайний чат, звернення з форми, запит щодо послуги, підтримку або інший тип комунікації.

При цьому тіло повідомлення не дублюється, а новий сценарій не потребує створення ще однієї таблиці розмов або окремої адмін-сторінки.

Повний шлях перевіряється наскрізно

Функціонал перевіряється не лише окремими компонентами.

Автоматичні тести покривають повний маршрут: створення та налаштування Form → вставлення на Page → публічне відображення → перевірка даних → надсилання → conversation → Message → відображення в Communication Center.

Окремо перевіряються гостьові й авторизовані звернення, неактивні форми, захист від зловживань, права доступу та відсутність дубльованого сховища повідомлень.