Доступно с 1.20.00.
О рабочих процессах CRM и плагинах с точки зрения администратора
Здесь описана техническая часть, как работают плагины рабочих процессов в CRM, их техническую часть и примеры.
Техническая часть
Плагины для рабочих процессов находятся в папке Abills/modules/Crm/Plugins/Workflow
Они формируются как стандартный Perl package module.
Система автоматически сканирует данную папку на предмет валидных модулей.
Обязательным условием для данного API должен быть стандартный конструктор new($db, $admin, $CONF
)
И функция непосредственной активации плагина - execute($lead_id)
Система вызывает функцию execute и передаёт в неё id потенциального клиента.
Также, с объектом, вы имеете доступ к базе, можете производить любые действия.
Также можно подключить любую другую библиотеку, и работать с ней.
Пример
# Название плагина, должно совпадать с названием файла package Crm::Plugins::Workflow::Work; use strict; use warnings FATAL => 'all'; =head1 NAME Crm::Plugins::Workflow::Work =head2 SYNOPSIS Plugin for test =cut my $Crm; use Abills::Base qw(in_array); use Crm::db::Crm; #********************************************************** =head2 new($db,$admin,\%conf) =cut #********************************************************** # Стандартный конструктор sub new { my $class = shift; my ($db, $admin, $CONF) = @_; my $self = { db => $db, admin => $admin, conf => $CONF, }; bless($self, $class); # Инициализируем объект Crm # Других объектов - рекомендуем делать здесь же, в конструкторе. $Crm //= Crm->new(@{$self}{qw/db admin conf/}); return $self; } #********************************************************** =head2 execute($lead_id) =cut #********************************************************** # Обязательная функция плагина sub execute { my $self = shift; my $lead_id = shift; my $lead = $Crm->crm_lead_info({ ID => $lead_id }); my $step_id_hash = $Crm->crm_step_number_leads(); # Исполняем любое нужное вам действие # Например, мы меняем информационное поле _IS_STARTED на позитивное значение. $Crm->crm_lead_change({ ID => $lead_id, _IS_STARTED => 1 }); # Cоздаём комментарий. # Рекомендуем вам при каждой активации плагина создавать комментарий с нужным описанием # Чтобы потом, соответственно, понимать что происходило с данным потенциальным клиентом. $Crm->progressbar_comment_add({ LEAD_ID => $lead_id, STEP_ID => $step_id_hash->{$lead->{CURRENT_STEP}} || 1, MESSAGE => 'Message created from the test plugin', DATE => "$main::DATE $main::TIME" }); } 1;