Перейти к содержимому

Ожидание сообщения

Робот Ожидание сообщения ([Telegram] Ожидание ответа / [MAX] Ожидание ответа) приостанавливает выполнение бизнес-процесса до тех пор, пока клиент не отправит сообщение, не будет получен ответ оператора, не закроется диалог или не истечёт таймаут. Это основной робот для построения интерактивных сценариев общения.

  • Ожидать ответ клиента после отправки сообщения или вопроса
  • Обрабатывать нажатия инлайн-кнопок (callback)
  • Фильтровать ответы по ключевым словам или регулярным выражениям
  • Создавать последовательные диалоговые сценарии (чат-боты)
ПараметрОписаниеОбязательный
ЛинияЛиния Олчат, на которой ожидается ответДа
Тип идентификатораСпособ определения чата: по телефону, ID чата или usernameДа
ID чата / Username / ТелефонИдентификатор чата, в котором ожидается сообщениеДа
Тип совпаденияКритерий, по которому определяется подходящее сообщениеНет (по умолчанию: Любое сообщение)
ПаттернКлючевое слово, регулярное выражение или callback_dataНет
Отменить при ответе оператораПрекратить ожидание, если оператор ответил в диалогеНет (по умолчанию: Да)
Отменить при закрытии диалогаПрекратить ожидание, если диалог закрытНет (по умолчанию: Да)
Таймаут (часов)Максимальное время ожидания (0 = без ограничения)Нет (по умолчанию: 24)
ТипОписаниеПример паттерна
Любое сообщениеЛюбое входящее сообщение от клиента
Только текстТолько текстовые сообщения (без медиа)
Только медиаТолько файлы, фото, видео, голосовые
Ключевое словоСообщение содержит указанное слово или фразуподтверждаю
Регулярное выражениеСовпадение по regex-шаблону`^(да
Нажатие кнопкиCallback от инлайн-кнопки (Telegram)confirm_order

Сначала добавьте робота Отправить сообщение или Сообщение с кнопками, который задаёт клиенту вопрос.

После робота отправки добавьте [Telegram] Ожидание ответа или [MAX] Ожидание ответа.

  • Выберите ту же линию, что использовалась для отправки
  • Укажите тот же идентификатор получателя
  • Выберите подходящий тип совпадения

При необходимости отключите автоматическую отмену при ответе оператора или закрытии диалога. Укажите таймаут.

Добавьте условие после робота ожидания для обработки результата. Используйте возвращаемые значения для ветвления логики.

В дизайнере бизнес-процессов робот работает аналогично, но предоставляет более гибкие возможности для условного ветвления и обработки результатов.

ЗначениеТипОписание
is_sentboolПодписка создана успешно: Y или N
received_messagestringТекст полученного сообщения
received_atstringВремя получения сообщения
timed_outstringСработал ли таймаут: Y или N
wake_reasonstringПричина пробуждения: message, operator, close, timeout
errorstringТекст ошибки (при неуспешном выполнении)
error_codestringКод ошибки
ЗначениеОписание
messageПолучено сообщение, соответствующее критерию
operatorОператор ответил в диалоге
closeДиалог закрыт
timeoutИстёк таймаут ожидания
КодОписание
LINE_NOT_FOUNDЛиния не найдена или не активна
CHAT_NOT_FOUNDНе удалось найти чат с указанным получателем
SUBSCRIPTION_ERRORНе удалось создать подписку на ожидание
  1. Отправить сообщение: Ваш заказ №{{ID сделки}} готов к доставке. Подтвердите получение, ответив «Да».
  2. Ожидание ответа (тип: Ключевое слово, паттерн: да)
  3. Условие: если wake_reason = message — подтверждение получено; если timed_out = Y — клиент не ответил
  1. Сообщение с кнопками: отправить вопрос с вариантами ответа
  2. Ожидание ответа (тип: Нажатие кнопки, паттерн: confirm или cancel)
  3. Условие: проверить received_message — оно содержит callback_data нажатой кнопки

Последовательность «отправка — ожидание — обработка — отправка — ожидание»:

  1. Отправить вопрос 1
  2. Ожидание ответа (тип: Любое сообщение)
  3. Сохранить received_message в переменную
  4. Отправить вопрос 2
  5. Ожидание ответа
  6. Обработать все собранные ответы
  • Одновременно может быть активна только одна подписка на ожидание для конкретного чата на конкретной линии
  • При ответе оператора в диалоге ожидание автоматически прекращается (если не отключено), чтобы бизнес-процесс не блокировал работу оператора
  • Тип совпадения Нажатие кнопки доступен только для Telegram (с инлайн-кнопками)
  • При таймауте возвращаемое значение received_message будет пустым