Площадки берут деньги за три разные вещи, и одинаковый процесс из-за этого различается в цене в несколько раз. Одна считает срабатывания узлов, вторая — запуски сценария целиком, третья продаёт подключения к системам и пакет операций сверху. Наш модельный сценарий приёма заявки при 3 000 прогонов в месяц стоит 7 500 ₽ в месяц по одной модели, 21 400 ₽ по другой и 32 400 ₽ по третьей.
Решает при этом не выбор площадки, а устройство сценария. Внутри нашего прогона крутится цикл по двадцати позициям заявки, и именно он превращает 12 операций в 72. Без цикла разброс между тремя моделями — 32 400 ₽ в год, с циклом — 298 800 ₽. То есть вопрос «как у вас считаются операции» имеет смысл задавать только вместе с вопросом «а что делает мой сценарий внутри».
Ниже — три модели и способ определить свою по собственному счёту, расчёт одного сценария в каждой из них, пять приёмов сокращения с арифметикой и разбор того, что произойдёт, когда лимит закончится в четверг днём.
Три модели тарификации и как определить свою
Единица, за которую площадка берёт деньги. Проблема в том, что у разных площадок это разные вещи: срабатывание одного узла, запуск сценария целиком или обращение к внешней системе. Из-за этого сравнивать тарифы по цифре «столько-то операций в тарифе» бессмысленно: пока не выяснено, что именно считается операцией, число ничего не значит.
Определить свою модель можно за один вечер, не спрашивая менеджера площадки. Четыре проверки ниже дают ответ на собственных данных.
- 1Разделите месячный счёт на число прогонов за тот же месяц. Если получается ровное значение и оно держится из месяца в месяц, несмотря на разное число узлов в сценариях, — тарификация за прогон.
- 2Добавьте в тестовый сценарий один лишний узел и запустите его сто раз. Счёт вырос заметно — тарификация за шаг. Не изменился — либо за прогон, либо у вас ещё есть запас в пакете.
- 3Посмотрите, менялся ли счёт при росте потока за последние три месяца. Если он стоял на месте, а потом скачком вырос, — это пакет с потолком. Найдите потолок в описании тарифа и запишите его числом, а не словами «достаточно для среднего бизнеса».
- 4Отдельно уточните, считаются ли прогоны, завершившиеся ошибкой, и автоматические повторы. На части площадок повтор — полноценный платный прогон, и сценарий с настроенными тремя повторами при массовом сбое утраивает счёт за сутки.
Один сценарий, три модели: считаем месячную стоимость
Сценарий — приём заявки с сайта: получить событие, обогатить данными клиента, записать позиции заявки, создать сделку, уведомить менеджера. Это та же механика, что в решении распределение заявок между менеджерами, и самый частый первый сценарий в компании. Двенадцать узлов вне цикла, 3 000 прогонов в месяц. Разница между двумя строками таблицы — только цикл: во втором варианте заявка содержит в среднем 20 позиций, и каждая проходит через три узла.
| Устройство сценария | За шаг, 0,15 ₽ за операцию | За прогон, 2,50 ₽ за запуск | 4 коннектора по 1 200 ₽ + пакет 50 000, сверх 0,10 ₽ |
|---|---|---|---|
| Без цикла: 12 операций на прогон, 36 000 в месяц | 5 400 ₽ в месяц — 64 800 ₽ в год | 7 500 ₽ в месяц — 90 000 ₽ в год | 4 800 ₽ в месяц — 57 600 ₽ в год |
| С циклом по 20 позициям: 72 операции на прогон, 216 000 в месяц | 32 400 ₽ в месяц — 388 800 ₽ в год | 7 500 ₽ в месяц — 90 000 ₽ в год | 21 400 ₽ в месяц — 256 800 ₽ в год |
| Разница между самой дешёвой и самой дорогой моделью | — | — | 32 400 ₽ в год без цикла и 298 800 ₽ в год с циклом |
Выводов два, и оба практические. Первый: при поштучной оплате шагов цикл внутри прогона — самая дорогая конструкция, какую можно построить. Второй: при оплате за прогон цикл бесплатен, и на площадке с такой моделью тот же сценарий обойдётся вчетверо дешевле. Это не значит, что одна модель лучше другой: она лучше для конкретного устройства ваших сценариев. Разбор российских площадок по девяти параметрам, включая тарификацию и поведение при сбое, у нас есть отдельно — Albato, ApiX-Drive и Nodul.
Сгруппированная столбчатая диаграмма: две группы по три столбца. Группа «без цикла, 36 000 операций в месяц»: за шаг 64 800 ₽, за прогон 90 000 ₽, коннекторы и пакет 57 600 ₽. Группа «с циклом по 20 позициям, 216 000 операций»: за шаг 388 800 ₽, за прогон 90 000 ₽, коннекторы и пакет 256 800 ₽. Над второй группой фигурная скобка с подписью «разброс 298 800 ₽ в год», над первой — «разброс 32 400 ₽». Единицы — рубли в год. Подписи по-русски.
Опрос по расписанию против вебхука: 217 080 ₽ в год
Самая крупная единичная переплата в типовом парке возникает не из-за тарифа, а из-за одного архитектурного решения. Сценарий, который раз в минуту спрашивает чужую систему «не появилось ли новых записей», запускается 43 200 раза в месяц независимо от того, есть новые записи или нет. Тот же процесс на вебхуке запускается ровно столько раз, сколько было событий.
Чаще всего опрос по расписанию встречается там, где сценарий следит за остатками и заказами поставщикам, — как в автопополнении запасов, где соблазн проверять склад почаще особенно велик. Применяют его при этом не по невежеству: у части систем вебхуков просто нет, и тогда выбора не остаётся. Но интервал в этом случае выбирается по реальной срочности, а не по умолчанию: переход с одной минуты на пятнадцать снижает счёт в пятнадцать раз и почти никогда не мешает делу. Проверьте свои сценарии на слово «расписание» — обычно один-два в парке опрашивают чужую систему чаще, чем это кому-то нужно.
Пять приёмов, которые сокращают счёт в семнадцать раз
Возвращаемся к сценарию с циклом — 216 000 операций в месяц, 32 400 ₽. Его состав: 60 операций на цикл по позициям, 8 узлов преобразования полей, 2 повторных чтения карточки клиента и 2 узла основной ветки. Итого 72 операции на прогон.
- 1Фильтр на входе — до всех остальных узлов
1 080 прогонов из 3 000 запускались на событиях, которые ничего не меняют: повторное сохранение формы, служебное обновление, дубль из другого канала. Первый узел сценария должен обрывать такие события немедленно, а не после прохода по всей ветке. Одна операция вместо семидесяти двух.
- 2Пакетная запись вместо цикла
Двадцать позиций заявки записывались по одной: три узла на позицию, 60 операций. Почти все системы принимают массив записей одним запросом — это три операции вместо шестидесяти. Самая дорогая правка по эффекту и самая простая по исполнению.
- 3Объединение узлов преобразования
Восемь узлов, каждый из которых менял одно поле, — типичный след сборки «по мере появления требований». Один узел преобразования делает то же самое: восемь операций превращаются в одну, а сценарий заодно становится читаемым.
- 4Отказ от повторных чтений
Карточка клиента читалась трижды за прогон, потому что каждая ветка запрашивала её заново. Достаточно прочитать один раз в начале и передать дальше: минус две операции на каждый прогон и минус два обращения к вашей учётной системе.
- 5Вебхук вместо опроса
Пятый приём считается отдельно, потому что относится к другому сценарию парка, — это те самые 217 080 ₽ в год из раздела выше. В сумме с четырьмя правками ниже он даёт 583 200 ₽ годовой экономии на двух сценариях.
Сравнение двух столбцов. Левый «было» — 216 000 операций в месяц, разбит на сегменты: цикл по позициям 180 000, узлы преобразования 24 000, повторные чтения 6 000, основная ветка 6 000. Правый «стало» — 12 600 операций, заметно ниже. Между столбцами четыре стрелки с подписями: «фильтр на входе», «пакетная запись вместо цикла», «восемь узлов преобразования в один», «одно чтение карточки вместо трёх». Внизу подпись «32 400 ₽ → 1 890 ₽ в месяц; 14 часов работы, возврат 1,4 месяца». Подписи по-русски.
Что происходит, когда лимит заканчивается
Это надо выяснить до первого исчерпания, потому что вариантов три и различаются они последствиями, а не суммой в счёте.
- Жёсткая остановка. Сценарии перестают запускаться до следующего расчётного периода. Для сценария, который принимает заявки, это прямая потеря: считать её надо не часами простоя, а заявками, которые за эти часы не дошли. Именно этот вариант требует алерта на 80 % лимита, а не на 100 %.
- Автоматическая доплата. Площадка продолжает работать и молча выставляет за превышение. Безопаснее для процессов и опаснее для бюджета: без потолка доплаты один зациклившийся сценарий за ночь съедает месячную смету.
- Деградация и очередь. События не теряются, но обрабатываются с задержкой. Худший из трёх для диагностики: ничего не сломано, всё «просто медленно», и разбираться начинают через неделю, когда клиенты уже пожаловались.
Настроенные повторы при массовом сбое превращаются в машину по сжиганию лимита. Пятьсот записей, которые не проходят из-за изменившегося поля в CRM, при повторе раз в 30 секунд дают 120 попыток в час на каждую — 60 000 операций в час, то есть 9 000 ₽ в час при цене 0,15 ₽. За ночь с пятницы на понедельник это шестизначная сумма, и обнаруживается она из счёта. Лечится тремя настройками: повторы с растущей задержкой, ограничение числа попыток, очередь необработанного вместо бесконечного цикла. Как это устроено, мы разбирали в материале про обработку ошибок в сценариях.
Когда экономить на операциях не нужно
Оптимизация счёта — работа с понятной ценой и понятным эффектом, но она не всегда оправдана. Три случая, в которых её лучше не начинать.
- Счёт меньше 5 000 ₽ в месяц. Четырнадцать часов работы стоят 42 000 ₽; если вся годовая плата площадке — 60 000 ₽, потолок экономии ниже стоимости правок. Проверить состав сценариев полезно и здесь, но ради читаемости, а не ради денег.
- Сценарий вот-вот будет переписан. Если процесс меняется или переезжает в собственный сервис в ближайшие месяцы, оптимизация уйдёт вместе со сценарием. Разумнее подождать и заложить пакетную обработку сразу в новую сборку.
- Экономия достигается ценой прозрачности. Иногда счёт сокращают, сливая пять понятных узлов в один непрочитываемый скрипт. Тысяча рублей в месяц — плохая цена за сценарий, который после отпуска автора не сможет прочитать никто. Общее правило простое: сокращаем холостую работу, а не понятность.
И последнее — про устойчивость расчётов. Цена операции не константа: площадка вправе перевести вас на другую ступень тарифа или пересчитать стоимость, и все цифры выше сдвинутся. Поэтому в бюджете полезно держать не сумму, а зависимость: сколько операций даёт один прогон и сколько прогонов даёт месяц. Тогда смена тарифа превращается в пересчёт на калькуляторе, а не в неприятный разговор. Как это укладывается в годовую смету целиком — вместе с работой инженера и часами внутреннего владельца — мы разобрали в материале о стоимости владения парком сценариев.
