Активности CRM / Обработка событий в активностях CRM

Обработка событий в активностях CRM

Для активностей CRM можно создавать обработчики событий, которые при помощи скриптов или бизнес-процессов будут запускать определённые действия в системе после того, как события произошли.

Например, при создании активности Вебинар обработчик события запустит процесс, в ходе которого исполнителю придёт задача сформировать и согласовать с руководителем план проведения вебинара.

Настройка обработчика событий осуществляется в рамках создания пользовательского модуля. В обработчик можно передавать контекст активности CRM, а также ID задачи и ответственного за её исполнение пользователя.

начало внимание

Создавать обработчики событий могут только пользователи, входящие в группу Администраторы.

конец внимание 

Создать обработчик событий

Разберём создание обработчика событий на примере.

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

Для этого:

  1. Перейдите в раздел Администрирование > Модули и создайте пользовательский модуль.
  2. В настройках модуля добавьте бизнес-процесс или скрипт, который будет выполняться при достижении события.

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

crm-events-processing-1

  1. Перейдите на вкладку Обработка событий.
  2. Нажмите кнопку +Обработчик и установите параметры:

crm-events-processing-2

  • Название* — введите название для обработчика событий, например, Новый вебинар;
  • Домен события — задайте область, события в которой будет отслеживать обработчик. Для обработки событий в активностях CRM выберите Задачи;
  • Событие — укажите событие, при котором будет запускаться обработчик: Отмена задачи, Завершение задачи, Создание задачи, Обновление задачи. В данном случае выберите Создание задачи;
  • Фильтр типа задачи — выберите тип активности CRM, который будет обрабатываться: Все задачи CRM, Звонок, Письмо, Вебинар, Встреча. Для нашего примера выберите Вебинар;
  • Тип обработчика* — выберите действие, которое будет совершаться при выполнении события: Запуск скрипта, Запуск процесса, Передача сообщения в сервис (доступно только для поставки ELMA365 On-Premises). В нашем случае нужно выбрать Запуск процесса.
  1. Нажмите кнопку Создать.
  2. На открывшейся странице настроек обработчика событий укажите процесс или сценарий, созданный внутри пользовательского модуля, который будет запускаться при выбранном событии. В нашем случае укажите созданный на шаге 2 бизнес-процесс.

crm-events-processing-3

  1. На верхней панели страницы нажмите Сохранить, а затем Опубликовать, чтобы активировать обработчик событий.
  2. Вернитесь на основную страницу модуля и включите его.

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

Получение данных из активности CRM

При создании обработчика событий вы можете использовать данные из связанного с активностью CRM элемента. Например, передать в бизнес-процесс или сценарий контекст активности, а также ID задачи и пользователя, ответственного за её выполнение.

Ниже приведён пример функции получения из JSON-файла данных о задаче и элементе, по которому она поставлена. Полученные данные можно обрабатывать в рамках бизнес-процесса, который запускается обработчиком событий.

В данном примере обработчик событий запускает процесс после создания активности CRM типа Письмо.

Разместите на поле для моделирования бизнес-процесса блок Сценарий сразу после стартового события. Создайте в блоке новую функцию со следующим содержанием:

async function afterInit(): Promise<void
{
    /*Context.data.element — переменная из контекста бизнес-процесса с типом Произвольное приложение, в которую в рамках настройки обработчика должен быть записан элемент, связанный с активностью CRM*/
    const element = await Context.data.element!.fetch();
 
    /*element.code — код элемента, по которому можно определить тип связанного элемента (сделка, лид и т. д.), чтобы запускать процесс только для элемента определённого типа*/
    / Чтобы запускать процесс только для определённого типа (например, только для сделок), рекомендуется после блока запуска сценария afterInit разместить шлюз, проверяющий значение переменной, содержащей код элемента*/
    Context.data.element_code = element.code;
 
    /*Context.data.event — переменная из контекста бизнес-процесса с типом Произвольное приложение, в которую в рамках настройки обработчика должен быть записан JSON-файл с данными об активности CRM*/
    /*event.originalPerformers[] — id пользователя, назначенного ответственным за активность CRM*/
    const performer: string = Context.data.event.originalPerformers[0];
 
    /*Ищем ответственного пользователя по ID и записываем его в переменную Context.data.performer из контекста бизнес-процесса с типом Пользователи*/
    Context.data.performer = await System.users.search().where(f => f.__id.eq(performer)).first();
}