Помощь

Спец. возможности
Назад

Использование переменных

В полях, отмеченных значком {}, можно использовать переменные. Например:

Добрый день, {name}!

В этом примере мы использовали переменную name -- имя клиента. Переменные обрамляются фигурными скобками. Некоторые переменные доступны только в определенном контексте.

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

Добрый день, {name|уважаемый клиент}!

В данном случае, если имя клиента не задано, то на выходе мы получим следующее сообщение:

Добрый день, уважаемый клиент!

Это гораздо лучше, чем:

Добрый день, !

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

Базовые переменные

Эти переменные можно использовать в любом контексте.

Переменная Тип Содержимое
clientId Число Идентификатор клиента
clientMessengerId Число Внешний идентификатор мессенджера
clientDialogId Число Внешний идентификатор диалога
transport Строка Название мессенджера
phone Строка Отправленный клиентом номер телефона
name Строка Имя клиента из карточки
comment Текст Комментарий
customFieldN - Кастомное поле клиента, N -- код поля, например {customField1}
now Дата и время Текущая дата и время
nowTime Время Текущее время
weekday Строка Текущий день недели
testing Флаг Находимся ли в режиме тестирования
settings Объект Объект настроек решения
operator Оператор Текущий оператор чата
operatorId Число Идентификатор текущего оператор чата
operatorOnline Флаг Текущий оператор находится в сети

Следующие переменные доступны только на первом шаге туннеля и для виджетов.

Переменная Тип Содержимое
newClient флаг Клиент обращается впервые
newRequest флаг Было открыто новое обращение

Туннели

Переменная Тип Содержимое
variables Объект Переменные туннеля; можно обращаться как {variables[var]}/{$var}/{{ $$var }}
ref Строка Доп. параметр старта туннеля

Следующие переменные доступны в вариантах ответа:

Переменная Тип Содержимое
inboxText Текст Текст входящего сообщения
inboxPhone Строка Номер телефона из входящего сообщения
inboxAttachment Ссылка Ссылка на вложение к входящему сообщению

Виджеты (минилендинги)

Данные переменные доступны из действий виджета, а также из туннелей, запущенных этим виджетом.

Переменная Тип Содержимое
widgetPhone Строка Номер телефона, который был введен клиентом
utm Строка UTM-метки в виде query string, например utm_campaign=1&utm_source=vk
utmSource Строка  
utmCampaign Строка  
utmTerm Строка  
utmMedium Строка  
utmContent Строка  
httpUserAgent Строка HTTP-заголовок User-Agent клиента
httpReferer Строка HTTP-заголовок Referer клиента

Платежи

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

Переменная Тип Содержимое
invoiceId Число Идентификатор счета
invoiceNumber Число Номер счета в рамках платежной системы
invoiceHash Строка Закодированный номер счета
invoiceUrl Ссылка Ссылка на оплату
invoiceAmount Число Сумма платежа
invoicePaidAmount Число Оплаченная сумма
invoiceItems массив из элементов InvoiceItem Позиции счета
invoicePhone Строка Номер телефона плательщика
invoiceEmail Строка E-mail плательщика
invoiceDescription Текст Описание платежа (для клиента)
invoiceComment Текст Комментарий к платежу (для себя)
invoiceStatus Статус платежа Статус платежа
invoiceCreatedAt Дата и время Дата создания платежа
invoiceFinishedAt Дата и время Дата завершения платежа

InvoiceItem

Переменная Тип Содержимое
id Число Идентификатор позиции
title Строка Заголовок
price Число Цена
quantity Число Количество

Пример доступа:

  • {invoiceItems[0.id]} -- получить идентификатор первой позиции
  • {{ $invoiceItems | get $$i id }} -- получить идентификатор позиции с индексом {$i}

Триггеры

Переменная Тип Содержимое
query Объект Массив переданных параметров; можно обращаться как {query[param]}

Интернет-магазин

Заказы

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

Переменная Тип Содержимое
shopOrderId Число Идентификатор заказа
shopOrderNumber Строка Сгенерированный номер заказа
shopOrderHash Строка Закодированный идентификатор заказа (показывается клиенту)
shopOrderStatus Статус заказа Статус заказа
shopOrderTotal Число Сумма заказа
shopOrderDeliveryCost Число Стоимость доставки заказа
shopOrderItems массив из элементов ShopOrderItem Позиции заказа
shopOrderCategories массив элементов ShopCategory Категории товаров в заказе
shopPickupPoint Пункт самовывоза Пункт самовывоза
shopPickupPointId Число Идентификатор пункта самовывоза
shopDeliveryType Способ доставки Способ доставки
shopDeliveryTypeId Число Идентификатор способа доставки
shopPaymentType Способ оплаты Способ оплаты
shopPaymentTypeId Число Идентификатор способа оплаты
shopOrderManagerComment Текст Комментарий менеджера
shopOrderClientComment Текст Комментарий клиента
shopOrderAddress Строка Адрес доставки
shopOrderContactPhone Строка Номер телефона для связи с клиентом
shopOrderEvaluation Число Оценка заказа
shopOrderCreatedAt Дата и время Дата создания заказа
shopOrderFinishedAt Дата и время Дата завершения заказа

Корзина

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

Переменная Тип Содержимое
shopCartItems Массив из элементов ShopCartItem Добавленные в корзину товары
shopCartCategories Массив из элементов ShopCategory Разделы, в которых находятся товары, добавленные в корзину
shopCartFirst Флаг Первый заказ
shopCartTotal Деньги Стоимость всех товаров в корзине

Чекаут

Данные переменные доступны только в момент оформления заказов для способов доставки и оплаты.

Переменная Тип Содержимое
shopCheckoutPickupPoint Пункт самовывоза Пункт самовывоза
shopCheckoutPickupPointId Число Идентификатор пункта самовывоза
shopCheckoutDeliveryType Способ доставки Способ доставки
shopCheckoutDeliveryTypeId Число Идентификатор способа доставки
shopCheckoutPaymentType Способ оплаты Способ оплаты
shopCheckoutPaymentTypeId Число Идентификатор способа оплаты
shopCheckoutCity Город Город доставки
shopCheckoutCityId Число Идентификатор города доставки

Расширенный синтаксис

Расширенный синтаксис позволяет выполнять арифметические операции, форматировать и изменять дату и время, и др.

Расширенный синтаксис задается двумя фигурными скобками: {{ $var }}. Где $var -- это переменная var, например: {{ $name }} {{ $customField5 }} {{ $variables[var] }}. Можно также использовать строки и числа: {{ 10.06.2019 }} {{ 100 }} {{ "10.06.2019 11:13" }}. Обратите внимание на последнее выражение: оно использует двойные кавычки, т.к. в строке присутствует пробел.

Для переменных туннеля доступен короткий синтаксис: {{ $$myvar }}. Для такого синтаксиса переменная должна состоять только из латинских букв, цифр и знака подчеркивания, а также не начинаться с цифры.

В расширенном синтаксисе можно применять различные модификаторы, например сложение, вычитание и т.д. Общий синтаксис такой: {{ $var | <modifier> <params> }}. <modifier> -- название модификатора, <params> -- возможные параметры, указанные через пробел. Параметры также могут быть переменной, строкой или числом.

Примеры:

  • {{ $customField1 |+ 1 }} -- прибавить 1 к значению поля; т.е. если в поле хранится число 10, то такое выражение вернет 11 (но НЕ обновит поле, для этого нужно выполнить действие обновления поля)
  • {{ 100 |- $variables[discount] |/ 100 |* $variables[sum] }} -- показать сумму из переменной sum со скидкой из переменной discount; эти переменные могут заполняться на основе действий клиента в туннеле
  • {{ $now |~ d.m.Y }} -- форматировать текущее время как дату
  • {{ $now |~ U }} -- форматировать текущее время в timestamp
  • {{ $now | dateAdd 2 days }} -- добавить к текущему времени 2 дня

Доступные модификаторы

Арифметические

Арифметические модификаторы преобразуют параметр на входе в число или в 0, если на входе не число.

Модификатор Описание Пример
+ <amount> Прибавить <amount> {{ $customField1 |+ $customField2 }}
- <amount> Вычесть <amount> {{ $customField1 |- $customField2 }}
* <amount> Умножить на <amount> {{ $customField1 |* $customField2 }}
/ <amount> Разделить на <amount> {{ $customField1 |/ $customField2 }}

Дата и время

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

Модификатор Описание Пример
~ <format> Форматировать время в указанном формате (описание форматов) {{ $now |~ 'd M Y' }}
dateAdd <amount> <intervalType> Добавить к дате указанный интервал {{ $now | dateAdd 2 hours }}
dateSub <amount> <intervalType> Вычесть из даты указанный интервал {{ $now | dateSub 1 week }}
dateDiff <date> <intervalType> <absolute>  Посчитать разницу между датами. <date> -- другая дата, <intervalType> -- в чем считать разницу, <absolute> -- выводить абсолютное значение или точное  {{ $now | dateSub $$date days }} {{ $now | dateSub 2019-01-01 months 0 }}

 

Тип интервала (intervalType) Описание
second/seconds Секунды
minute/minutes Минуты
hour/hours Часы
day/days Дни
week/weeks Недели
month/months Месяцы
year/years Года

Разное

Модификатор Описание Пример
| <default> Использовать значение <default>, если входящее значение является пустым {{ $name || "уважаемый клиент" }}
lower Преобразовать строку в нижний регистр {{ $inboxText | lower }}
base64Decode Декодировать строку из Base64 {{ $inboxText | base64Decode }}
jsonDecode Декодировать строку из JSON в объект {{ $$text | jsonDecode | get myfield }}
expand Преобразовать все переменные в тексте в их значение. Используется когда вы подгружаете шаблон сообщения с внешнего сервиса (например, из таблиц Google). {{ $$text | expand }}
get <key>, ... Извлечь из массива/объекта значение по ключу <key>. Ключей может быть несколько, если это вложенный объект. {{ $settings | get $$var key }}
split <delim> Разбить строку на подстроки по разделителю <delim> {{ $$var | split , | get 0 }} -- взять часть строки до первой запятой
merge <delim> Слить массив строк в одну строку с разделителем <delim>. Используйте \n для перевода строки. {{ $$var | split , | merge \n }} -- разбить строку по запятым и потом слить с помощью разделителя строки.
merge <param> <delim> Слить массив объектов в одну строку с разделителем <delim>, при этом вместо объекта используется его поле <param>. Используйте \n для перевода строки. {{ $$collection | merge name \n }} -- вывести список объектов каждый на отдельной строке, при этом выводить нужно содержимое поля name
Если у вас остались вопросы, обращайтесь по тел. +7 (999) 333-42-35 или на почту info@bot-marketing.com