Что делает
Каждую минуту загружает открытые сделки (исключая WON/LOSE), сравнивает каждую стадию с предыдущим значением и при каждом отслеживаемом переходе (EXECUTING, PREPAYMENT_INVOICE, FINAL_INVOICE по умолчанию) создаёт задачу, привязанную к сделке через UF_CRM_TASK.
Стек
Node.js 18+. Без внешних зависимостей.
Переменные окружения
export B24_HOOK='https://your.bitrix24.com/rest/1/secret'
Запуск
npx tsx 03-task-automation.ts
Исходник
skills/b24jssdk-recipes/examples/03-task-automation.ts.
Примечания
- Состояние (
dealStages) хранится в памяти. Перезапуск теряет его by design — для production сохраняйте на диск или в Redis. - Поллинг расточителен на масштабе; вариант на Pull (подписка на события
'crm') есть в списке предложений. - Порталы с несколькими воронками: рецепт использует хелпер
baseStage()для сопоставленияC<n>:EXECUTINGи т.п.
Массовые рассылки
Фильтрует контакты в CRM, персонализирует шаблон, отправляет IM-уведомления ответственным менеджерам.
Вебхук CLI
Node-скрипт на 30 строк, который аутентифицируется на портале Bitrix24 через входящий вебхук и печатает вызывающего пользователя — полезно как первое, что вы запускаете после создания вебхука.