Перейти к содержанию

Использование данных из ответа вебхука в вашем Journey

Обзор

Anchor link to

Когда вы сопоставляете значения из ответа вебхука, Pushwoosh сохраняет их как переменные, которые вы можете использовать позже в Journey в элементах «Обновить профиль пользователя», «Задержка по времени» и для персонализации контента так же, как вы бы использовали атрибут события. Единственное исключение — «Разделение по условию»: оно не может напрямую ветвиться по переменной из вебхука, потому что ему нужно значение с объявленным типом (Tag или атрибут события), а у сопоставленного значения из вебхука нет типа. См. Сравнение значения из вебхука в элементе «Разделение по условию» ниже.

Сохранение значения из вебхука как Tag с помощью элемента «Обновить профиль пользователя»

Anchor link to

Webhook может возвращать данные из внешней системы, такие как ID пользователя в CRM или статус подписки, которые Pushwoosh еще не хранит в профиле пользователя. Элемент «Обновить профиль пользователя» сохраняет сопоставленные значения как теги (Tags), чтобы вы могли использовать их в сегментах, динамическом контенте и на последующих шагах Journey.

Пример: сохранение CRM user ID как Tag

Anchor link to

Новый пользователь регистрируется в вашем приложении, и Journey создает соответствующую запись в вашей CRM. Сохранение возвращенного CRM user ID как Tag позволяет вам ссылаться на ту же запись в CRM или обновлять ее позже, например, из другого Journey или последующего вызова Webhook, вместо создания дублирующей записи каждый раз, когда пользователь повторно входит в Journey.

Схема Journey: Вход на основе триггера → Webhook → Обновить профиль пользователя → завершение ветки

  1. Создайте Journey с входом на основе триггера по событию SignUp.
  2. Добавьте элемент Webhook после шага входа. Назовите его (например, Создать пользователя в CRM) и установите URL запроса на эндпоинт создания пользователя в вашей CRM.
  3. В сопоставлении ответа установите путь к полю ID в ответе (например, data.user.id) и атрибут crm_user_id.
Сопоставление ответа вебхука с Path data.user.id и Attribute crm_user_id
  1. Добавьте элемент «Обновить профиль пользователя» после шага Webhook.

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

Динамическое значение тега с тегом для CRM ID, шагом Webhook в качестве события и crm_user_id в качестве динамического значения
  1. Завершите ветку — добавьте элемент «Выход» или оставьте ее без исходящего соединения.
Ветка Journey, заканчивающаяся элементом «Выход» после шага «Обновить профиль пользователя»

Планирование задержки на основе значения из вебхука с помощью элемента «Задержка по времени»

Anchor link to

Даты визитов, сроки продления подписки и окна доставки часто хранятся во внешней системе бронирования или биллинга. После того как Webhook сопоставит дату из ответа API, элемент «Задержка по времени» может приостановить Journey до этого момента, например, за 2 дня до встречи, чтобы следующее сообщение было отправлено вовремя.

Пример: планирование напоминания на основе даты из ответа

Anchor link to

Пользователь записывается на прием в вашем приложении. Journey получает дату визита из вашей системы бронирования и отправляет push-уведомление за 2 дня до визита.

  1. Создайте Journey с входом на основе триггера по событию AppointmentBooked.
  2. Добавьте элемент Webhook после шага входа. Назовите его (например, Получить детали записи) и установите URL запроса на API вашей системы бронирования.
  3. В сопоставлении ответа установите путь к полю даты в ответе (например, appointment.date) и атрибут visit_date.
Шаг Webhook с сопоставлением ответа для appointment.date в visit_date
  1. Добавьте элемент «Задержка по времени» после шага Webhook. Выберите На основе данных пользователя/события, установите Получить дату из в Событие, установите Событие на шаг вебхука по имени, которое вы ему дали (Получить детали записи), установите Значение события в visit_date и установите задержку За 2 дня.
Элемент «Задержка по времени», настроенный на основе visit_date из вебхука со смещением «За 2 дня»
  1. Если пользователи могут записаться менее чем за 2 дня до визита, включите опцию Разделить на ветки, если дата в прошлом или пуста в элементе «Задержка по времени». Это создаст две ветки: В прошлом и В будущем. См. Разделение на ветки, когда дата в прошлом или пуста.
  2. Добавьте шаг Push с вашим сообщением-напоминанием. Если разделение включено, добавьте этот Push в обе ветки: В прошлом (отправить немедленно) и В будущем (после задержки по времени).
  3. Завершите каждую ветку — добавьте элемент «Выход» или оставьте ее без исходящего соединения.
Элемент «Задержка по времени», разделенный на ветки «В прошлом» и «В будущем», каждая с шагами Push и «Выход»

Сравнение значения из вебхука в элементе «Разделение по условию»

Anchor link to

«Разделение по условию» ветвится на основе сегмента, тега или атрибута события с объявленным типом. Значение, сопоставленное из ответа вебхука, не имеет типа, поэтому оно не отображается в выпадающих списках «Разделения по условию» и не может быть сравнено напрямую.

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

Пример: ветвление на основе баланса из вебхука в сравнении с суммой из триггерного события

Anchor link to

Пользователь запрашивает покупку, и Journey проверяет, покрывает ли его баланс в CRM цену из триггерного события, прежде чем продолжить.

Схема Journey: Вход на основе триггера → Webhook → Обновить профиль пользователя → Разделение по условию

  1. Создайте Journey с входом на основе триггера по событию PurchaseRequested с числовым атрибутом required_amount.
  2. Добавьте элемент Webhook после шага входа. В сопоставлении ответа установите путь к полю баланса в ответе (например, current_balance) и атрибут current_balance.
  3. Добавьте элемент «Обновить профиль пользователя» после шага Webhook. В динамическом значении тега установите Tag на числовой тег типа Integer или Price (создайте его заранее, если необходимо, например Current_balance), Событие на шаг вебхука и Динамическое значение на current_balance.
  4. Добавьте элемент «Разделение по условию» после «Обновить профиль пользователя». Установите условие на тег Current_balance, оператор больше или равно, а для значения выберите Атрибут события → событие входа → required_amount вместо константы.
  5. Подключите каждую ветку к следующим шагам.

Что следует помнить

Anchor link to
  • Синтаксис пути: используйте путь, разделенный точками (например, data.user.id), или сегмент * для сопоставления каждого элемента массива. Фильтры не поддерживаются. Подробнее см. в разделе Сопоставление каждого элемента массива.
  • Размер ответа: ответы размером более 64 КБ не обрабатываются для сопоставления.
  • «Разделение по условию»: сопоставленное значение из вебхука не имеет типа и не может быть использовано напрямую. Сначала сохраните его как тег. См. Сравнение значения из вебхука в элементе «Разделение по условию».
  • Тестирование: запустите тестирование вебхука в элементе Webhook перед использованием сопоставленных значений в активном Journey. Убедитесь, что запрос успешен, затем проверьте тело ответа на соответствие каждому пути на вкладке журнала вызовов. Если значение выглядит неверным для конкретного путешественника после запуска Journey, проверьте строку этого путешественника в журнале вызовов.
  • Списки в ответе: используйте * в пути для сопоставления каждого элемента. Выберите item_{n} для отдельных атрибутов или имя без {n} для одной строки, разделенной запятыми. Индексы пути начинаются с 0. Имена {n} начинаются с 1. Сопоставляются не более первых 50 элементов. См. Сопоставление каждого элемента массива.