Использование переменных
Страница участника СайтЗаказать чат-ботаПолучить консультацию Группа в Телеграм
Консультации по Salebot в телеграм.
Закажите разработку чат-бота сейчас!
Переменная — некая ячейка в памяти, содержащая определенное пользователем или программой значение.
Значение переменной можно использовать и изменять в ходе выполнения программы.
На картинке справа, приведён простой пример, помогающий понять, что такое переменные:
- В верхнем блоке мы запрашиваем у пользователя его имя
- В стрелке – сохраняем введенное значение в переменную
user_name
- В нижнем блоке – выводим значение переменной
Классы переменных
Переменную можно использовать на протяжении всей воронки бота. Конкретно в данном примере, значение переменной может "обнулится", если мы вставим красный блок в конец воронки.
В Salebot есть шесть основных классов переменных[1]:
- Константы — неизменяемые глобальные переменные проекта (без префикса)
- Проекта — глобальные переменные проекта (два префикса:
project.
илипроект.
) - Клиента — локальные переменные клиента (два префикса:
client.
иликлиент.
) - Сделки — локальные переменные сделки клиента (без префикса)
- Встроенные — динамические переменные конструктора Salebot (без префикса)
- Встроенные — неизменяемые переменные конструктора Salebot (без префикса)
При задействовании переменных в проекте, следует следить за тем, чтобы их имена не пересекались: не стоит создавать переменную клиента и переменную проекта с одним именем (допустим, проект.имя и клиент.имя), в дальнейшем, это может негативно сказаться, как на стадии отладки, так и на стадии релиза. Это касается всех типов переменных.
Внимание! Имя переменной не может начинаться с цифры или содержать пробелы.
Нельзя использовать: Можно: |
Конструктор понимает вложенные переменные, где значение одной переменной входит в имя переменной другой. Например: #{q#{test#{i}}}
|
Поле использования переменной | Полное имя переменной (пример) | Формат использования | Указание префикса, при наличии |
---|---|---|---|
Поле "Текст сообщения" | client.stage | #{client.stage} | Рекомендуется |
Поле "Калькулятор" | project.count | count, project.count, #{count}, #{project.count} | Рекомендуется
В блоках условий if - не рекомендуется |
Поле "Задержка перед ответом" | project.delay | delay | Нет |
Поле "Время отправки с учетом задержки" | project.webtime | webtime | Нет |
Поле "Дата отправки с учетом задержки" | project.webdate | webdate | Нет |
Поле "Условие" | client.birthday | #{birthday}, #{client.birthday} | Не требуется |
Поле "Переменная для сравнения" | client.status | status | Нет |
Поле "Расширенные настройки кнопок" | project.active_menu | #{project.active_menu} | Да |
Поле "Подсказка в мессенджерах без кнопок" | client.helpermenu | #{client.helpermenu} | Да |
Поле "URL вложения" | project.weblink | #{project.weblink} | Рекомендуется |
Поле "Вводимые данные" | client.name | client.name | Да |
Константы
Константы – это такие же глобальные переменные проекта, но с единственным отличием - значение константы не может быть изменено в процессе выполнения бота. Они создаются только на стадии разработки.
Задать константы, как и их значения, можно в Настройках проекта.
Проекта (общие переменные)
Глобальные переменные проекта и будут доступны для любого пользователя бота, в отличие от переменных Сделки и переменных Клиента.
Разумно использовать такие переменные для статистики бота, подсчета баллов и голосов, хранения общих ссылок на вебинары, дат, времени и т.д. То есть, те переменные, значения которых, как мы предполагаем, будет меняться в процессе выполнения бота.
Глобальные переменные в Конструкторе воронок используют профикс:
Префикс общих переменных – project. или проект.
|
Есть два способа создания переменных:
- Переменные и их первоначальные значения задаются в настройках проекта.
- Переменные и их значения задаются в поле Калькулятор через оператор присвоения
=
.
Пример создания новой общей переменной count
в Калькуляторе:
project.count = 1
Клиента (переменные клиента)
Переменные клиента имеют отношение только к конкретному пользователю бота. У каждого пользователя – свои переменные клиента.
Рекомендуется использовать для хранения баллов пользователя, постоянных персональных данных (имя, № телефона, e-mail, адрес).
Префикс переменных в Конструкторе воронок – client. или клиент.
|
Пример создания новой переменной Клиента ид
в Калькуляторе:
клиент.ид = 333777
Сделки (переменные сделки)
Переменные сделки имеют отношение только к конкретному пользователю бота. У каждого пользователя – свои переменные сделки.
Переменные этого типа также доступны во вкладке Клиенты.
Внимание! Значения переменных сбрасываются при попадании пользователя в красный блок |
Пример создания новой переменной Клиента ответ
в Калькуляторе:
ответ = 'Да'
Использование переменных
Поле Калькулятор
Основное поле для работы с переменными – поле Калькулятор. Калькулятор поддерживает логические и арифметические операции.
Формат переменных зависит от ваших задач, если вам нужно:
|
Поддерживаемые операторы
|
|
|
Смотри также
Оператор сравнения "IF" (условие "если")
Оператор используется для того, чтобы сравнить два значения между собой. Оператор выполняется через процедуру присвоения переменной.
Внимание! Максимальная длина выражения: 1000 символов |
Типичная запись:
var_2 = if(var_1 == 1, 3, 7) /* если var_1 равна единице, тогда var_2 будет равна 3, иначе 7 */ statusA = if(client_phone != '', "зарегистрирован", "не зарегистрирован") /*если в переменной client_phone ничего нет, тогда statusA будет "не зарегистрирован" */ newbie = if(user_name == "#{none}", True, False) /* если имя пользователя "пустое", тогда newbie = True, иначе newbie = False */ exist = if(len(variable) == 0, True, False) /* если в переменной variable что-то содержится, тогда exist = True, иначе exist = False */
Также, можно использовать вложенные конструкции "если". Это пригодится, если хотите научить бота подсчитывать сумму заказа, когда стоимость единицы товара зависит от его количества.
Сумма_Заказа = round(if(Количество >=100, if(Количество >=200, if(Количество >=300, if(Количество >=400, if(Количество >=500, if(Количество >=1000, if(Количество >=2000, if(Количество >=3000, if(Количество >=5000, 25*Количество, 30*Количество), 35*Количество), 40*Количество), 45*Количество), 50*Количество), 55*Количество), 60*Количество), 65*Количество), "Не могу посчитать... Вы ошиблись где-то при оформлении заказа. Попробуйте еще раз с самого начала.") * 100) / 100
Результат работы данного выражения:
|
Другие поля редактора
Помимо поля Калькулятор, сравнивать переменные можно в поле Переменная для сравнения.
Поле Переменная для сравнения работает совместно с полем Условие. То есть, должно выполниться как условие, так и условие в переменной для сравнения.
Если в поле Переменная для сравнения указать просто имя переменной, без выражения, то условие будет сравниваться с ней, а не с тем, что ввел пользователь
Проверим с какого мессенджера пришел клиент (для этого, воспользуемся встроенной динамической переменной client_type
).
Проверить соответствие мессенджера можно так:
Или так:
Примеры сравнения в поле Переменная для сравнения:
возраст >= 18 #--> " Возраст больше 18 или равен 18 " возраст > 18 or возраст == 18 #--> " Возраст больше 18 или равен 18 " client_phone != '' #--> " Номер телефона клиента не задан " client_type != 6 || client_type != 2 #--> " Любой мессенджер, кроме WhatsApp и Viber " client_type < 7 #--> " Мессенджеры с client_type меньше 7 (не включая 7) "
Полезные ссылки
- Встроенные переменные
- Видео: https://youtu.be/HYmTWtOi0YQ – сравнение переменных
- Видео: https://youtu.be/TN1f0xrV8tk – работа с логическими условиями
- Видео: https://youtu.be/Gx_2-s0cM8c – где нужны скобки в переменных
Сноски
- ↑ Первые 4 класса переменных – это пользовательские переменные.