В воронках появился блок-действие "Обновить поля пользователя".
Позволяет обновлять стандартные и дополнительные поля.
Для вычисления значения используется 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"