Loop
Используйте Loop, чтобы повторить одни и те же шаги для пользователя несколько раз, не дублируя их на холсте. Он подходит для напоминаний, повторных обращений и проверок, которые должны выполняться снова и снова, до заданного вами лимита. После последнего повтора пользователь переходит к следующей части journey.
Варианты использования
Anchor link to- Напоминания об оплате: отправьте напоминание и дождитесь оплаты. Пользователи, которые оплатили, переходят дальше и больше не получают напоминаний. Пользователи, которые не оплатили, получают ещё одно напоминание после паузы, до установленного вами лимита.
- Возврат неактивных пользователей: отправьте ограниченное число побуждающих сообщений с паузой между ними. После последнего переведите пользователей на другое предложение или прекратите отправку сообщений.
- Постоянная проверка события: ожидайте одно и то же событие снова и снова, не дублируя шаг ожидания по всему холсту.
Предварительные требования
Anchor link toПо умолчанию Loop отключён. Чтобы его использовать, попросите поддержку Pushwoosh включить его для вашего аккаунта.
Добавление и настройка Loop
Anchor link toСначала постройте шаги, которые хотите повторять, затем разместите Loop сразу после них. У Loop два выхода:
- Repeat: соединение обратно к первому повторяемому шагу. Пользователи возвращаются туда и проходят шаги заново.
- Exit: соединение вперёд к тому, что идёт после цикла. Пользователи попадают туда после последнего повтора.
-
Добавьте элемент Loop сразу после шагов, которые хотите повторять, и дважды щёлкните по нему.
-
В Maximum repeats задайте, сколько раз пользователь может пройти повторяемые шаги, от 1 до 100. По умолчанию — 10. Число вне этого диапазона округляется до ближайшей границы сразу при сохранении.
-
В Not more often than every, s задайте минимальную паузу между двумя повторами для одного пользователя, в секундах:
- 0: используйте, когда повторяемые шаги уже сами содержат ожидание — шаг Wait for Trigger, шаг Time delay или другой Loop с собственной паузой.
- 60 или больше: используйте, когда ничто в повторяемых шагах не ожидает. Loop удерживает каждого пользователя, пока не пройдёт это время с его последнего повтора. Если вы введёте значение от 1 до 59, оно сразу изменится на 60.
Если оставить
0, а ни один из повторяемых шагов не содержит ожидания, journey не сохранится и покажетThe loop body has no waiting element, set a minimum interval. Без паузы цикл повторялся бы настолько быстро, насколько это может обработать система. Установите 60 или больше, либо добавьте шаг Wait for Trigger или Time delay в повторяемые шаги.
-
Перетащите соединение от выхода Repeat обратно к первому шагу, который хотите повторять. В примере выше это напоминание Push.
Если Repeat не соединён, journey не сохранится и покажет
Connect the repeat output of the Loop. Если он ведёт к самому Loop, вы увидитеThe repeat output of the Loop cannot lead to the Loop itself. -
Перетащите соединение от выхода Exit к шагу, который должен идти после цикла, например к финальному сообщению или другому предложению. Пользователи попадают туда, пройдя цикл Maximum repeats раз.

-
Нажмите Save.
Только Repeat может вести обратно к более раннему шагу. Если вы соедините любой другой выход с более ранним шагом в journey, journey не сохранится.
Что происходит при каждом повторе
Anchor link toКаждый шаг в повторяемой части выполняется заново при каждом повторе. Учитывайте эти правила при её построении.
Изменения Tag накапливаются
Anchor link toШаг Update user profile внутри цикла выполняется на каждом повторе. Что это значит, зависит от действия:
- Увеличить, уменьшить, добавить элемент списка, удалить элемент списка: изменение накапливается. Например, при Maximum repeats, равном 100, Tag, увеличиваемый на 1, вырастет на 100, а не на 1.
- Заменить значение: безопасно повторять, поскольку не накапливается.
Когда шаг содержит накапливающееся изменение, он показывает предупреждение, объясняющее, что изменение накапливается на каждом повторе.

Ожидания начинаются заново при каждом повторе
Anchor link toШаг Wait for Trigger или Time delay отсчитывает время от текущего повтора, а не от момента, когда пользователь вошёл в цикл. 24-часовое ожидание означает 24 часа на каждом повторе, поэтому пользователь, проходящий цикл 3 раза, может провести в нём до 72 часов.
Пользователи остаются в той же тестовой ветви
Anchor link toA/B/n Split отправляет каждого пользователя в одну и ту же ветвь каждый раз, когда он её достигает: на каждом повторе и при повторном входе в journey позже. Holdout Split работает так же. Это сохраняет точность результатов теста, поскольку ни один пользователь не может перейти в другую ветвь и быть посчитан дважды.
Wait for Trigger использует последнее событие
Anchor link toШаг Wait for Trigger внутри цикла хранит только событие текущего повтора. Каждое новое событие заменяет событие предыдущего повтора. Последующие шаги, использующие данные события, всегда получают последнее событие: плейсхолдеры сообщений, динамический Time delay, динамическое значение Tag и Condition split.
Цели засчитываются один раз, сообщения — на каждом повторе
Anchor link toЦель конверсии, достигнутая внутри цикла, засчитывается один раз для всего journey, а не по разу за повтор.
С сообщениями всё иначе. Каждый повтор шага канала — это отдельная отправка, которая учитывается в лимите ограничения частоты отправки пользователя. Шаг Push, повторяющийся 10 раз, может использовать до 10 отправок из этого лимита, а не одну.
Вложенные циклы
Anchor link toВы можете поместить один Loop внутрь повторяемой части другого. Каждый Loop считает собственные повторы. Внутренний Loop начинает счёт заново с нуля каждый раз, когда пользователи покидают его, поэтому он снова выполняет все свои повторы на каждом повторе внешнего Loop.
Например, если Maximum repeats внешнего Loop равен 3, а внутреннего — 2, шаги внутреннего Loop могут выполниться до 2 × 3 = 6 раз. Общий лимит в 1000 повторов по-прежнему применяется.
Лимит безопасности для всех циклов
Anchor link toОдин пользователь может пройти не более 1000 повторов суммарно по всем Loop в journey, даже если собственный Maximum repeats каждого Loop допускает больше.
- Пользователь, достигший 1000, выходит через Exit последнего Loop, даже если собственный лимит этого Loop ещё не достигнут.
- Этот лимит защищает от вложенных друг в друга циклов, которые в сумме дают намного больше повторов, чем вы ожидаете, например два цикла по 100 повторов, вложенных один в другой.