Бизнес-процесс: как поставить напоминание для сделки
Очень востребованный сценарий бизнес-процесса: поставить напоминание для сделки о каком-либо событии, дата и время которого указаны в сделке. Причем напоминание в виде уведомления или поставленной задачи нужно сделать именно на эту дату и время, либо за несколько дней/часов до него.
Например: в поле "Дата/время следующего взаимодействия" менеджер указывает, соответственно, дату и время, когда в следующий раз необходимо связаться с клиентом. В эту дату и время нужно напомнить менеджеру о необходимости связаться с клиентом с помощью уведомления или задачи.
В автоматизации такого процесса есть 3 интересных момента, которые важно учесть и которые вызывают сложности при настройке:
Небольшое отступление: мне больше нравится вариант оформлять все взаимодействия с клиентами в виде заранее назначенных дел, звонков и встреч, даже если это взаимодействие планируется только через пол года или год. При этом в событиях указывать дату начала и крайний срок. Если в планах что-то меняется, то переносить сроки по уже поставленным событиям или завершать их.
Тем не менее, в некоторых ситуациях важно поставить задачу или отправить напоминание не заранее, а непосредственно в указанную дату или за небольшой срок до нее. И сделать это нужно автоматически.
Настройку такого процесса я обычно разбиваю на 3 этапа:
Установка паузы и отправка уведомления после окончания паузы
Например: в поле "Дата/время следующего взаимодействия" менеджер указывает, соответственно, дату и время, когда в следующий раз необходимо связаться с клиентом. В эту дату и время нужно напомнить менеджеру о необходимости связаться с клиентом с помощью уведомления или задачи.
В автоматизации такого процесса есть 3 интересных момента, которые важно учесть и которые вызывают сложности при настройке:
- Поле "Дата/время следующего взаимодействия" не обязательно заполняется при создании сделки.
- Поле "Дата/время следующего взаимодействия" может быть изменено менеджером (как на более позднюю, так и на более раннюю) и, соответственно, напоминание нужно делать на другую дату/время.
- При изменении поля "Дата/время следующего взаимодействия" важно отменить отправку уведомления, которое было запланировано отправлять по предыдущему значению поля.
Небольшое отступление: мне больше нравится вариант оформлять все взаимодействия с клиентами в виде заранее назначенных дел, звонков и встреч, даже если это взаимодействие планируется только через пол года или год. При этом в событиях указывать дату начала и крайний срок. Если в планах что-то меняется, то переносить сроки по уже поставленным событиям или завершать их.
Тем не менее, в некоторых ситуациях важно поставить задачу или отправить напоминание не заранее, а непосредственно в указанную дату или за небольшой срок до нее. И сделать это нужно автоматически.
Настройку такого процесса я обычно разбиваю на 3 этапа:
- Установка паузы и отправка уведомления после окончания паузы.
- Добавление проверки на заполнение или изменение поля "Дата/время следующего взаимодействия".
- Добавление проверки перед отправкой уведомления на то, не изменилось ли значение поля "Дата/время следующего взаимодействия", пока процесс находился на паузе.
Установка паузы и отправка уведомления после окончания паузы
Самый простой этап настройки: ставим паузу до даты следующего взаимодействия с клиентом и отправляем уведомление:
По условию дата/время напоминания могут быть заполнены как при создании, так и при любом изменении сделки, поэтому запуск бизнес-процесса нужно делать на создание и изменение:
Добавление проверки на заполнение или изменение поля "Дата/время следующего взаимодействия"
Если оставить процесс в том виде, в каком он был настроен на первом этапе, то при изменении абсолютно любого поля в сделке бизнес-процесс будет делать паузу и отправлять уведомление менеджеру. Надо добавить проверку на то, что было заполнено или изменено именно поле "Дата/время следующего взаимодействия".
Для этого в сделке создаем еще одно поле "Дата/время следующего взаимодействия" с типом Дата/время, но оно будет служебным.
Перед тем, как поставить паузу и отправить уведомление клиенту добавляем проверку, одинаковые ли значения в основном поле и в служебном. И, если они различаются, то приравниваем их, ставим паузу и отправляем уведомление, а, если нет, то просто выходим из бизнес-процесса.
Соответственно, если в следующий раз менеджер изменит в сделке любое другое поле, то значения в основном и служебном поле будут равны, и процесс завершится.
Также необходимо добавить проверку на то, что поле "Дата/время следующего взаимодействия" не пустое.
Схема процесса выглядит так:
Настройка условия и заполнение служебного поля:
Добавление проверки перед отправкой уведомления на то, не изменилось ли значение поля "Дата/время следующего взаимодействия" пока процесс находился на паузе
Сейчас уже почти всё настроено, но осталось предусмотреть случай, когда менеджер меняет уже запланированную дату, и, соответственно, отправку предыдущего запланированного уведомления нужно отменить.
Эту проверку можно сделать следующим образом: если значение поля "Дата/время следующего взаимодействия" изменено, в служебное поле сделки "Идентификатор БП" записать идентификатор того процесса, который запустился. После того, как процесс выходит из паузы, необходимо проверить, совпадает ли идентификатор этого процесса с тем значением, которое было записано в поле сделки "Идентификатор БП" перед паузой. Если за время паузы менеджер не менял значение поля "Дата/время следующего взаимодействия", то уведомление, как и планировалось, нужно отправить. Если значение изменено, в поле "Идентификатор БП" записано новое значение, то это значит, что есть другой актуальный бизнес-процесс, который отправит уведомление.
Схема процесса:
Заполнение поля и проверка идентификатора БП после паузы:
Для того, чтобы было легче тестировать процесс, можно добавить установку статусов для каждой ветки процесса:
Тестирую бизнес-процесс:
- Создаю сделку с незаполненным полем "Дата/время следующего взаимодействия"
- Меняю в сделке значение поля "Комментарий", поле "Дата/время следующего взаимодействия" оставляю без изменений.
- Заполняю поле "Дата/время следующего взаимодействия".
- Сразу же заполняю поле "Дата/время следующего взаимодействия" другим значением.
Соответственно, создание и каждое изменение привело к вызову БП. Из которых два первых завершились, так как "Дата взаимодействия" не изменилась. Третий завершился без отправки уведомления, так как во время паузы поле "Дата/время следующего взаимодействия" уже было изменено. И только четвертый БП отправил уведомление.
Бизнес-процесс отработал идеально :-)
Буду рада, если кому-то эта статья будет полезна при настройке аналогичного функционала.
Добрый день. а добавьте плз. возможность скачать БП
ОтветитьУдалитьДобрый день!) Шаблон этого БП не выкладываю, так как в БП используются три пользовательских поля сделок, и, соответственно, при импорте моего шаблона на другой портал, эти поля не подцепятся сами. В целом, в статье постаралась максимально подробно описать каждый шаг, не должно быть проблем с настройкой.
УдалитьА кто-то уже даже и продает ) http://crmlab.ru/catalog/ustanovka-daty-vzaimodeystviya-i-sozdanie-sobytiya-v-kalendare/
ОтветитьУдалитьНиколай, здравствуйте) Да, интересный пример БП.
Удалитьа по ссылке поинтереснее будет, особенно если дата в календаре меняться будет если дата меняется в срм. сам бы купил такое. просто дату в календарь кинуть это легко, а вот ее стереть или поменять это хз знает как
ОтветитьУдалитьБыло бы очень хорошим вариантом из бизнес-процесса ставить задачу или событие в календаре, дата которого менялась бы при изменении поля сделки. Но на данный момент не получится штатными возможностями бизнес-процессов изменить что-либо в уже поставленной задаче или событии календаря. Я, во всяком случае, не знаю, как это сделать)
УдалитьНо такой сценарий можно реализовать с помощью АПИ: например, отслеживать событие изменения сделки http://dev.1c-bitrix.ru/rest_help/crm/cdeals/events_deal/on_Crm_Deal_Update.php, и, если планируемая дата взаимодействия изменилась, то менять дату в уже поставленном событии http://dev.1c-bitrix.ru/rest_help/calendar/calendar_event_update.php.
Добрый день! Скажите, пожалуйста, а такая схема будет работать, если БП работает из раздела "Контакты", например? Не могу найти, где можно установить такой тип поля для идентификатора БП..
ОтветитьУдалитьВасилий.
Здравствуйте) Да, напоминание точно также можно настроить для контактов. Поле "Идентификатор БП" с типом "строка" нужно создать для контактов.
УдалитьБлагодарю!)
УдалитьДобрый день! Никак не могу понять, как создать и настроить поле Идентификатор БП.
ОтветитьУдалитьДобрый день! В карточке сделки нужно добавить пользовательское поле "Идентификатор БП" с типом "строка". Или то же самое можно сделать из раздела "CRM" - "Настройки" - "Настройки форм и отчетов" - "Пользовательские поля" - "Сделка" - "Добавить поле"
УдалитьПонял, спасибо! Мне не понятно, как выбрать надпись {=Workflow:ID} или её нужно вводить вручную?
УдалитьВручную
УдалитьПонял, спасибо, так и сделал. Еще дополнил этот процесс уведомлением ответственного о необходимости добавить дату следующего взаимодействия http://prntscr.com/lc45n3
УдалитьДоброго времени суток, у меня тоже встала задача, помогите разобраться. Необходимо ежедневно проводить вебинары и каждому новому лиду давать сообщение, о том что вебинар начнется в 20:00, потом за час до вебинар, после в начале вебинра. Как решить эту задачу с помощью БП?
ОтветитьУдалитьДобрый день! Не подскажите как добавить событие менеджеру в другую сделку? Запускается бизнес процесс при изменении сделки и создает новую сделку, дак вот в эту новую сделку нужно добавить дело менеджеру.
ОтветитьУдалитьПо умолчанию добавленное задание менеджеру привязывается к той сделке при изменении которой запустился БП((
Добрый день!)
УдалитьПопробуйте решить задачу с помощью действия "Запуск бизнес-процесса".
Если ещё актуально, могу подробнее описать.
Спасибо, помогли. Как раз искал реализацию аналогичной задачи.
ОтветитьУдалить👍
УдалитьЗдравствуйте! На одну сделку можно запустить максимум 2 БП. Получается, если дату в течение паузы меняли больше одного раза, то новый БП уже не запустится. Вот если бы можно было штатными средствами убивать другие процессы.
ОтветитьУдалитьАндрей, добрый день!
УдалитьШтатных средств тоже не знаю, к сожалению, для решения этой проблемы.
Здравствуйте. А этот БП будет запускаться при лбом заполнении поля в любом направлении сделки? Есть способ сделать для определённого направления?
ОтветитьУдалитьПросто сейчас при изменении поля в любой сделке любого направления запускается этот процесс, есть какие-либо варианты это обойти?
УдалитьЗдравствуйте!)
УдалитьПеред этой логикой в бизнес-процессе можно поставить Условие и проверить в нем поле Направление - скрин.
Добрый день! Пытаюсь решить проблему когда сотрудник редактирует поле даты более 2х раз. Случайно не появилось решения? Я пробую сделать так: после присвоения идентификатора БП добавил параллельное действие, и там цикл который завершит процесс при условии, что идентификатор БП отличается от текущего. Не подскажете, сработает? И как корректно настроить?
ОтветитьУдалитьРазобрался, прерывание теперь есть.
Удалить