Бизнес-процесс работает на создание и изменение сделки. Подсчет времени настроен для двух воронок по следующему сценарию:
- Проверка воронки. Если воронка подходящая, переход к следующему этапу
2.
Проверка смены стадии. Поверка реализована через пользовательское техническое поле «Предыдущая стадия (техническое поле)». Если текущая «Стадия» не равна значению в поле «Предыдущая стадия (техническое поле)», значит, стадия поменялась, либо это новая сделка. Переход к следующему этапу. Если значения этих полей равны, значит, стадия, не менялась, бизнес-процесс завершается.
3.
Проверка технического поля «Дата смены стадии»
. Если это поле не заполнено, значит, сделка является новой, в поле «Дата смены стадии» заносится текущая дата, в поле «Предыдущая стадия (техническое поле)» заносится текущая стадия. Бизнес-процесс завершается. Далее на этой сделке бизнес-процесс будет срабатывать на изменение и сразу завершаться, пока в ней не поменяется стадия.
4. Как только в этой сделке сменится стадия, снова происходит проверка воронки, смены стадии, даты смены стадии. В этом случае «Дата смены стадии» заполнена, поэтому происходит подсчет количества месяцев, дней, часов с моменте смены стадии. Подсчёт осуществляется с помощью следующих функций:
– datediff({=System:Now}, {{Дата смены стадии (техническое поле)}}, '%m month')
– datediff({=System:Now}, {{Дата смены стадии (техническое поле)}}, '%d days')
– datediff({=System:Now}, {{Дата смены стадии (техническое поле)}}, '%h hours')
Отдельно вычисляется количество месяцев, дней и часов между текущей датой и датой, когда в последний раз менялась стадия. Полученные результаты заносятся в переменные.
5. Далее проверяется значение поля «Предыдущая стадия (техническое поле)». Для каждой стадии создано поле, куда заносится количество часов, которое прошло с момента попадания на данную стадию. В это поле количество часов добавляется с помощью следующей формулы:
={{Количество часов на стадии «Создан NMD аккаунт» в воронке «Новый клиент» (техническое поле)}}+{=Variable:Variable1}*720+{=Variable:Variable2}*24+{=Variable:Variable3}
Таким образом, каждый раз после смены стадии в пользовательское поле добавляются часы, которые сделка провела на данной стадии.