Бизнес-процесс: как поставить напоминание для сделки

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

Например: в поле "Дата/время следующего взаимодействия" менеджер указывает, соответственно, дату и время, когда в следующий раз необходимо связаться с клиентом. В эту дату и время нужно напомнить менеджеру о необходимости связаться с клиентом с помощью уведомления или задачи.

В автоматизации такого процесса есть 3 интересных момента, которые важно учесть и которые вызывают сложности при настройке:
  1. Поле "Дата/время следующего взаимодействия" не обязательно заполняется при создании сделки.
  2. Поле "Дата/время следующего взаимодействия" может быть изменено менеджером (как на более позднюю, так и на более раннюю) и, соответственно, напоминание нужно делать на другую дату/время.
  3. При изменении поля "Дата/время следующего взаимодействия" важно отменить отправку уведомления, которое было запланировано отправлять по предыдущему значению поля.
Настройка такого процесса по ссылке "Подробнее":-)

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

Тем не менее, в некоторых ситуациях важно поставить задачу или отправить напоминание не заранее, а непосредственно в указанную дату или за небольшой срок до нее. И сделать это нужно автоматически.

Настройку такого процесса я обычно разбиваю на 3 этапа:
  1. Установка паузы и отправка уведомления после окончания паузы.
  2. Добавление проверки на заполнение или изменение поля "Дата/время следующего взаимодействия".
  3. Добавление проверки перед отправкой уведомления на то, не изменилось ли значение поля "Дата/время следующего взаимодействия", пока процесс находился на паузе.

Установка паузы и отправка уведомления после окончания паузы

Самый простой этап настройки: ставим паузу до даты следующего взаимодействия с клиентом и отправляем уведомление:



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


Добавление проверки на заполнение или изменение поля "Дата/время следующего взаимодействия"

Если оставить процесс в том виде, в каком он был настроен на первом этапе, то при изменении абсолютно любого поля в сделке бизнес-процесс будет делать паузу и отправлять уведомление менеджеру. Надо добавить проверку на то, что было заполнено или изменено именно поле "Дата/время следующего взаимодействия".

Для этого в сделке создаем еще одно поле "Дата/время следующего взаимодействия" с типом Дата/время, но оно будет служебным.

Перед тем, как поставить паузу и отправить уведомление клиенту добавляем проверку, одинаковые ли значения в основном поле и в служебном. И, если они различаются, то приравниваем их, ставим паузу и отправляем уведомление, а, если нет, то просто выходим из бизнес-процесса.

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

Также необходимо добавить проверку на то, что поле "Дата/время следующего взаимодействия" не пустое.

Схема процесса выглядит так:


Настройка условия и заполнение служебного поля:


Добавление проверки перед отправкой уведомления на то, не изменилось ли значение поля "Дата/время следующего взаимодействия" пока процесс находился на паузе

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

Эту проверку можно сделать следующим образом: если значение поля "Дата/время следующего взаимодействия" изменено, в служебное поле сделки "Идентификатор БП" записать идентификатор того процесса, который запустился. После того, как процесс выходит из паузы, необходимо проверить, совпадает ли идентификатор этого процесса с тем значением, которое было записано в поле сделки "Идентификатор БП" перед паузой. Если за время паузы менеджер не менял значение поля "Дата/время следующего взаимодействия", то уведомление, как и планировалось, нужно отправить. Если значение изменено, в поле "Идентификатор БП" записано новое значение, то это значит, что есть другой актуальный бизнес-процесс, который отправит уведомление.

Схема процесса:


Заполнение поля и проверка идентификатора БП после паузы:



Для того, чтобы было легче тестировать процесс, можно добавить установку статусов для каждой ветки процесса:


Тестирую бизнес-процесс:
  1. Создаю сделку с незаполненным полем "Дата/время следующего взаимодействия"
  2. Меняю в сделке значение поля "Комментарий", поле "Дата/время следующего взаимодействия" оставляю без изменений.
  3. Заполняю поле "Дата/время следующего взаимодействия".
  4. Сразу же заполняю поле "Дата/время следующего взаимодействия" другим значением.
Соответственно, создание и каждое изменение привело к вызову БП. Из которых два первых завершились, так как "Дата взаимодействия" не изменилась. Третий завершился без отправки уведомления, так как во время паузы поле "Дата/время следующего взаимодействия" уже было изменено. И только четвертый БП отправил уведомление.


Бизнес-процесс отработал идеально :-)

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

Комментарии

  1. Добрый день. а добавьте плз. возможность скачать БП

    ОтветитьУдалить
    Ответы
    1. Добрый день!) Шаблон этого БП не выкладываю, так как в БП используются три пользовательских поля сделок, и, соответственно, при импорте моего шаблона на другой портал, эти поля не подцепятся сами. В целом, в статье постаралась максимально подробно описать каждый шаг, не должно быть проблем с настройкой.

      Удалить
  2. А кто-то уже даже и продает ) http://crmlab.ru/catalog/ustanovka-daty-vzaimodeystviya-i-sozdanie-sobytiya-v-kalendare/

    ОтветитьУдалить
    Ответы
    1. Николай, здравствуйте) Да, интересный пример БП.

      Удалить
  3. а по ссылке поинтереснее будет, особенно если дата в календаре меняться будет если дата меняется в срм. сам бы купил такое. просто дату в календарь кинуть это легко, а вот ее стереть или поменять это хз знает как

    ОтветитьУдалить
    Ответы
    1. Было бы очень хорошим вариантом из бизнес-процесса ставить задачу или событие в календаре, дата которого менялась бы при изменении поля сделки. Но на данный момент не получится штатными возможностями бизнес-процессов изменить что-либо в уже поставленной задаче или событии календаря. Я, во всяком случае, не знаю, как это сделать)

      Но такой сценарий можно реализовать с помощью АПИ: например, отслеживать событие изменения сделки 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.

      Удалить
  4. Добрый день! Скажите, пожалуйста, а такая схема будет работать, если БП работает из раздела "Контакты", например? Не могу найти, где можно установить такой тип поля для идентификатора БП..
    Василий.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте) Да, напоминание точно также можно настроить для контактов. Поле "Идентификатор БП" с типом "строка" нужно создать для контактов.

      Удалить
  5. Добрый день! Никак не могу понять, как создать и настроить поле Идентификатор БП.

    ОтветитьУдалить
    Ответы
    1. Добрый день! В карточке сделки нужно добавить пользовательское поле "Идентификатор БП" с типом "строка". Или то же самое можно сделать из раздела "CRM" - "Настройки" - "Настройки форм и отчетов" - "Пользовательские поля" - "Сделка" - "Добавить поле"

      Удалить
    2. Понял, спасибо! Мне не понятно, как выбрать надпись {=Workflow:ID} или её нужно вводить вручную?

      Удалить
    3. Понял, спасибо, так и сделал. Еще дополнил этот процесс уведомлением ответственного о необходимости добавить дату следующего взаимодействия http://prntscr.com/lc45n3

      Удалить
  6. Доброго времени суток, у меня тоже встала задача, помогите разобраться. Необходимо ежедневно проводить вебинары и каждому новому лиду давать сообщение, о том что вебинар начнется в 20:00, потом за час до вебинар, после в начале вебинра. Как решить эту задачу с помощью БП?

    ОтветитьУдалить
  7. Добрый день! Не подскажите как добавить событие менеджеру в другую сделку? Запускается бизнес процесс при изменении сделки и создает новую сделку, дак вот в эту новую сделку нужно добавить дело менеджеру.
    По умолчанию добавленное задание менеджеру привязывается к той сделке при изменении которой запустился БП((

    ОтветитьУдалить
    Ответы
    1. Добрый день!)

      Попробуйте решить задачу с помощью действия "Запуск бизнес-процесса".
      Если ещё актуально, могу подробнее описать.

      Удалить
  8. Спасибо, помогли. Как раз искал реализацию аналогичной задачи.

    ОтветитьУдалить
  9. Здравствуйте! На одну сделку можно запустить максимум 2 БП. Получается, если дату в течение паузы меняли больше одного раза, то новый БП уже не запустится. Вот если бы можно было штатными средствами убивать другие процессы.

    ОтветитьУдалить
    Ответы
    1. Андрей, добрый день!
      Штатных средств тоже не знаю, к сожалению, для решения этой проблемы.

      Удалить
  10. Здравствуйте. А этот БП будет запускаться при лбом заполнении поля в любом направлении сделки? Есть способ сделать для определённого направления?

    ОтветитьУдалить
    Ответы
    1. Просто сейчас при изменении поля в любой сделке любого направления запускается этот процесс, есть какие-либо варианты это обойти?

      Удалить
    2. Здравствуйте!)
      Перед этой логикой в бизнес-процессе можно поставить Условие и проверить в нем поле Направление - скрин.

      Удалить
  11. Добрый день! Пытаюсь решить проблему когда сотрудник редактирует поле даты более 2х раз. Случайно не появилось решения? Я пробую сделать так: после присвоения идентификатора БП добавил параллельное действие, и там цикл который завершит процесс при условии, что идентификатор БП отличается от текущего. Не подскажете, сработает? И как корректно настроить?

    ОтветитьУдалить
    Ответы
    1. Разобрался, прерывание теперь есть.

      Удалить

Отправить комментарий

Популярные сообщения

Расширение возможностей бизнес-процессов с помощью вебхуков: работа с задачами