За полтора года работы с n8n, Tilda и Telegram-ботами я вывел простое правило: если процесс трудно объяснить одним предложением, значит триггеры и сценарии в нём смешаны в одну кучу без разделения ответственности. Триггер - это событие, которое запускает цепочку действий: оплата через эквайринг T‑Bank, новый заказ в WooCommerce, изменение статуса посылки у СДЭК, входящее сообщение в Telegram-боте. Сценарий - это то, что происходит после срабатывания триггера: последовательность шагов с проверками, ветвлениями и обработкой ошибок. Путаница между этими двумя понятиями - причина половины багов, с которыми ко мне приходят клиенты на доработку уже готовой автоматизации.
Что такое триггеры и сценарии в автоматизации процессов
На старте проекта я обычно разделяю систему на три слоя: событие, логика, действие. Триггер отвечает за первый слой - он ловит момент, когда что-то произошло во внешнем мире: пришли деньги, изменился статус заказа, истекло время ожидания. Сценарий - это второй и третий слой вместе: что проверить, куда отправить данные, кому написать уведомление.
На практике с Tilda это выглядит так: клиент отправляет форму, Tilda дёргает вебхук, дальше срабатывает сценарий - запись в CRM, письмо менеджеру, сообщение в рабочий чат Telegram. Каждый из этих шагов можно менять независимо, если изначально развести триггер и сценарий на разные блоки, а не зашивать всё в один обработчик формы.
Типы триггеров: от вебхуков до расписаний
Триггеры делятся на несколько типов, и от выбора зависит скорость реакции системы и нагрузка на сервер.
- Вебхук - внешний сервис сам присылает POST-запрос при событии. Так работает уведомление об оплате от T‑Bank или смена статуса заказа в WooCommerce.
- Опрос по расписанию (polling) - скрипт сам раз в N минут проверяет состояние. Так я делаю проверку статуса посылки СДЭК, если у перевозчика нет вебхука для конкретного тарифа.
- Cron/расписание - запуск по времени вне зависимости от внешних событий: ночная выгрузка отчёта, ежедневная сверка остатков на складе.
- Событие в мессенджере - команда или callback-кнопка в aiogram-боте, где апдейт от Telegram и есть триггер.
| Тип триггера | Задержка реакции | Нагрузка на сервер | Пример из практики |
|---|---|---|---|
| Вебхук | секунды | низкая | оплата T‑Bank → запись в CRM |
| Polling | минуты, зависит от интервала | растёт с частотой опроса | проверка статуса СДЭК каждые 15 минут |
| Cron/расписание | точно по времени | низкая | ночная выгрузка заказов WooCommerce в отчёт |
| Событие бота | секунды | низкая | команда /start или callback-кнопка в aiogram |
Как построить сценарий: ветвления, проверки и обработка ошибок
Сценарий без ветвлений - это не автоматизация, а скрипт с одним путём выполнения. На практике почти всегда нужно минимум два исхода: успех и ошибка, а часто и больше.
Возьмём реальный кейс: вебхук от эквайринга приходит с полем status. Дальше сценарий должен разойтись минимум на три ветки - оплата прошла, платёж отклонён, повторный вебхук с тем же ID заказа (защита от дублей).
if (payload.status === 'paid' && !isProcessed(payload.orderId)) {
markProcessed(payload.orderId);
notifyManager(payload.orderId);
} else if (payload.status === 'failed') {
scheduleRetry(payload.orderId);
}
Проверка isProcessed - не перестраховка, а обязательный шаг: платёжные системы и СДЭК иногда присылают один и тот же вебхук дважды из-за таймаутов на своей стороне. Без идемпотентности сценарий продублирует уведомление менеджеру или, хуже, спишет товар со склада дважды.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Триггеры и сценарии в n8n на практике
В n8n триггер и сценарий разделены физически: слева нода-триггер (Webhook, Schedule, Telegram Trigger), дальше цепочка нод с IF и Switch для ветвления. Это удобно объяснять заказчику - я показываю на канвасе, где событие входит в систему и куда расходятся ветки.
Пример из недавнего проекта: форма на Tilda отправляет вебхук в n8n, там нода HTTP Request кладёт лид в CRM, следующая нода IF проверяет сумму заказа - если выше порога, сценарий уходит в отдельную ветку с уведомлением руководителю через aiogram-бота, если ниже - обычное уведомление менеджеру. Параллельно отдельный сценарий с триггером Schedule раз в 20 минут опрашивает статусы у СДЭК и обновляет запись в CRM.
Если нужны похожие связки под свои процессы, у меня в библиотеке готовых скриптов есть заготовки под типовые триггеры - вебхуки оплаты, опрос статусов доставки, обработку сообщений бота. Настройка похожей связки триггеров и сценариев под конкретный проект в n8n у меня стоит от 25 000 ₽, отдельный Python-скрипт под нестандартный polling - от 20 000 ₽.
Частые ошибки при проектировании сценариев
За несколько лет доработок чужих интеграций я собрал список повторяющихся проблем.
- Нет проверки на повторный триггер - вебхук с одним и тем же ID обрабатывается заново, дублируя действие.
- Сценарий без ветки на ошибку - если внешний API вернул 500, весь процесс просто падает молча, без ретрая и без лога.
- Polling с фиксированной задержкой без увеличения паузы при недоступности сервиса - скрипт долбит его каждую минуту вместо того, чтобы отступить и повторить позже.
- Данные клиентов из CRM-интеграции складывают в иностранные облачные таблицы вроде Google Sheets - для персональных данных это нарушает ст. 18 152-ФЗ, которая требует хранение на серверах в РФ. Я переношу такие сценарии на российский хостинг или локальную базу.
- Логика сценария зашита прямо в обработчик триггера - при изменении условий приходится трогать код, который отвечает за приём события, а это лишний риск сломать рабочую интеграцию.
Сколько стоит настройка триггеров и сценариев
Стоимость зависит от количества триггеров, веток сценария и интеграций - CRM, эквайринг, СДЭК, мессенджеры.
| Задача | Цена |
|---|---|
| Простая доработка скрипта на Tilda | от 3 000 ₽ |
| Комплексная интеграция (CRM, эквайринг, СДЭК) | от 40 000 ₽ |
| Telegram-бот с триггерами на команды и callback | от 30 000 ₽ |
| Автоматизация сценария в n8n | от 25 000 ₽ |
| Парсинг/автоматизация на Python с polling-триггерами | от 20 000 ₽ |
На бирже фриланса и в студиях похожая связка триггеров и сценариев на n8n обычно стоит в диапазоне 15 000-60 000 ₽ - разброс большой из-за того, что многие закладывают время на изучение конкретного сервиса заказчика, а не только на настройку нод.
Связка сервисов без программистов
Автоматизация / n8n
от 25 000 ₽
Подробнее →Частые вопросы
Чем сценарий отличается от триггера простыми словами?
Триггер - это условие запуска, конкретное событие: пришли деньги, поступил заказ, истекло время. Сценарий - это то, что происходит после срабатывания: последовательность шагов, проверок и ветвлений. Один и тот же триггер может запускать разные сценарии в зависимости от условий внутри логики.
Можно ли обойтись без n8n и написать триггеры на чистом Python?
Можно, и для узких задач это часто дешевле - например, для одного polling-скрипта, который раз в 15 минут проверяет статус у СДЭК и пишет результат в базу. Но как только сценариев становится больше трёх-четырёх и они начинают пересекаться (заказ → оплата → доставка → уведомление), визуальный конструктор вроде n8n экономит время на поддержке, потому что логику ветвлений видно на канвасе, а не разбросана по файлам.
Как избежать дублирования запуска сценария при повторных вебхуках?
Хранить ID события - номер платежа или номер заказа - в базе или кэше и проверять его перед выполнением действия. Платёжные системы и СДЭК могут прислать один и тот же вебхук два-три раза при таймауте на своей стороне, и без такой проверки сценарий отработает повторно.
Где хранить данные клиентов, если сценарий связан с CRM или ботом?
На серверах в России. Ст. 18 152-ФЗ обязывает хранить персональные данные российских граждан на территории РФ, поэтому для сценариев с контактами клиентов я не использую иностранные облачные таблицы или SaaS без локализации - только российский хостинг, локальная база данных или CRM с серверами в РФ.