Web-to-Case
Glossary Item Box
Общие сведения
Функциональность Web-to-Case реализует возможность создания обращений в bpm’online посредством заполнения необходимых полей формы, встроенной на сторонний сайт — лендинга.
Пакет ProductCore зависит от пакета WebForms, в котором и содержится функциональность Web-to-Case. Это означает, что лендинги могут использоваться во всех продуктах. Преднастроенная "коробочная" функциональность реализована в продуктах service enterprise, customer center, marketing и всех бандлах, включающих эти продукты.
Подробнее о лендингах можно узнать из документации соответствующих продуктов, например, из статьи "Раздел [Лендинги]" документации bpm'online marketing.
Настройку Web-to-Case можно произвести, воспользовавшись интерфейсом системы, но для внедрения полученного JavaScript-скрипта на сторонний сайт необходимы общие базовые навыки Web-разработчика.
Базовая функциональность Web-to-Case без использования программирования в bpm’online (но используя небольшие доработки на стороннем сайте) позволяет настроить следующее:
- Внешний вид формы и ее стили.
- Список дополнительно передаваемых полей.
- Список подстановочных значений по умолчанию для полей, не выведенных в форму.
- Список доменов, из которых будет возможна регистрация обращения по каждому лендингу.
- Адрес перехода, на который будет переадресован пользователь после отправки формы.
- JavaScript-обработчики событий успешной и неуспешной регистрации обращения.
- Дополнительные лендинги, каждый из которых может быть сконфигурирован по-своему, что дает возможность различить обращения, созданные с разных сайтов.
При помощи минимальных проектных доработок можно настроить предварительный обработчик регистрации обращения через Web-to-Case, в котором можно выполнить проверку данных, их коррекцию, создание связанных сущностей и т. п. В базовой поставке bpm'online в обработчике регистрации обращения через Web-форму настроено автоматическое создание контакта для регистрируемого обращения.
Логика автоматического заполнения полей для обращения
При регистрации обращения через Web-форму предлагаются для заполнения следующие поля: [ФИО], [Email], [Телефон], [Тема обращения]. Значение поля [Тема обращения] будет передаваться в новое обращение.
По сочетанию полей [ФИО], [Email] и [Телефон] в bpm’online идентифицируется контакт. Поиск происходит следующим образом:
- Если существует контакт, у которого поля [ФИО], [Email] и [Телефон] совпадают с заполненными данными формы, то он подставляется в создаваемое обращение.
- Иначе, если есть контакт, у которого совпадают только поля [ФИО] и [Email], то он подставляется в создаваемое обращение.
- Иначе, если есть контакт, у которого совпадает только поле [Email], то он подставляется в создаваемое обращение.
- Иначе создается новый контакт, и у него заполняются поля [ФИО], [Email] и [Телефон]. Созданный контакт подставляется в регистрируемое обращение.
Если по одному правилу найдено несколько контактов, то в качестве контакта обращения будет взят первый найденный. Также автоматически заполнится дата регистрации обращения (колонка RegisteredOn) текущей датой и временем.
Рекомендации для выполнения проектных решений
Если необходима кастомизация функциональности Web-to-Case, проще всего руководствоваться существующим базовым решением как примером.
Для выполнения проектного решения рекомендуется выполнить следующие действия:
- Создать схему страницы, унаследованную от CaseGeneratedWebFormPageV2. Страница не должна быть замещающей.
- Добавить запись нового типа лендинга в таблицу LandingType и локализацию в таблицу SysLandingTypeLcz.
- Зарегистрировать стандартным образом типизированную страницу, созданную на первом шаге (значение типа — новое созданное).
- Если необходима предварительная обработка данных формы до сохранения записи в базе данных, то нужно создать класс, реализующий интерфейс IGeneratedWebFormPreProcessHandler. Этот класс представляет собой предварительный обработчик регистрации обращения. Также нужно реализовать метод Execute(). Этот метод — точка входа в обработчик. В нем реализуются все вспомогательные действия. В качестве примера можно взять схему WebFormCasePreProcessHandler.
- Если необходимо выполнить действия после сохранения обращения в базу данных, то нужно создать класс, реализующий интерфейс IGeneratedWebFormPostProcessHandler. Этот класс представляет собой предварительный обработчик регистрации обращения. Далее нужно реализовать метод Execute(), в котором выполнить необходимые действия.
- Если созданы обработчики регистрации обращения, то нужно зарегистрировать их в таблице WebFormProcessHandlers. В качестве примера регистрации можно взять уже существующую запись.
- Отредактировать шаблон скрипта, формирующего конфигурационный JavaScript-объект лендинга, и поместить в локализируемую строку ScriptTemplate созданной страницы. Аналогичный скрипт указать для всех используемых локализаций. Пример скрипта можно найти в схеме CaseGeneratedWebFormPageV2.
- Привязать все созданные данные к пакету.