При необходимости добавьте несколько формул → повторите шаги.
При необходимости добавить следующие шаги и завершить работу бота. Далее сохранить бота и настройки воронки.
Realtime-формулы
Realtime-формулы настраиваются в общих настройках виджета «Формулы» (не в Salesbot).
Откройте общие настройки виджета «Формулы».
Нажмите на Добавить.
Введите/выберите поле, куда записывать результат.
Введите формулу.
Сохраните настройки.
Как это работает на фронте:
После открытия карточки сделки формулы выполняются автоматически.
При изменении значений полей в карточке формулы пересчитываются автоматически.
Результат сразу записывается в выбранные поля в этой же карточке.
Пересчёт выполняется с небольшой задержкой, чтобы избежать лишних пересчётов при вводе.
⚡Realtime-формулы подходят для онлайн-расчётов в карточке сделки: маржа, скидки, бонусы, себестоимость, плановая прибыль и другие производные показатели.
Математические операции
В формулах можно использовать любые математические операции:
сложение (+)
вычитание (-)
умножение (*)
деление (/)
Формула не ограничивается двумя переменными. Допускается использование любого количества полей и значений, необходимых для вычисления результата.
Постоянные значения
Если в формулах необходимо использовать постоянное значение, его можно задать через триггер:
Перейдите в бота с формулами.
Нажмите Настройка переменных.
3. Создайте новую переменную, указав:
Название (только латинские буквы).
Значение (число или текст).
Важно при работе с переменными:
Если переменная не является числом, преобразуйте её в числовой тип:
chislo(lead['Название поля с типом текст'])
Если переменная не является текстом, преобразуйте её в текстовый тип:
text(lead['Название поля с типом число'])
Это необходимо для корректной работы формул и предотвращения ошибок при вычислениях.
После этого переменную можно использовать в формулах наравне с полями amoCRM.
Порционное перемещение по N сделок в день
Данный сценарий позволяет ежедневно перемещать ограниченное количество сделок в указанное время. Например, не более 10 сделок в день.
Создайте поле
Создайте переменную
Настройте ежедневный сброс счетчика
Создайте триггер: Время запуска: 00:00
Каждый день счетчик будет обнуляться.
Настройте обработку сделок
Создайте триггер на необходимое время, например: Время запуска: 10:00
Добавьте формулу:
Следующим действием увеличьте счетчик:
Как работает логика
Основной принцип работы заключается в том, что триггер запускается отдельно по каждой сделке, а переменная используется только как общий счетчик.
Работа происходит следующим образом:
запускается первая сделка;
система проверяет значение countDeals;
если значение меньше 10, в поле «Переместить» записывается «Да»;
после этого счетчик увеличивается на 1.
Далее аналогично обрабатывается вторая, третья, четвёртая и последующие сделки.
Например:
1-я сделка → countDeals = 0 → флаг = «Да»;
2-я сделка → countDeals = 1 → флаг = «Да»;
…
10-я сделка → countDeals = 9 → флаг = «Да»;
11-я сделка → countDeals = 10 → флаг = «Нет».
Начиная с одиннадцатой сделки условие уже не выполняется, поэтому поле «Переместить» получит значение «Нет». Таким образом, только первые 10 сделок получат флаг для дальнейшей обработки.
Настройте перемещение сделки
Внутри бота добавьте необходимое действие. Пример конфигурации — в папке на Яндекс.Диске: открыть папку.
В результате каждый день в указанное время система будет автоматически брать только первые N сделок, проставлять им флаг и выполнять перемещение. Остальные сделки останутся без изменений и будут обработаны уже при следующем запуске.
Подсказки в формулах
В поле ввода формулы доступны подсказки с названиями полей, которые можно использовать в вычислениях.
Чтобы вызвать подсказку, введите символ "[". После этого появится выпадающий список доступных полей.
Корректная работа с числами
Иногда amoCRM воспринимает значения как текст, из-за чего вместо сложения получается «склейка» (например: 10+14+5 = 10145).
Чтобы этого избежать, каждое значение нужно оборачивать в parseInt().
Пример:
parseInt(lead['Сумма в договоре']) - parseInt(lead['Бюджет'])
Логические условия
Создание логических условий (if-else в одну строку)
Пример:
lead['поле1'] == 'успех' ? 'да' : 'нет'
Здесь:
если поле1 = «успех» → результат «да»
иначе → результат «нет»
Поддерживаются разные операторы сравнения:
>= — больше или равно
<= — меньше или равно
> — больше
< — меньше
!== — не равно
Пример с условиями:
lead['Расстояние до заказчика (в км)'] <= '50' ? '300р.' : '250р.'
Можно проверять значения полей и возвращать разные результаты.
Вложенные условия
Этот пример показывает вложенное условие (тернарный оператор) — когда внутри одного условия используется ещё одно.
🔹 Разбор формулы:
lead['Расстояние до заказчика (в км)'] <= '10' ? '300р.' : (lead['Расстояние до заказчика (в км)'] <= '30' ? '1000' : '2000')
Проверяется условие: если расстояние ≤ 10 км → результат «300р.»
Если первое условие не выполнено, проверяется второе: если расстояние ≤ 30 км → результат «1000».
Если оба условия не выполнены: результат по умолчанию → «2000».
По сути, это аналог «если – иначе если – иначе»:
До 10 км → 300р.
От 11 до 30 км → 1000
Больше 30 км → 2000
Ограничение знаков после запятой
Иногда в результате вычислений может получиться число с большим количеством знаков после запятой. Чтобы ограничить их количество, используйте функцию .toFixed(x), где:
x — это число знаков после запятой, которое должно остаться.
Пример:
(lead['Сумма'] / lead['Количество']).toFixed(2)
Если сумма = 105, количество = 7, то результат будет 15.00 (2 знака после запятой).
ℹ️Если нужно считать по компании, замените lead['contact_leads'] на lead['company_leads']. В примере со статусом 123123 укажите ID нужного статуса из вашей воронки.
Примечания
В формулах доступны переменные lead['notes'] (массив всех примечаний сделки) и lead['last_note_text'] (текст последнего примечания).
В виджете доступны функции для автоматической привязки контактов и компаний к сделкам:
Привязка контактов
Прикрепить контакт по Телефону — поиск контакта по номеру телефона
Прикрепить контакт по Email — поиск контакта по адресу электронной почты
Прикрепить контакт по кастомному полю — поиск контакта по любому кастомному полю (например, ИНН, внутренний ID и т.п.)
Привязка компаний
Прикрепить компанию по кастомному полю — поиск компании по любому кастомному полю (например, ИНН, внутренний ID и т.п.)
При помощи этих функций можно автоматически находить и прикреплять контакты/компании к сделкам, либо создавать новые, если они не найдены. Настроить это можно с помощью Salesbot.
Настройка привязки по телефону или email
В выборе поля найдите раздел Функции:
В формуле необходимо ввести поле, из которого нужно брать телефон или почту для создания контакта:
Настройка привязки по кастомному полю
Для привязки контакта или компании по кастомному полю выберите нужное поле из списка доступных полей в интерфейсе виджета.
Пример 1: Привязать контакт по полю ИНН:
Выберите "Функции" → "Прикрепить контакт по кастомному полю" → выберите поле "ИНН" из списка
В формуле укажите поле сделки, откуда брать значение ИНН: return lead["ИНН"]
Пример 2: Привязать компанию по полю "Внутренний ID":
Выберите "Функции" → "Прикрепить компанию по кастомному полю" → выберите поле "Внутренний ID" из списка
В формуле укажите поле сделки, откуда брать ID: return lead["Внутренний ID"]
Если контакт или компания с указанным значением поля не найдены, система автоматически создаст новую сущность с этим значением и привяжет её к сделке.
Конвертация валют
В формулах доступна функция convertCurrency() для автоматической конвертации валют по официальным курсам ЦБ РФ.