Работая с CRM Битрикс24 складывается впечатление, что счета в ней реализованы по остаточному принципу. То есть сделали систему, спроектировали архитектуру, всё понравилось, а потом вспомнили, что есть ещё счета. Для счетов до сих пор нет новых инструментов: от дизайна карточки до конструктора документов. И, конечно, нет бизнес-процессов.
Но сама сущность «Счёт» в CRM позволяет очень хорошо упорядочить процессы и получить дополнительную аналитику. А бизнес-процессы по счетам бывают очень нужны. Сегодня расскажем, как решается этот вопрос. Сразу оговоримся, что решение для коробочной версии.
Архитектурно решение следующее:
- 1. Создание счёта приводит к появлению элемента в списке «Счета». Да-да, в простом списке, для которого можно запускать бизнес-процессы. В этот элемент мы записываем все поля, которые имеют значение для нашего бизнес-процесса. Можно было бы совсем все поля переносить, но такой задачи не стоит обычно.
- Изменение счёта в CRM приводит к обновлению элемента списка.
- У элемента списка создано отдельное поле «Статус», в котором содержится статус счёта.
- При добавлении и изменении элемента списка запускается «разводящий» бизнес-процесс, который опираясь на статус решает, какой микро-процесс ему запустить. Своеобразный аналог роботам.
На что нужно обратить внимание:
- Для обработки изменений счёта используются три события: OnBeforeCrmInvoiceUpdate, OnBeforeCrmInvoiceAdd, OnAfterCrmInvoiceSetStatus. Первые два отслеживают изменение счёта, третий – статуса.
- В автоматически запускаемых бизнес-процессах нужно предусмотреть служебные переменные, которые будут отслеживать, чтобы процесс не запускался несколько раз. Например, если статус счёта остался прежним, а дата оплаты изменилась, нет смысла ещё раз запускать процесс для статуса.
В принципе, это всё. Счета создаются/редактируются в CRM. Информация из них передаётся в сущность, которая умеет работать с процессами, запускаются процессы, автоматизируется деятельность.