Salebot.pro
Search…
⌃K

Переменные

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

Как работать с переменными

Рассмотрим что такое переменные и как их использовать при создании чат-ботов на конструкторе Salebot.
Переменная - это хранилище данных, которому мы присваиваем некое текстовое имя. А далее в это хранилище мы запоминаем вводимые пользователем данные и можем ими воспользоваться в любом месте воронки. В конструкторе есть не только встроенные и служебные переменные, но и пользовательские - это те, которые Вы сами задаете (объявляете) в проекте.
Объявить переменную - значит присвоить некое значение поименованному хранилищу, а если по-русски, то запись вида a=0 и есть то самое объявление переменной a. Мы только что сказали (объявили) конструктору, что в переменной a мы будем хранить число, пока это значение 0.
Обнулить переменную - значит присвоить этой переменной значение 0.

ПРАВИЛА РАБОТЫ С ПЕРЕМЕННЫМИ:

  1. 1.
    Переменная может начинаться только с буквы, с цифры нельзя
    Возраст1 - ✅ правильно
    1Возраст - ❌ неправильно
    age1 - ✅ правильно - рекомендуемый вариант
  2. 2.
    Переменная не может содержать пробелы и иные спецсимволы, кроме нижнего подчеркивания
    Имя_Фамилия - ✅ правильно
    Имя Фамилия - ❌ неправильно
    имяФамилия - ✅ правильно - рекомендуемый вариант
    В имени переменной нельзя использовать зарезервированные слова языков программирования, например: print, true, false, count, sum и т.д.
  3. 3.
    КАТЕГОРИЧЕСКИ НЕЛЬЗЯ использовать для имен пользовательских переменных имена встроенных и служебных переменных. С перечнем таких переменных Вы познакомитесь здесь
  4. 4.
    Рекомендуем:
    • используйте латинские наименования для переменных
    • используйте короткие, но смысловые названия переменных, например: totalSum, pay_name, fio и т.д.
Конструкция #{} позволяет получить значение переменной. Используется эта конструкция в поле Текст сообщения для вставки значения переменной в текст.
Пример:
В поле "Калькулятор" к переменной обращаемся по имени, без использования конструкции #{}.
totalSum = cena * kolvo - ✅ правильно
totalSum = #{cena} * #{kolvo} - ❌ неправильно

Как сравнивать значения переменных?

В настройках соединения в поле Переменная для сравнения введите:
client_type == 3 переход, если значение переменной равно 3 attachments != None переход, если значение переменной заполнено любым содержимым attachments == None переход, если значение переменной не задано количество_товара >= 100 переход, если количество товара больше или равно 100 количество_товара <= 100 переход, если количество товара меньше или равно 100 имя == "Вася" переход, если значение переменной имя равно Вася
Конструктор понимает вложенные переменные, где значение одной переменной входит в имя переменной другой. Например: #{q#{test#{i}}}

Как удалить переменную из бота?

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

Как получить значение переменной?

#{} - внутрь скобок укажите имя переменной. Так мы обращаемся к значению в поле текст сообщения, в Калькуляторе к значению переменной обращаемся просто по имени, без каких-либо дополнительных конструкций.

Встроенные переменные

Итак, вот список встроенных переменных:
#{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 для ответа с сервера' #{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 учетом милисекунд #{wa_bot} - номер Whatsapp, на который написал пользователь (удобно передавать его в поля СРМ, чтобы распределять заявки между менеджерами) #{weekday} - день недели в виде числа, понедельник - 1, вторник -2, и тд

Значения client_type

0 для вконтакте 1 для телеграмма 2 для вайбера 3 для фейсбука 4 для толкми 5 для онлайн-чата 6 в вотсапе 7 в авито 8 в одноклассниках 10 в инстаграм 11 Jivosite 12 Юла 13 Телефония 14 e-mail

Служебные переменные

Дополнительно к встроенным переменным, в ходе работы бота, могут появляться переменные, указанные ниже. Вы их можете использовать в процессе создания бота. Эти переменные появляются автоматически. Ниже перечислены те, которые могут быть вам полезны.
Дополнительные служебные переменные вы можете увидеть в документации. Они расположены в тех разделах, к которым имеют отношение.
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-бота

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

Каждый из видов переменных мы рассмотрим ниже.
Не используйте одинаковые имена для разных видов переменных, чтобы не сталкиваться с недопониманием, когда Конструктор вытягивает не то значение, которое Вы ожидали
При присвоении значения переменной важно указать её вид, используя соответствующие префиксы клиент. (client.) или проект. (project.), для переменных сделки префикс не используется.
При получении значения переменной такой префикс опускается.
Пример:
Допустим, мы хотим задать общую переменную лайк, которую будем использовать как счетчик лайков наших клиентов.
проект.лайк = 0 - объявление, выполняется единожды
в блоке, где необходимо проводить подсчет лайков, пишем:
проект.лайк = лайк + 1

Как использовать переменные

Переменные можно использовать в условиях, заявках, ответах пользователю, блоках и т.д. Давайте рассмотрим конкретный пример при создании воронки для агентства недвижимости.
Итак, создадим приветственное сообщение и через 1 секунду спросим пользователя как его зовут (Рисунок 1).
Рисунок 1
Дальше создаем еще один блок, где благодарим пользователя за предоставленную информацию. В условии перехода в этот блок включим переключатель "Пользователь вводит данные" и в поле "Вводимые данные" напишем "Имя".(Рисунок 2). В нашем случае "Имя" - это как раз и есть переменная, в которую бот запишет имя пользователя. Здесь может быть любое слово как на русском так и на английском языках, в том числе и цифры.
Рисунок 2
После этого мы можем использовать введенные данные. В следующем блоке мы благодарим пользователя и обращаемся к нему по имени, использую нашу переменную, не забыв при этом добавить скобки и решетку. Выглядит это вот так: Спасибо, #{Имя}!
Теперь давайте усложним задачу. В этом же блоке спросим пользователя, его интересует первичное жилье или вторичное и добавим два блока. Условия перехода в первый блок - это ответ "Первичное", во второй - "Вторичное" (Рисунок 3).
Рисунок 3
Теперь рассмотрим второй вариант использования переменных: в блоках. Для этого выделим левый блок, нажмем на "Расширенные настройки" и в поле "Калькулятор" введем следующий текст: "Клиента_интересует = Первичное жилье". Вписываем это без кавычек (Рисунок 4). В правом блоке соответственно "Клиента_интересует = Вторичное жилье"
Рисунок 4
Для чего это сделано: при переходе в любой из блоков пользователю присваивается переменная, которую мы сможем использовать при создании заявки.
Дальше в блоках давайте спросим ценовой диапазон для недвижимости. А из этих блоков создадим условие с проверкой введенных данных через встроенную переменную #{question} (в данном случае эта переменная является введенным ответом пользователя) ну и в этих же стрелках давайте назначим введенному числу переменную "бюджет"(Рисунок 5).
Теперь подробнее о том как это будет работать: встроенная переменная "question" содержит в себе ответ пользователя. Мы берем его ответ и сравниваем. Если введенное им число больше 1 млн, то он переходит вправо, если меньше то влево. Так же мы присвоили ответу нашего пользователя новую переменную и назвали ее "бюджет", чтобы в итоговой заявке все выглядело понятно и красиво. Теперь сменим тип последних двух блоков на "Конец сбора данных" и посмотрим что получилось (Рисунок 6)
Рисунок 6
На почту приходит финальная заявка вот в таком виде (Рисунок 7):
Рисунок 7
Теперь Вы умеете использовать переменные как минимум тремя разными способами:
  1. 1.
    Присваивать введенным пользователем данным названия переменных ("Имя", "Бюджет")
  2. 2.
    Присваивать название переменной при переходе в блок (Клиента интересует = Первичное жилье)
  3. 3.
    Сравнивать переменные с ответом пользователя (question >= 1000001)

Как посмотреть переменные

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

Как задать переменные клиента

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

Как присвоить переменную клиента

Чтобы присвоить переменную клиента, необходимо перед именем переменной клиента использовать префикс клиент. или client.
Или можно воспользоваться методом
set_client_var(client_id, variable, value)
где client_id — id клиента в Salebot
variable — название переменной, которая будет присваиваться
value — значение этой переменной
В нужном блоке размещаете его в поле "Калькулятор", заполняя параметры variable и value.
Пример:
set_client_var(client_id, "novoe", "да")

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

Для сохранения нескольких переменных можно использовать метод set_client_vars(client_id, variables_dict), где client_id — id клиента в Salebot variables_dict — словарь, содержащий названия всех добавляемых переменных и их значения. В нужном блоке размещаете его в поле "Калькулятор", заполняя параметры variables_dict.
Пример: set_client_vars(1136, '{"var_name1": "var_value1", "var_name2": "var_value2", "var_name3": "var_value3"}')
Присвоение нескольких переменных клиенту
Раздел переменные в карточке клиента

Как задать общие переменные

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

Пример использования общих переменных

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

Как задать константные переменные

Константные переменные или просто константы - это постоянные переменные, значения которых редко меняются в проекте (или не меняются вовсе). В отличие от общих переменных, доступ к ним имеет только один текущий клиент и в случае перезаписи переменной изменения применятся только для него. В константные переменные можно записывать стоимость товаров, скидку для покупателя, токены доступа к интеграциям, контактные данные продавца и т.д.

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

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

Как задать переменную сделки

Переменные сделки или обычные переменные получают свое значение записью вида:
имя_переменной = значение

Лимиты

Максимальная длина названия переменной: 500 Максимальная длина переменной: 100.000 Максимальное количество переменных у клиента или сделки: 1000