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

Выполнение — это один проход по графу одной кампании для одного человека, и оно всегда находится в одном из пяти состояний: выполняется, ожидает ответа, ожидает задержку, завершено, или провалено. Выполняемое выполнение проходит по графу узел за узлом, пока что-то его не припаркует или не завершит. Завершено и Провалено — финальные состояния — выполнение никогда не перезапускается, хотя более позднее событие может запустить новое.

Панель выполнения на холсте не печатает эти пять имён. Она показывает, активно ли выполнение, узел, на котором оно находится, пройденный путь и сообщение об ошибке, если оно есть; имена ниже описывают, что вместе означают эти поля.

СостояниеЧто делает выполнениеПереходит в, при чём
ВыполняетсяПроходит по графу, выполняя каждый достигнутый узелОжидание, Завершено или Провалено — в зависимости от того, что произведёт следующий узел
Ожидание ответаПрипарковано на condition, у которого включён wait_for_replyВыполняется при ответе; Провалено после 7 дней молчания
Ожидание задержкиПрипарковано на узле delay с запланированным возобновлениемВыполняется, когда ожидание истекает; Завершено, если ответ его отменяет; Провалено, если возобновление так и не запускается
ЗавершеноЗакончено. Больше никакие узлы не запустятсяФинальное
ПроваленоОстановлено с записанной ошибкойФинальное
НачалоВыполняетсяОжидание ответаОжидание задержкиЗавершеноПроваленоКонец приходит совпадающее событие условие настроено ждать ответа человек отвечает или нажимает кнопку достигнут узел delay ожидание истекает ответ отменяет ожидание, настроенное продолжать только если нет ответа узел stop, или выход, к которому ничего не подключено узел посещён повторно, или зависшее выполнение подобрано разверткой нет ответа 7 дней запланированный шаг так и не запускается
  • Активно: да
  • Записывается: узел, на котором оно сейчас находится, и каждый узел, через который оно уже прошло
  • Заканчивается на: узле stop, выходе, к которому ничего не подключено дальше, или на повторно посещённом узле

Выполняемое выполнение проходит по графу за один проход: триггер, затем каждый подключённый узел по очереди. Узлы-действия отправляют своё ЛС, публикуют свой комментарий, или меняют теги контакта и передают управление дальше. Ничего не планируется — выполнение приостанавливается только на узле delay или на condition, ожидающем ответа.

Действие, вызвавшее ошибку, останавливает продвижение выполнения, не завершая его. Выполнение остаётся активным с ошибкой, записанной за этим узлом, поэтому панель может показывать активное выполнение, которое никуда не движется; развёртка позже закрывает его как провалившееся.

Повторное посещение узла завершает выполнение и записывает ошибку цикла с именем этого узла. Каждый узел в графе запускается не более одного раза за выполнение.

  • Активно: да
  • Записывается: запись “ожидание ответа” за узлом condition, на котором оно припарковано
  • Выживает: 7 дней без ответа

condition с включённым wait_for_reply паркует выполнение вместо немедленной оценки. Следующее ЛС человека, ответ на комментарий в той же ветке, или нажатие кнопки будит его, и текст этого ответа — это то, с чем сопоставляет условие: Match отправляет выполнение через первый выход, No Match — через второй.

Выполнение, которое ждёт 7 дней без ответа, закрывается как провалившееся, с сообщением, что человек так и не ответил. Это применяется и к тестовым выполнениям — тестовое выполнение, припаркованное на ожидающем условии, не получает настоящего ответа и истекает так же.

  • Активно: да
  • Записывается: запись “запланированная задержка” с именем ожидания в секундах
  • Выживает: всё запланированное ожидание; возобновление, просроченное больше чем на час, вместо этого проваливается

Узел delay планирует возобновление и прекращает продвижение. Настроенный delay_seconds ограничивается диапазоном от 1 секунды до 31 536 000 секунд (365 дней); значение вне этого диапазона обрезается без ошибки.

Задержка с включённым only_if_no_reply проверяет наличие ответа, когда ожидание истекает. Если человек ответил в любой момент во время ожидания, выполнение завершается вместо продолжения по ветке.

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

  • Активно: нет
  • Записывается: время завершения и полный путь узлов, через которые прошло выполнение
  • Сообщение об ошибке: нет

Выполнение завершается, когда достигает узла stop, когда выход, который оно берёт, ни к чему не подключён, или когда ответ отменяет задержку, настроенную продолжать только если ответа не было. Выполнение, заканчивающееся на узле stop, несёт запись “поток остановлен” как последний записанный шаг, что отличает намеренное завершение от ветки, к которой ничего не было подключено.

Завершение — это не вердикт о том, сделала ли кампания то, что вы хотели: выполнение, которое не совпало ни с одним ключевым словом и вышло через неподключённый выход No Match, — это завершённое выполнение.

  • Активно: нет
  • Записывается: сообщение об ошибке и узел, на котором выполнение остановилось
  • Повторяется: запланированное возобновление после задержки, до трёх раз; больше ничего

Выполнение проваливается четырьмя способами: узел посещён повторно, узел-действие вызывает ошибку и зависшее выполнение подхватывается разверткой, ожидающее условие проходит 7 дней без ответа, или запланированное возобновление так и не запускается.

Зависшее выполнение — активное, с ошибкой на последнем посещённом узле — закрывается в течение часа, когда у него ещё остаётся невыполненный запланированный шаг, и после 7 дней бездействия, когда его нет. До этого момента панель показывает его как активное, так что сообщение об ошибке на активном выполнении — это сигнал, что выполнение на практике завершено.

ЗаписываетсяГде вы это видите
Текст ошибки из провалившегося вызова — отклонённое ЛС, комментарий, которого больше не существует, отозванный токен страницыНа выполнении, и за узлом, который её вызвал, в пути
Узел, на котором остановилось выполнениеМаркер текущего узла в оверлее холста
Путь, пройденный до этого узлаПодсветка посещённых узлов на версии графа, к которой было прикреплено выполнение
Причина, по которой развёртка закрыла выполнениеНа выполнении: нет ответа за 7 дней, или запланированный шаг, который не запустился

Повторы узкие. Запланированное возобновление после delay пытается запуститься до трёх раз, с расширяющимся интервалом, начинающимся с пяти секунд, и выполнение помечается провалившимся после третьей попытки. Действие, провалившееся, пока выполнение проходило по графу, не повторяется, и ни одно выполнение не перезапускается с начала.

Человек, чьё выполнение провалилось, не исключается из кампании. Правило «одно выполнение на человека» считает только выполнения, которые всё ещё идут, так что следующее совпадающее событие от него запускает новое.

  • Каждое выполнение прикреплено к версии графа, на которой оно началось. Сохранение кампании в середине выполнения оставляет это выполнение на его собственной версии, и панель воспроизводит его относительно версии, которую он использовал.
  • Тестовые выполнения проходят весь граф, не обращаясь к Facebook или Instagram и не меняя теги. Узел delay завершает тестовое выполнение, а не планирует его, записывая задержку как пропущенную.
  • Панель перечисляет 20 последних выполнений кампании, сначала новые, с тестовыми выполнениями, помеченными как тесты, и не обновляется сама — обновите её, чтобы увидеть, как далеко продвинулось выполнение.