Использование данных из ответа вебхука в вашем Journey
Обзор
Anchor link toКогда вы сопоставляете значения из ответа вебхука, Pushwoosh сохраняет их как переменные, которые вы можете использовать позже в Journey в элементах «Обновить профиль пользователя», «Задержка по времени» и для персонализации контента так же, как вы бы использовали атрибут события. Единственное исключение — «Разделение по условию»: оно не может напрямую ветвиться по переменной из вебхука, потому что ему нужно значение с объявленным типом (Tag или атрибут события), а у сопоставленного значения из вебхука нет типа. См. Сравнение значения из вебхука в элементе «Разделение по условию» ниже.
Сохранение значения из вебхука как Tag с помощью элемента «Обновить профиль пользователя»
Anchor link toWebhook может возвращать данные из внешней системы, такие как ID пользователя в CRM или статус подписки, которые Pushwoosh еще не хранит в профиле пользователя. Элемент «Обновить профиль пользователя» сохраняет сопоставленные значения как теги (Tags), чтобы вы могли использовать их в сегментах, динамическом контенте и на последующих шагах Journey.
Пример: сохранение CRM user ID как Tag
Anchor link toНовый пользователь регистрируется в вашем приложении, и Journey создает соответствующую запись в вашей CRM. Сохранение возвращенного CRM user ID как Tag позволяет вам ссылаться на ту же запись в CRM или обновлять ее позже, например, из другого Journey или последующего вызова Webhook, вместо создания дублирующей записи каждый раз, когда пользователь повторно входит в Journey.
Схема Journey: Вход на основе триггера → Webhook → Обновить профиль пользователя → завершение ветки
- Создайте Journey с входом на основе триггера по событию
SignUp. - Добавьте элемент Webhook после шага входа. Назовите его (например,
Создать пользователя в CRM) и установите URL запроса на эндпоинт создания пользователя в вашей CRM. - В сопоставлении ответа установите путь к полю ID в ответе (например,
data.user.id) и атрибутcrm_user_id.

-
Добавьте элемент «Обновить профиль пользователя» после шага Webhook.
-
В динамическом значении тега нажмите + Динамическое значение. В поле Tag выберите тег, который хранит CRM ID (создайте его заранее, если необходимо). В поле Событие выберите шаг вебхука по имени, которое вы ему дали (
Создать пользователя в CRM). В поле Динамическое значение выберитеcrm_user_id.

- Завершите ветку — добавьте элемент «Выход» или оставьте ее без исходящего соединения.

Планирование задержки на основе значения из вебхука с помощью элемента «Задержка по времени»
Anchor link toДаты визитов, сроки продления подписки и окна доставки часто хранятся во внешней системе бронирования или биллинга. После того как Webhook сопоставит дату из ответа API, элемент «Задержка по времени» может приостановить Journey до этого момента, например, за 2 дня до встречи, чтобы следующее сообщение было отправлено вовремя.
Пример: планирование напоминания на основе даты из ответа
Anchor link toПользователь записывается на прием в вашем приложении. Journey получает дату визита из вашей системы бронирования и отправляет push-уведомление за 2 дня до визита.
- Создайте Journey с входом на основе триггера по событию
AppointmentBooked. - Добавьте элемент Webhook после шага входа. Назовите его (например,
Получить детали записи) и установите URL запроса на API вашей системы бронирования. - В сопоставлении ответа установите путь к полю даты в ответе (например,
appointment.date) и атрибутvisit_date.

- Добавьте элемент «Задержка по времени» после шага Webhook. Выберите На основе данных пользователя/события, установите Получить дату из в Событие, установите Событие на шаг вебхука по имени, которое вы ему дали (
Получить детали записи), установите Значение события вvisit_dateи установите задержку За2дня.

- Если пользователи могут записаться менее чем за 2 дня до визита, включите опцию Разделить на ветки, если дата в прошлом или пуста в элементе «Задержка по времени». Это создаст две ветки: В прошлом и В будущем. См. Разделение на ветки, когда дата в прошлом или пуста.
- Добавьте шаг Push с вашим сообщением-напоминанием. Если разделение включено, добавьте этот Push в обе ветки: В прошлом (отправить немедленно) и В будущем (после задержки по времени).
- Завершите каждую ветку — добавьте элемент «Выход» или оставьте ее без исходящего соединения.

Сравнение значения из вебхука в элементе «Разделение по условию»
Anchor link to«Разделение по условию» ветвится на основе сегмента, тега или атрибута события с объявленным типом. Значение, сопоставленное из ответа вебхука, не имеет типа, поэтому оно не отображается в выпадающих списках «Разделения по условию» и не может быть сравнено напрямую.
Чтобы ветвиться по значению из вебхука, сначала сохраните его как тег соответствующего типа с помощью элемента «Обновить профиль пользователя», а затем сравните этот тег в «Разделении по условию».
Пример: ветвление на основе баланса из вебхука в сравнении с суммой из триггерного события
Anchor link toПользователь запрашивает покупку, и Journey проверяет, покрывает ли его баланс в CRM цену из триггерного события, прежде чем продолжить.
Схема Journey: Вход на основе триггера → Webhook → Обновить профиль пользователя → Разделение по условию
- Создайте Journey с входом на основе триггера по событию
PurchaseRequestedс числовым атрибутомrequired_amount. - Добавьте элемент Webhook после шага входа. В сопоставлении ответа установите путь к полю баланса в ответе (например,
current_balance) и атрибутcurrent_balance. - Добавьте элемент «Обновить профиль пользователя» после шага Webhook. В динамическом значении тега установите Tag на числовой тег типа Integer или Price (создайте его заранее, если необходимо, например
Current_balance), Событие на шаг вебхука и Динамическое значение наcurrent_balance. - Добавьте элемент «Разделение по условию» после «Обновить профиль пользователя». Установите условие на тег
Current_balance, оператор больше или равно, а для значения выберите Атрибут события → событие входа →required_amountвместо константы. - Подключите каждую ветку к следующим шагам.
Что следует помнить
Anchor link to- Синтаксис пути: используйте путь, разделенный точками (например,
data.user.id), или сегмент*для сопоставления каждого элемента массива. Фильтры не поддерживаются. Подробнее см. в разделе Сопоставление каждого элемента массива. - Размер ответа: ответы размером более 64 КБ не обрабатываются для сопоставления.
- «Разделение по условию»: сопоставленное значение из вебхука не имеет типа и не может быть использовано напрямую. Сначала сохраните его как тег. См. Сравнение значения из вебхука в элементе «Разделение по условию».
- Тестирование: запустите тестирование вебхука в элементе Webhook перед использованием сопоставленных значений в активном Journey. Убедитесь, что запрос успешен, затем проверьте тело ответа на соответствие каждому пути на вкладке журнала вызовов. Если значение выглядит неверным для конкретного путешественника после запуска Journey, проверьте строку этого путешественника в журнале вызовов.
- Списки в ответе: используйте
*в пути для сопоставления каждого элемента. Выберитеitem_{n}для отдельных атрибутов или имя без{n}для одной строки, разделенной запятыми. Индексы пути начинаются с 0. Имена{n}начинаются с 1. Сопоставляются не более первых 50 элементов. См. Сопоставление каждого элемента массива.