Блок «Начало диалога»

«Начало диалога» — это блок, с которого клиент попадает в воронку. Именно с него бот решает, запускать ли воронку в ответ на сообщение клиента. Когда приходит сообщение, система перебирает все активные воронки проекта и проверяет «Начало диалога» каждой: если условие совпало — запускается эта воронка, начиная с самого входа.

Если у «Начала диалога» заполнена вкладка «Текст» (текст, кнопки, файлы), он отправляется клиенту сразу при входе — «Начало диалога» работает и как триггер, и как приветствие. Пустая исходящая стрелка из «Начала диалога» означает «жди ответа клиента»: бот отправит приветствие и остановится, пока человек не напишет следующее сообщение.

Когда использовать

  • Запуск воронки по команде `/start` или deep-link `https://telegram.me/bot?start=promo`
  • Реакция на ключевые слова («цена», «купить», «поддержка»)
  • Главная воронка «по умолчанию», которая отвечает на любое сообщение
  • Разные сценарии под разные фразы — несколько воронок, у каждой своё «Начало диалога»

Настройки

Настройки «Начала диалога» собраны на двух вкладках: «Когда срабатывает» (при каком сообщении запускать) и «Текст» (что отправить при входе).

Вкладка «Когда срабатывает»:

  • Конструктор условий — визуальный набор правил (переменная / оператор / значение) с логикой И / ИЛИ. Если задан — имеет приоритет над текстовым полем «Условие». По умолчанию скрыт.
  • Условие — ключевые слова или фразы, на которые реагирует бот. Несколько вариантов разделяются точкой с запятой `;` или переносом строки. Запятая разделителем НЕ считается (можно писать «купи, пожалуйста» как одну фразу). Если поле пустое — воронка ловит любое сообщение (catch-all).
  • Строгость совпадения — насколько точным должно быть совпадение: «Похоже (с опечатками)» (fuzzy), «Содержит слова», «Точно так» (exact), «Регулярка (regex)», «По смыслу (ИИ)». По умолчанию — «Похоже (с опечатками)».
  • Сравнение — одно сравнение по данным клиента, например `cart_total >= 3000`. Формат — «переменная оператор значение»; составные выражения через `and` движок не разбирает.
  • Стоп-слова (расширенные) — список через `;`: если хотя бы одно встретилось в тексте, условие не срабатывает.
  • Приоритет (расширенные) — очередь проверки, по умолчанию 10: чем больше число, тем раньше блок получает сообщение.
  • Отвечать один раз / Ловить только нажатия кнопок / Пропускать нажатия кнопок (расширенные) — переключатели для тонкой настройки поведения.

Вкладка «Текст»: текст, кнопки и файлы, которые отправятся клиенту при входе в воронку (формат — как в блоке «Состояние диалога»).

Как работает

При входящем сообщении движок:

  • Если пришла команда `/start` (в т.ч. `/start payload` или `/start@bot`) — всегда сбрасывает текущее состояние клиента и запускает воронку заново, даже если человек завис на предыдущем шаге.
  • Перебирает активные воронки и проверяет «Начало диалога» каждой. Логика совпадения:

- есть визуальный конструктор условий → вычисляется он; - иначе есть ключевые слова → текст клиента проверяется по выбранному режиму («Точно так» — точное равенство; «Регулярка» — по выражению; «Похоже» и «Содержит слова» работают как «текст содержит подстроку»); - оба пустые → catch-all (любое сообщение).

  • Берётся первая воронка с явным совпадением по условию. Воронки-«ловушки» без условий откладываются как запасной вариант: если ни одно условие не совпало, запускается воронка по умолчанию (is_default) или первая catch-all.
  • При `/start` с параметром бот разбирает payload и пишет переменные клиента: формат `utm_source=fb&utm_campaign=promo` сохраняется как отдельные переменные (`utm_source`, `utm_campaign` и т.д.), а простой код `ref_mycode` — в переменную `start_ref` (только при первом входе).
  • Запускается «Начало диалога»: выполняются встроенные формулы (если есть) и отправляется текст блока. Дальше движок идёт по исходящей стрелке к следующему блоку.

Важно: фактический выбор воронки опирается только на поле «Условие» / ключевые слова, режим соответствия, конструктор условий и стоп-слова. Поля «Приоритет», «Отвечать один раз» и переключатели Callback в самом отборе стартовой воронки не участвуют — при нескольких совпадениях берётся первая подходящая воронка.

Пример

Нужно, чтобы по слову «цена» запускалась воронка с прайсом:

  • В поле «Условие» пишем: `цена; стоимость; сколько стоит`
  • «Строгость совпадения» — «Содержит слова»
  • На вкладке «Текст» добавляем текст «Вот наши тарифы» и кнопки с планами

Параллельно держим вторую воронку с пустым условием — она поймает все остальные сообщения и отправит главное меню.

Частые ошибки

  • Несколько ключевых слов через запятую. Разделитель — только `;` или перенос строки. `цена, стоимость` будет воспринято как одна длинная фраза, а не два слова.
  • «Начало диалога» без текста молчит. Если вкладка «Текст» пустая, клиент напишет `/start` и не получит ответа. Заполните её либо ведите стрелкой в блок «Состояние диалога».
  • Несколько воронок ловят всё. Воронка с пустым условием перехватывает любое сообщение. Если таких несколько — сработает воронка по умолчанию или первая попавшаяся; задавайте конкретные ключевые слова, чтобы избежать конфликтов.
  • Невалидная регулярка. В режиме «Регулярка (regex)» битое выражение даёт «нет совпадения» — редактор подсветит ошибку прямо в поле.
  • Instagram. Комментарий к посту/Reels не открывает 24-часовое окно диалога — бот сможет ответить только после сообщения в Direct.