Skip to end of metadata
Go to start of metadata

Переменные 


Переменные данных профиля


ОписаниеПеременная
Email-адрес{lead.email}
Список телефонов{lead.phones}
Имя{lead._fname}
Фамилия{lead._lname}
Дата рождения{lead._bdate}
Пол{lead._sex}
Дата регистрации{lead._regdate}
IP-адрес регистрации{lead._regip}
Город регистрации{lead._regcity}
Страна регистрации{lead._regcountry}
URL-адрес регистрации{lead._regurl}
IP-адрес{lead._ip}
Город{lead._city}
Страна{lead._country}
Регион{lead._region}
Индекс{lead._postal_code}
Временная зона{lead._tz}
Поставщик{lead._vendor}
Идентификатор профиля{lead._id}
XXM-хеш{lead._xxm}
XX-хеш{lead._xxh}
MD5-хеш{lead._md5}
* Дополнительное поле{lead.название_поля}
Переменные подписок профиля
ОписаниеПеременная
Email-адрес подписки{subscription.email}
Домен email-адреса{subscription.email_domain}
Список email-адресов подписки{subscription.emails}
Телефон подписки{subscription.phone}
Список телефонов подписки{subscription.phones}
MD5-хеш email-адреса{subscription.email_md5}
MD5-хеш телефона{subscription.phone_md5}
Связи профилей

Общая формула переменной:

{relation.[короткое_имя_связи].[direct для прямых или reverse для обратных].[имя_свойства].[count - количество, total - сумма, top - топ связей]}.

Количество прямых связей со свойством profit:

{relation.managers_loyal.direct.profit.count}


Топ обратных связей со свойством profit. Используется цикл для вывода нескольких значений:

{for $index $item = relation.managers_loyal.reverse.profit.top} 
{$item.lead._fname} {$item.lead._lname} ({$item.value} profit)
{else} There is no ‘profit’ for you :(
{end}



Сумма значения свойства profit для прямой связи:

{relation.managers_loyal.direct.profit.total}
Переменные даты и времени
ОписаниеПеременнаяПример
Форматированная дата{format}

{format datenow "%Y-%m-%D %H:%M:%S timezone, %I am"}

2018-12-14 18:56:10 +03:00, 6 pm

Неформатированная дата{datenow}2018-12-14T18:56:10+0300 
Смещение даты{adddate()}

{adddate(datenow 0 0 3)}

2018-12-17T18:56:10+0300

Полный год{yearlong}2018
Год{year}18
Месяц{month}12
День {day}10
Часы в 24-часовом формате{hours}18
Часы в 12-часовом формате{hours12}06
«До полудня», «После полудня»{ampm}PM
Минуты{minutes}56
Секунды{seconds}10
Дополнительные переменные
ОписаниеПеременная
API контент{apicontent.field_name}
Имя отправителя SMS{from_name_sms}
Пиксель, чтобы зафиксировать открытие письма{pixel}
Пиксель, чтобы зафиксировать чтение письма{read}
Идентификатор ресурса{resid}
Пиксель, чтобы зафиксировать чтение письма{read}
Название базы данных{listname}
Идентификатор базы данных{listid}
Название сообщения{msgname}
Идентификатор сообщения{msgid}
Тип сообщения{msg_type}
Отмена отправки сообщения{cancel}
Трекинг домен{trkdomain}
Название кампании{campname}
Идентификатор кампании{campid}
SUBID кампании{subid}
Добавление в стоп-список{suppress}
URL-адрес менеджера подписок{preferences}
URL-адрес отписки{unsubscribe}
URL-адрес глобальной отписки{globalunsubscribe}

Функции редактора


Форматирование даты

Данные типа "дата" имеют разное представление в разных странах. Для удобства подписчиков предусмотрена функция форматирования дат.

Например, для того, чтобы представить дату рождения подписчика, в виде:

Дата рождения 02.11.1998

Используется такая функция:

<p>Дата рождения {format lead.date_of_birth "%D.%m.%Y"}</p>

Все параметры форматирования даты:

# years
  "%y":   "06"
  "%Y":   "2006"
  "yy":   "06"
  "YYYY": "2006"
        
# months
  "%m":    "01"
  "MM":    "01"
  "%B":    "January"
  "month": "January"

# days
  "%d":      "2"
  "%D":      "02"
  "DD":      "_2"
  "%A":      "Monday"
  "weekday": "Monday"

# hours
  "%H":       "15"
  "%I":       "3"
  "hh":       "15"
  "hours":    "15"
  "twelve_h": "3"

# mins
  "%M": "04"
  "mm": "04"

# seconds
  "%S": "05"
  "ss": "05"

# am/pm indicator
  "am": "pm"
  "AM": "PM"
  "%p": "pm"

# timezone
  "tzone":    "-07"
  "timezone": "-07:00"
  "%Z":       "Z0700"

Чтобы вставить функцию, нажмите на кнопку </>  в редакторе шаблонов и выберите Дата и время → Форматированная дата.

Смещение даты

Функция adddate(date, year, month, day) возращает значение даты после того как добавит к ней определённый интервал.

<p>Event starts on {adddate(lead.notify_date 0 0 10)}</p>

adddate() может использоваться внутри функции format().

<p>Event starts on {format adddate(lead.notify_date 0 0 10) "%Y-%m-%D"}</p>

Чтобы вставить функцию, нажмите на кнопку </>  в редакторе шаблонов и выберите Дата и время → Смещение дат.

Форматирование цен

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

Price 8.000 RUR
<p>Price {format json.price "."} RUR</p>

Чтобы вставить функцию, нажмите на кнопку </>  в редакторе шаблонов и выберите Функции вывода → Форматирование.

Шифрование и хэширование

Шифрование переменных шаблона применяется когда необходимо передать данные вместе с кликом по URL на целевой сайт, но при этом данные не должны отражаться в журналах веб серверов или каким-то образом у пользователя. Например, в некоторых случаях  данные предзаполнения форм достаточно закодировать в base58, чтобы на стороне сайта их раскодировать и подставить в форму.

Чтобы передавать контент шаблона и переменные в зашифрованном или хeшированном виде, в редакторе шаблонов предусмотрена функция crypt. Чтобы получить доступ к ней, нажмите на кнопку  </>  в редакторе шаблонов и выберите Шифрование.

   {crypt(алгоритм поле ключ)}

Можно изменить кодировку или зашифровать данные по одному из этих алгоритмов:

  • base58
  • base64
  • sha1
  • sha256
  • aes
  • blowfish

Для sha1, sha256, aes и Blowfish необходимо указать ключ, который будет применяться на другой стороне для дешифровки значения.

Детали шифрования AES и Blowfish:


AESBlowfish
Вектор инициализацииПервые 16 байт строкиПервые 8 байт строки
Режим шифрованияCFB (Cipher Feedback)CBC (Cipher Block Chaining)
Длина ключа128 бит - 16 символов64 бит - 8 символов
Padding нулевойнулевой

Шифрование / дешифрование происходит через кодировку Base64URL.


Ниже приведены примеры синтаксиса для изменения кодировки и шифрования:

   {crypt(base58 lead._fname)}
   {crypt(base64 lead._lname)}
   {crypt(sha256 lead.custom_field "encrypt_key")}
   {crypt(sha1 lead._city "encrypt_key")}
   {crypt(aes lead._fname "key1234567891234")}
   {crypt(blowfish lead._fname "key12345")}


Если необходимо зашифровать строку текста, её нужно заключить в кавычки. Если число - кавычки не нужны:

   {crypt(base58 "value")}
   {crypt(base64 42)}


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

  • md5 + соль
  • xxh32 + соль
  • xxh64 + соль

Синтаксис такой же, как для функций шифрования:

    {crypt(md5 subscription.email "salt")}
    {crypt(xxh32 loyalty.new2.promocode "salt")}
    {crypt(xxh64 json.text "salt")}

Обратите внимание что зашифрованные данные уже будут закодированы в base64.

Функции вывода
ОписаниеПеременнаяПример
Форматированиеformat

{format 1000000000 ","}

1,000,000,000

Длина переменнойlength

{length("abc")}

3

Массивarray

{array[1 "2" 3.3]}

[1 2 3.3]

Лимит массиваlimit

{limit(array[1 2 3] 2)

[1 2]

Кодирование URL-адресаurlencode

{urlencode(lead._regurl)}

http:%2F%2Ftest.testdomain.com%2Fsomething

Декодирование URL-адресаurldecode

{urldecode(lead._regurl)}

http://test.testdomain.com/something


Логические выражения

Использование логических выражений описано в отдельной статье.

Для составления простого условия используется:

{if lead.age gte 18}
	Если 18 или старше.
{else}
	Если младше 18.
{end}

Циклы

Использование циклов описаны в соответствующей статье.

Внешний JSON

Фрагменты

Использование фрагментов описано в той статье.

Для вызова фрагмента используйте {fragment.<короткое_имя_фрагмента>}

Для вызова случайного фрагмента из диапазона: {randomfragment[fragment.name1 fragment.name2 fragment.name3]}



  • No labels