Документация

Что такое Чатиум
С чего начать
Web разработка
Мобильная разработка
Общие понятия
GetCourse API
Справка
Библиотеки
Все статьи

Работа с выражениями в модуле воронок

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

В воронках широкие возможности открывают выражения, которые используются в разных местах:

Так, вы можете сохранить любой параметр события в локальную переменную, а затем использовать его в любой части воронки (в условиях или других блоках). Или отправить во внешнюю систему, для тесной интеграции.

Фактически в этих выражениях используется чистый JavaScript.

С одной стороны, это может немного усложнить понимание, если вы не знакомы с этой технологией. С другой, это позволяет найти решение любой вашей задачи на просторах интернета, без привязки к синтаксису и правилам какой-то конкретной платформы. А для тех, кто уже знаком с js, это сильно расширяет возможности воронки.

Для решения большинства задач Вам достаточно ознакомиться с этой статьей. Если же что-то не получается решить, всегда можно обратиться в @RefunnelsBot за помощью.

Зачастую, в выражении воронки достаточно обратиться к какому-то объекту и возможно, сделать с ним вычисление. Для того, чтобы получить свойство объекта, необходимо написать его имя, затем поставить ., затем указать имя свойства. Например, чтобы получить свойство firstName объекта user, необходимо написать user.firstName.

Если в поле ввода выражения записать user.firstName, то будет возвращено значение поля firstName текущего пользователя.

Доступные объекты и присвоение значений

В зависимости от места, где вызывается выражение, доступен разный набор глобальных объектов. Это специальные объекты, которые предварительно сформированы воронкой для текущего выражения. Как правило, в силу того, что воронка построена на событиях, в любом выражении есть глобальный объект event. Это событие, которое стриггерило запуск текущего действия. Вы всегда можете обратиться к свойствам события через event.. Например, чтобы получить дату события, нужно написать так: event.date

Подробности объекта event всегда можно просмотреть, включив логирование данных.

Помимо объекта event, в большинстве случаев в выражении есть объекты агентов. Исключение - входящий фильтр события. В данном выражении есть только объект event, т.к. другие объекты на текущем этапе еще не успели сформироваться. На данный момент это user, deal, session и chat.

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

<имяОбъекта>.<имяСвойства> = <новоеЗначение>

Например:

user.name = "Alisa"
chat.email = "my@mail.com"
session.visitedOfferPage = true
user.startedMarafon = 1

Если такого свойства ранее не было, оно будет добавлено. Если свойство уже было, оно будет перезаписано. При этом новое значение может быть как такая же переменная другого объекта, так и примитив javascript. Ниже рассмотрим 3 таких примитива:

  • Число. Представляет как целые числа, так и числа с плавающей запятой: 25, 19.99

  • Строка: Последовательность символов, используемая для представления текста: "Текстовое значение"

  • Булевое значение: Может принимать одно из двух значений — true (истина) или false (ложь).

С остальными типами можете ознакомиться в этой статье.

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

Возвращаемое значение

Как правило выражение требует вернуть какое-то значение. Если Ваше выражение состоит из одной строки, можно сразу записать его. Например:

user.points + 1

Однако, если вы запишите в выражении код с более сложной логикой, в конце выражения необходимо написать return и далее значение, которое необходимо обработать. Например:

const myVar1 = user.points
const myVar2 = 1
const result = myVar1 + myVar2
return result

Т.к. в этом месте запускается javascript, вы можете использовать его возможности - объявлять переменные, запускать циклы, работать с датами, использовать встроенные методы примитивов и т.д.

Ниже разберем базовые возможности работы с примитивами.

Работа с числами

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

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

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

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

Работа со строками

В выражениях можно проводить множество операций со строчными значениями: обрезать, соединять, разделять и т.д. Обратите внимание! Если вы хотите использовать в выражении фиксированный текст, его обязательно нужно брать в кавычки. Т.к. без кавычек значение будет восприниматься переменной.

// не правильно!
user.name = Alisa
// правильно
user.name = "Alisa"

В примере выше, в первом варианте написания получится ошибка, что значение Alisa не определено. Т.к. движок попытается найти переменную с именем Alisa. А такой переменной нет.

Наиболее часто встречающийся кейс при работе со строками - это конкатенация (объединение) нескольких строк в одну.

Для примера присвоим имя и фамилию из чата доп.полю "полное имя чата".

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

Также как и числа, строки имеют множество встроенных возможностей. Один из таких методов - замена части строки (replace()).

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

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

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

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

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

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

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

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

Подробнее о логических операторах можно почитать здесь .

код
Воронки

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании