Обновление полей пользователя в воронках

Написано 4 месяца назад
Просмотрен 159 раз
0

В воронках появился блок-действие "Обновить поля пользователя".

Позволяет обновлять стандартные и дополнительные поля.

Для вычисления значения используется js-выражение. В этом блоке можно:

  • использовать локальные переменные объектов
  • использовать параметры входящего события
  • указать фиксированную строку/число
  • совершать математические вычисления
  • обрабатывать строчные значения
  • строить условия

и другие возможности javascript

Присвоение локальных переменных

Если ранее в воронке вы уже задали переменные для объектов, здесь вы можете использовать их:

В этом примере в качестве имени присваивается последнее сообщение, полученное в чате (и сохраненное в переменную lastMessage). А в качестве "баллов", какое-то числовое значение, получившееся в результате предыдущих блоков воронки.

Присвоение из параметров события

Как вы уже знаете, воронки построены на событиях-триггерах. Каждое действие выполняется в ответ на какое-то событие. И у каждого события есть свои параметры. Они "лежат" в переменной event. Для того, чтобы узнать какие данные есть в текущем событии, воспользуйтесь этой статьей.

В этом примере получим значение username из события "команда бота". Проверяем объект события и находим там "username".

Далее указываем его в поле-значении "tg_username" (обычное доп.поле с типом "строка"). Путь до нужной переменной начинается с event. и разделяется точками с каждым уровнем вложенности.

В данном случае в event есть объект chat, а уже в chat есть значение username.

Фиксированные строки/числа

В поле присвоения можно указать и фиксированное значение. Например, чтобы присвоить пол, нужно передать одно из значений: male или female. Схема может выглядеть так:

Обратите внимание! Фиксированное текстовое значение необходимо указывать в кавычках:

Это связано с тем, что без указания кавычек, программа будет пытаться найти переменную с указанным названием - её нет, поэтому произойдет ошибка "переменная не определена".

На числовые значения это не распространяется. Числа можно указывать без кавычек.

P.s. кстати задачу с присвоением значения пола можно решить и с использованием локальных переменных. Для этого, в событии с ответом пользователя задаем переменную (например user.gender) и в поле присвоения пишем user.gender. Схема может выглядеть так:

Математические вычисления

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

Например, допустим, что в процессе воронки у пользователя собрались переменные points и penaltyPoints. И также случилось событие, в котором пришло значение в поле params.addPoints. Чтобы вычислить значение и записать его в доп поле, можно использовать такое выражение:

user.points - user.penaltyPoints + event.params.addPoints

Для более глубокого изучения возможностей арифметических вычислений, можете ознакомиться с этой статьей.

Обработка строк

В поле присвоения значения можно проводить любые операции со строчными значениями: обрезать, соединять, разделять и т.д. Для примера присвоим имя и фамилию из чата доп.полю "полное имя чата".

В данном случае, 3 строки объединяются в 1 (вторая строка " " - это пробел).

Для того, чтобы заменить значение в строке, используйте выражение вида myValue.replace("старый текст","новый текст") Где, myValue - исходная строка (ваше значение переменной), "старый текст" - то, что будет заменено, "новый текст" - новое значение.

Например в результате выражения "строка с ненужным текстом".replace("ненужным ", "") получится значение "строка с текстом", т.к. подстрока "ненужным ", была заменена пустой строкой.

Для более глубокого изучения возможностей работы со строками, можете ознакомиться с этой статьей

Использование условий

Также при обработке значения можно использовать условные операторы:

  • && (И)
  • || (ИЛИ)
  • ! (НЕ)

Например, можно написать так:

*Продвинутый уровень. Можно присвоить разные значения, в зависимости от условия используя условный оператор. Например так: user.points > 20 ? "vip" : "standart"

refunnels
воронка
действия с пользователями
дополнительные поля
пользователь