Доступно с 1.20.00.
О рабочих процессах CRM и плагинах с точки зрения администратора
Здесь описана техническая часть, как работают плагины рабочих процессов в CRM, их техническую часть и примеры.
Техническая часть
Плагины для рабочих процессов находятся в папке Abills/modules/Crm/Plugins/Workflow
Они формируются как стандартный Perl package module.
Обязательным условием для данного API должен быть стандартный конструктор new($db, $admin, $CONF)
И функция непосредственной активации плагина - execute($lead_id)
Система вызывает функцию execute и передаёт в неё id потенциального клиента.
Также, с объектом, вы имеете доступ к базе, можете производить любые действия.
Также можно подключить любую другую библиотеку, и работать с ней.
Пример
плагин Work.pm
# Название плагина, должно совпадать с названием файла
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;