Переменные
Статья рассказывает о переменных в системе, как их использовать, где их можно использовать. Продемонстрирует результат их работы
Как работать с переменными
Рассмотрим что такое переменные и как их использовать при создании чат-ботов на конструкторе Salebot.
Обращаем внимание!
Необходимо учитывать лимиты по переменным и константам в проекте:
Максимальное количество шаблонных переменных — 100;
Название шаблонной переменной не может превышать 100 символов;
Максимальное количество констант проекта — 50;
Название константы не может превышать 100 символов;
Значение константы не может превышать 5000 символов.
Переменная - это хранилище данных, которому мы присваиваем некое текстовое имя. А далее в это хранилище мы запоминаем вводимые пользователем данные и можем ими воспользоваться в любом месте воронки. В конструкторе есть не только встроенные и служебные переменные, но и пользовательские - это те, которые Вы сами задаете (объявляете) в проекте.
Объявить переменную - значит присвоить некое значение поименованному хранилищу, а если по-русски, то запись вида a=0 и есть то самое объявление переменной a. Мы только что сказали (объявили) конструктору, что в переменной a мы будем хранить число, пока это значение 0. Присвоить переменной значение имеет такой же смысл .
Также используют выражение Присвоить переменной значение функции, Приравнять переменную к функции. Принцип тот же, после знака равно ставим не конкретное значение, а функцию. Например, s_id = vk_send_message(platform_id, "Привет"). В этом случае в переменную запишется результат выполнения функции.
Обнулить переменную - значит присвоить этой переменной значение 0.
ПРАВИЛА РАБОТЫ С ПЕРЕМЕННЫМИ:
Переменная может начинаться только с буквы, с цифры нельзя
Возраст1 - ✅ правильно
1Возраст - ❌ неправильно
age1 - ✅ правильно - рекомендуемый вариант
Переменная не может содержать пробелы и иные спецсимволы, кроме нижнего подчеркивания
Имя_Фамилия - ✅ правильно
Имя Фамилия - ❌ неправильно
имяФамилия - ✅ правильно - рекомендуемый вариант
В имени переменной нельзя использовать зарезервированные слова языков программирования, например: print, true, false, count, sum и т.д.
КАТЕГОРИЧЕСКИ НЕЛЬЗЯ использовать для имен пользовательских переменных имена встроенных и служебных переменных. С перечнем таких переменных Вы познакомитесь здесь
Рекомендуем:
используйте латинские наименования для переменных
используйте короткие, но смысловые названия переменных, например: totalSum, pay_name, fio и т.д.
Конструкция #{} позволяет получить значение переменной. Используется эта конструкция в поле Текст сообщения для вставки значения переменной в текст.
Пример:
В поле "Калькулятор" к переменной обращаемся по имени, без использования конструкции #{}.
totalSum = cena * kolvo - ✅ правильно
totalSum = #{cena} * #{kolvo} - ❌ неправильно
Как сравнивать значения переменных?
В настройках соединения в поле Переменная для сравнения введите:
client_type == 3 переход, если значение переменной равно 3 attachments != None переход, если значение переменной заполнено любым содержимым attachments == None переход, если значение переменной не задано количество_товара >= 100 переход, если количество товара больше или равно 100 количество_товара <= 100 переход, если количество товара меньше или равно 100 имя == "Вася" переход, если значение переменной имя равно Вася
Как удалить переменную из бота?
Для удаления переменной (очищения) в поле Калькулятор введите одно из двух: Название_вашей_переменной = Название_вашей_переменной = ""
После знака = либо пробел, либо двойные (одинарные) кавычки.
Обратите внимание! Важно указывать приставку для места определения принадлежности переменной. Для переменных проекта - это project: project.Название_вашей_переменной = или project.Название_вашей_переменной = "" Для переменных клиента client: client.Название_вашей_переменной = или client.Название_вашей_переменной = ""
Для переменных сделки приставка не указывается.
Как получить значение переменной?
#{} - внутрь скобок укажите имя переменной. Так мы обращаемся к значению в поле текст сообщения, в Калькуляторе к значению переменной обращаемся просто по имени, без каких-либо дополнительных конструкций.
Встроенные переменные
Итак, вот список встроенных переменных:
#{none} - проигнорировать сообщение #{api_key} - токен API. Он передается в вызовах API Salebot #{attachment_url} - в этой переменной содержится ссылка на вложение #{attachments} - url вложений к сообщению пользователя в формате JSON массива #{avatar} - ссылка на аватар пользователя (которая отображается в разделе Клиенты) #{client_id} - id клиента в конструкторе. Он передается в вызовы API. #{client_type} - тип мессенджера, откуда пришел клиент. Значения описаны тут #{current_date} - текущая дата в формате dd.mm.yyyy по часовому поясу проекта #{current_time} - время проекта в формате hh:mm по часовому поясу проекта #{custom_answer} - ответ, полученный с сервера, указанного в поле 'URL для ответа с сервера' #{message_from_outside} - тип входящего сообщения, может быть: Обычное сообщение = 0 Сообщение отправленное через API = 1 Сообщение из CRM (Амо, Битрикс) = 2 Уведомление Callback (желтоватый фон в диалоге) = 3 Уведомление телефонии(светло синий фон в диалоге) = 5 Переменная появляется при каждом входящем сообщении, в карте клиента НЕ отображается. Можно использовать в поле переменная для сравнения для настройки срабатывания блоков с условием и стрелок. #{date_of_creation} - дата, когда человек был добавлен в бота или написал ему первый раз #{full_name} - имя и фамилия собеседника #{group} - бот, к которому привязан клиент (В карточке клиента называется "Привязан к боту") #{main_client_id} - ID основного клиента, идентификатор основного клиента среди связанных между собой карточек клиентов #{message_id} - текущее состояние диалога с клиентом. Идентификатор состояния. По умолчанию NONE. #{messenger} - название мессенджера, откуда пришел клиент #{name} - имя собеседника #{next_day} - завтрашняя дата в формате dd.mm.yyyy. Удобно для отправки сообщения завтра. #{order_id} - идентификатор заявки(идентификатор клиента и внутренний идентификатор заявки через дефис) #{order} - содержимое заявки, созданной пользователем #{platform_id} - id клиента в мессенджере #{question} - сообщение пользователя #{timestamp} - текущий timestamp c учетом милисекунд #{time_of_creation} - время, когда человек был добавлен в бота или написал ему первый раз #{wa_bot} - номер Whatsapp, на который написал пользователь (удобно передавать его в поля СРМ, чтобы распределять заявки между менеджерами) #{weekday} - день недели в виде числа, понедельник - 1, вторник -2, и тд
Значения client_type
0 для Вконтакте 1 для Telegram 2 для Viber 3 для Facebook* 5 для онлайн-чата 6 в whatsapp 7 в авито 8 в одноклассниках 10 в Instagram* 12 Юла 13 Телефония 14 e-mail 16 Telegram Business Account 19 для Циан
*Принадлежит компании Meta, запрещенной в России и признанной экстремисткой.
Служебные переменные
Дополнительно к встроенным переменным, в ходе работы бота, могут появляться переменные, указанные ниже. Вы их можете использовать в процессе создания бота. Эти переменные появляются автоматически. Ниже перечислены те, которые могут быть вам полезны.
amo_client_id - идентификатор клиента в амо amo_lead_id - идентификатор лида в амо amo_unsorted_id - идентификатор неразобранного в амо
avito_profile - ссылка на профиль покупателя в Avito avito_order_id - идентификатор объявления avito_order_url - ссылка на объявление в Avito
bitrix_lead_id - идентификатор лида в битрикс bitrix_deal_id - идентификатор сделки в битрикс
phone - номер телефона
notSubscribed - если переменная равна 1, то клиент отписался от сообщений и ни одно сообщение ему не будет отправлено clientBlocked - клиент заблокирован и бот для него не работает story_url - идентификатор сторис, на который ответил клиент в Instagram ok_user_id - идентификатор пользователи в Одноклассниках viewed_page - страница, с которой человек пишет в онлайн-чат wa_bot - номер телефона Whatsapp-бота
Пользовательские переменные
Пользовательские переменные делятся на - переменные проекта или общие переменные - переменные клиента или клиентские переменные - переменные сделки или обычные переменные - константы
Каждый из видов переменных мы рассмотрим ниже.
ID в мессенджере (platform_id)
ID в мессенджере (platform_id) - идентификатор пользователя/чата/канала в мессенджере. В разделе Клиенты откройте диалог с интересующим клиентом. В правой части экрана диалога есть вкладка О клиенте - Системные переменные или вкладка Все.
ID в мессенджере (переменная platform_id) является служебной (встроенной) переменной и постоянна. Даже если вы удалите пользователя из конструктора, то при новой регистрации в боте ID в мессенджере будет тот же. Этот ID пользователь получает при регистрации в самом мессенджере. Ниже примеры как выглядит platform_id (ID в мессенджере) для разных каналов:



Переменная platform_id есть как у обычных пользователей, так и у сообществ, каналов чатов.
Чтобы получить platform_id (ID канала в мессенджере) для канала Телеграм, в котором бот является администратором, достаточно написать в канал сообщение. Со своего личного аккаунта пишите сообщение в канал.
Будет автоматически создан диалог бота с каналом. И в разделе О клиенте можно скопировать значение platform_id канала. В Телеграм для каналов значение ID в мессенджере идёт со знаком минус. В функциях используем всё значение вместе с минусом.

Как использовать переменные
Переменные можно использовать в условиях, заявках, ответах пользователю, блоках и т.д. Давайте рассмотрим конкретный пример при создании воронки для агентства недвижимости.
Итак, создадим приветственное сообщение и через 1 секунду спросим пользователя как его зовут (Рисунок 1).
Дальше создаем еще один блок, где благодарим пользователя за предоставленную информацию. В условии перехода в этот блок включим переключатель "Пользователь вводит данные" и в поле "Вводимые данные" напишем "Имя".(Рисунок 2). В нашем случае "Имя" - это как раз и есть переменная, в которую бот запишет имя пользователя. Здесь может быть любое слово как на русском так и на английском языках, в том числе и цифры.

После этого мы можем использовать введенные данные. В следующем блоке мы благодарим пользователя и обращаемся к нему по имени, использую нашу переменную, не забыв при этом добавить скобки и решетку. Выглядит это вот так: Спасибо, #{Имя}!
Теперь давайте усложним задачу. В этом же блоке спросим пользователя, его интересует первичное жилье или вторичное и добавим два блока. Условия перехода в первый блок - это ответ "Первичное", во второй - "Вторичное" (Рисунок 3).

Теперь рассмотрим второй вариант использования переменных: в блоках. Для этого выделим левый блок, нажмем на "Расширенные настройки" и в поле "Калькулятор" введем следующий текст: "Клиента_интересует = Первичное жилье". Вписываем это без кавычек (Рисунок 4). В правом блоке соответственно "Клиента_интересует = Вторичное жилье"

Для чего это сделано: при переходе в любой из блоков пользователю присваивается переменная, которую мы сможем использовать при создании заявки.
Дальше в блоках давайте спросим ценовой диапазон для недвижимости. А из этих блоков создадим условие с проверкой введенных данных через встроенную переменную #{question} (в данном случае эта переменная является введенным ответом пользователя) ну и в этих же стрелках давайте назначим введенному числу переменную "бюджет"(Рисунок 5).
Теперь подробнее о том как это будет работать: встроенная переменная "question" содержит в себе ответ пользователя. Мы берем его ответ и сравниваем. Если введенное им число больше 1 млн, то он переходит вправо, если меньше то влево. Так же мы присвоили ответу нашего пользователя новую переменную и назвали ее "бюджет", чтобы в итоговой заявке все выглядело понятно и красиво. Теперь сменим тип последних двух блоков на "Конец сбора данных" и посмотрим что получилось (Рисунок 6)

На почту приходит финальная заявка вот в таком виде (Рисунок 7):

Теперь Вы умеете использовать переменные как минимум тремя разными способами:
Присваивать введенным пользователем данным названия переменных ("Имя", "Бюджет")
Присваивать название переменной при переходе в блок (Клиента интересует = Первичное жилье)
Сравнивать переменные с ответом пользователя (question >= 1000001)
Как посмотреть переменные
Переменные можно просмотреть в карточке клиента в разделе Клиенты


Каждая переменная указывается с новой строки, слева имя переменной, справа - значение. При наведении указателя мыши на переменную появляется кнопка , при нажатии на которую можно отредактировать как имя переменной, так и ее значение или удалить переменную:

Как задать переменные клиента
Задать переменную клиента можно двумя способами - явно и неявно.
Явный способ объявления переменной - это прописать ее в Калькуляторе одного из блоков воронки. Например, клиент.возраст = 28
или client.возраст = 28
Неявный способ - это задать переменную в поле ввода данных стрелки

Переменные клиента используются идентично обычным.
Как задать общие переменные
Общие переменные доступны всем пользователям бота. С их помощью можно управлять ботом или обеспечить взаимодействие клиентов между собой. Например, один клиент размещает объявление, все его видят и кто-то на него откликается.
Записать переменную можно используя префикс проект., например: проект.количество_обращений = 28
или project.возраст = 28
Использовать их можно без префикса.
Отредактировать общие переменные можно в настройках проекта:


Пример использования общих переменных
Для примера сделаем систему присвоение номера по порядку каждому входящему в бот клиенту.
Первоначально в общую переменную запишем 0, что означает нет клиентов в боте.

Далее в стартовом блоке бота будем увеличивать значение переменной на 1 и отписывать полученное значение в клиентскую переменную нашего клиента.


Как задать константные переменные
Константные переменные или просто константы - это постоянные переменные, значения которых редко меняются в проекте (или не меняются вовсе). В отличие от общих переменных, доступ к ним имеет только один текущий клиент и в случае перезаписи переменной изменения применятся только для него. В константные переменные можно записывать стоимость товаров, скидку для покупателя, токены доступа к интеграциям, контактные данные продавца и т.д.
Пример использования константных переменных
В качестве примера представим, что скидка для нового клиента по умолчанию 10%, но если ввести промокод - становится 25%.
В Настройки проекта -> Изменить переменные для Константы проекта запишем Скидка : 10. Если необходимо вводить много переменных, удобно выбрать “Старый стиль” и вводить через равно каждую с новой строки.

Для ввода промокода добавим блок “Не состояние с условием”, где присвоим переменной "Скидка" значение 25.

Таким образом, переменная "скидка" после ввода промокода для данного клиента стала равна 25.

Так произошло, потому что запись вида скидка = 25 задала значение для переменной сделки, а не изменила значение одноименной константы.
Основные переменные сделки
Название / Name - название сделки. Наименование Name используется для международной версии проекта.
Описание / Description - описание сделки. Наименование Description используется для международной версии проекта.
budget - Стоимость сделки (число).
Для редактирования переменных с помощью api-запроса } /set_order_vars необходимо использовать наименования из данной инструкции с учетом регистра и версии проекта.
Функции для работы с переменными
Лимиты
Максимальная длина названия переменной: 500 Максимальная длина переменной: 100.000 Максимальное количество переменных у клиента или сделки: 1000
Last updated
Was this helpful?