Особистий кабінет OneBox CRM
+38 (095)-163-44-04
info.prostoshop@gmail.com

Менеджер клієнта

Автоматическое действие Превратить письмо в процесс (PREG шаблон)

 Аннотация

Выполнение данного автоматического действия предусмотрено один раз в минуту.

Пройдемся по каждому полю:

  • Email получателя - укажите в это поле адрес почтового ящика с которого нужно брать письма и превращать их в задачи;
  • Email отправителя - внесите email-адрес в это поле, что бы создавались задачи только исходя из писем с указанного вами email;
  • Родительский проект - укажите ID родительского проекта к которому будут относиться задачи;
  • На кого назначить задачу - назначте ответственное лицо для создаваемых задач;
  • Автор задач, на случай если контакт не определен - на случай, если контакт не будет определен в системе - укажите лицо, которое будет автором задачи;
  • Бизнес-процесс - укажите бизнес-процесс. В зависимости от указанного, автодействие будет понимать что именно нужно создать - заказ или задачу;
  • Проверять на создание задач - не отмечайте данное поле, что бы действие работало по принципу: одно письмо - одна задача. Иначе, система оставит соответствующий комментарий в уже существующей задаче.
  • Обработчик  - укажите, если это нужно, имя класса-обработчика для дальнейшей работы с задачей;
  • PREG-шаблон для данных о клиенте в заказе - укажите, следуя инструкциям в действии, специальный PREG-шаблон построенный на основе регулярных выраженийчто бы действие могло распознавать данные о клиенте в письме.
  • PREG-шаблон для данных о продуктах в заказе укажите, следуя инструкциям в действии, специальный PREG-шаблон построенный на основе регулярных выраженийчто бы действие могло распознавать данные о продуктах в письме.

 

Что такое PREG-шаблоны для данных о клиенте и продукте?

Когда автоматическое действие предусматривает создание заказов, то актуальнейшим вопросом было и есть - "Как подтянуть данные о клиенте и данные о заказываемых им продуктах?".

На этот случай мы и создали два PREG-поля, регулярные выражения которых разпознают нужную нам информацию в письме (Рисунок 1).


Рисунок 1 - Автоматическое действие "Превратить письмо в процесс"

 

 

Как работает PREG-шаблон

Если Вы впервые видите этот ужас, который исходит от полей для ввода PREG-шаблонов и еще не испугались, то выходов есть два: выучить или обратиться к компетентному в этом деле лицу =) 

В случае, когда требуется распознать данные об клиенте или перенести массив продуктов из письма нам нужны для этого две вещи: 

  1. Точный пример тела письма.
  2. Уверенные знания регулярных выражений, и умение оперировать ими.

В данном автоматическом действии мы видим, что регулярным выражением определяется клиент для которого будет создан заказ, и определяются продукты, которые заказал клиент.

 

Шаг 1

Находим оригинальный пример письма (Проще всего - это найти его в базе данных проекта, в таблице ShopEvent. Так-же, вы можете активировать галочку в действии "Использовать для парсинга оригинальное содержимое письма (attachment)", далее непосредственно в событии нажать на кнопку "Просмотр", что приведет к открытию оригинального HTML-содержимого письма с примером.)

 

Шаг 2

Открываем онлайн ресурс для работы с регулярными выражениями, вставляем туда наш пример письма.

Ищем нужную нам информацию посредством написания PREG-шаблона в поле REGULAR EXPRESSIOТN (Примеры как это делается поданы на рисунках 2, 3):

Важно! На этом примере показан способ построения регулярного выражения не предусматривающий использование HTML-текста письма.

 

Рисунок 2 - Результат preg-поиска данных о клиенте

 

 

Важно! На этом примере показан способ построения регулярного выражения с использованием галочки "Использовать для парсинга оригинальное содержимое письма (attachment)".

 

Рисунок 2.1 - кнопка "Просмотр" в событиях

 

Рисунок 2.2 - Нам открылось красивое HTML-письмо, далее жмем CTRL+U.

 

 

 

Рисунок 2.3 - Результат нажатия CTRL+U - нашему взору предоставляется исходные HTML код письма.

 

 

Рисунок 2.4 - Результат preg-поиска данных о клиенте (html-содержимое)

 

Рисунок 2.5 - Готовое preg-выражение, с подставленными переменными в поле поиска данных о клиенте

 

 

Рисунок 3 - Preg-поиск данных о продуктах в письме

 

В случае с продуктами мы видим, что вместе с продуктами ищется множество некорректной информации(ввиду несовершенства самого регулярного выражения либо не предсказуемости размещения данных в письме),

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

 

По надобности используйте PREG-шаблон для дополнительных данных в процессе, что позволит вам указать любое другое регулярное выражение для поиска дополнительных данных. Таких полей можно добавить любое количество, используя кнопку "Добавить дополнительный PREG-шаблон":

 

Рисунок 4 - Поля Preg-поиска дополнительных данных

 

 

Модификаторы шаблонов (поле modifier), неотъемлимая часть шаблона регулярного выражения, максимально исчерпывающе читать здесь,

ниже предоставлено краткое их описание:

g - Глобальный поиск

i - Регистронезависимый шаблон

m - Многострочный текст

s - Считать текст одной строкой

x - Разрешить комментарии 

и - пробелы в шаблоне

e - Выполнение подстановки

U - Нежадный шаблон

 

 

Шаг 3

Теперь, после того как ми построили регулярное выражение для поиска информации, следует заменить все выражения вида "(.+?) или (.*?)"  на выражения, которые используются авто-действием, а именно:

 

КЛИЕНТ В ПИСЬМЕ:

  • [client_name_last] - шаблон, который укажет действию, что на данном месте должна присутствовать Фамилия клиента
  • [client_name_first] - шаблон, который укажет действию, что на данном месте должно присутствовать Имя клиента
  • [client_name_middle] - шаблон, который укажет действию, что на данном месте должно присутствовать Отчество клиента
  • [client_city] - шаблон, который укажет действию, что на данном месте должен присутствовать Город клиента
  • [client_address] - шаблон, который укажет действию, что на данном месте должен присутствовать Адрес клиента
  • [client_email] - шаблон, который укажет действию, что на данном месте должен присутствовать E-mail клиента
  • [client_phone] - шаблон, который укажет действию, что на данном месте должен присутствовать Телефон клиента

 

ПРОДУКТ В ПИСЬМЕ:

  • [product_name] - шаблон, который укажет действию, что на данном месте должно присутствовать наименование продукта
  • [product_price] - шаблон, который укажет действию, что на данном месте должна присутствовать цена продукта
  • [product_count] - шаблон, который укажет действию, что на данном месте должно присутствовать количество продукта
  • [product_articul] - шаблон, который укажет действию, что на данном месте должен присутствовать артикул продукта
  • [product_code1c] - шаблон, который укажет действию, что на данном месте должен присутствовать code1c продукта 

 

ДОПОЛНИТЕЛЬНЫЕ ДАННЫЕ В ПИСЬМЕ:

  • [delivery_name] - Способ доставки (название)
  • [payment_name] - Способ оплаты (название)
  • [custom_info] - Доп. информация, которую вывести в описание процесса
  • [delivery_address] - адрес (одной строкой)
  • [delivery_country] - страна
  • [delivery_region] - область
  • [delivery_district] - район
  • [delivery_city] - название населенного пункта
  • [delivery_street] - название улицы
  • [delivery_street_number] - номер дома
  • [delivery_apartment] - номер квартиры
  • [delivery_number_post] - номер отделения

Важно! Добавление конструкции #tocomment# к переменным позволит внести в описание процеса данные,

которые попадут в переменную (при этом, предыдущее описание будет утеряно). (Для переменной [custom_info], данная конструкция не актуальна).

Пример: [#tocomment#client_address], [#tocomment#product_name], [#tocomment#delivery_name] и тд.