Встроенные функции

В приложении «Конструктор сценариев» доступны встроенные функции. На этой странице описаны эти функции и приведены примеры их использования.

Как вызывать функции

Чтобы вызвать функцию из текстового поля, поставьте перед ней знак равенства. Например: =random(100)

Описание функций

applytimezone(UTC timestamp, time zone name)

При передаче временной метки UTC и названия часового пояса функция возвращает смещение часового пояса в секундах.

Функция полезна, например, чтобы сообщить клиенту при входящем обращении, открыто ли определенное отделение компании, или определить допустимое время связи с лидом из веб-формы в исходящей кампании.

Использование

Параметр UTC_timestamp можно задать конкретным значением, например 1609459200, или использовать в качестве параметра функцию now(). Обратите внимание: смещение определяется по переданной временной метке UTC и не зависит от текущего времени, то есть от того, действует сейчас стандартное или летнее время (DST).

Например:

=applytimezone(now(),"America/Los_Angeles")

Если now() возвращает "1609459200", а смещение для "America/Los_Angeles" равно "- 28800", результат будет следующим:

1609430400

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

base64encode(string)

Кодирует введенную строку в Base64.

base64decode(string)

Декодирует строку из Base64 в исходную строку.

email_remove_quoted_content_html(html_content, replacement_string, mode)

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

Параметры
  • html_content — HTML-содержимое письма.
  • replacement_string — строка, заменяющая удаленные цитаты.
  • mode — целое число, определяющее способ удаления:
    • 1: заменяет содержимое элемента div.gmail_quote, если он есть, либо весь HTML между первым и последним тегами "blockquote".
    • 2: заменяет содержимое только последнего тега "blockquote".

email_remove_quoted_content_plaintext(plaintext_content, replacement_string, mode)

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

Параметры
  • plaintext_content — текстовое содержимое письма.
  • replacement_string — строка, заменяющая удаленные цитаты.
  • mode — целое число, определяющее способ удаления:
    • 1: заменяет все цитируемое содержимое от первой строки, начинающейся с > или с пробельных символов и >, до последней такой строки.
    • 2: заменяет только последний блок последовательных строк, начинающихся с > или с пробельных символов и >.

escapeJSON()

(устарела; используйте экранирование JSON при подстановке переменных)

Экранирует управляющие и другие специальные символы в выражении JSON перед включением этого JSON в другой JSON в виде текстового поля. Например, в блоке Set Variable можно отдельно экранировать для JSON каждую переменную перед ее включением в JSON. См. также экранирование JSON при подстановке переменных.

Пример 1

Использование функции со строковым литералом:

=escapeJSON('{"firstName":"John", "lastName":"Doe"}')

Пример 2

Использование функции с переменной JSON, например с данными, полученными блоком FetchURL или блоком поиска в Zendesk, Salesforce.com либо другой CRM:

=escapeJSON('$(varJSON)')

Например, если FetchURL получил объект JSON и сохранил его в переменной varJSON, фактическое содержимое выглядит так:

{
  "firstName": "John",
  "lastName": "Doe"
}

Применение escapeJSON():

=escapeJSON('$(varJSON)')

Результат:

{\"firstName\":\"John\",\"lastName\":\"Doe\"}

formatdatetime(int unixtimestamp, string format)

Форматирует время в соответствии с аргументом format. Используется тот же формат, что и в классе Java SimpleDateFormat в реализации библиотеки International Components for Unicode (ICU).

Например:

"yyyy-MM-dd'T'HH:mm'Z'" дает 2012-07-20T20:45:44.0973928Z

formatduration(duration_in_seconds)

Преобразует длительность в секундах в формат MM:SS или HHH:MM:SS. Возвращает отформатированную строку.

Например:

formatduration(121) возвращает "02:01"

hash("hash_function","message","format")

Преобразует сообщение, то есть любую строку, в хеш-значение.

Для hash_function допустимы следующие алгоритмы:

  • MD5
  • SHA-1
  • SHA-256

Для format допустимы следующие значения:

  • base64
  • hex

Если значение hash_function или format не входит в соответствующий список допустимых значений выше, функция возвращает пустую строку.

Пример

Вызов функции:

=hash("SHA-256","$(item.from)","hex")

возвращает примерно такой результат:

0ffe885acd9763ca3ff08c30c9db1807c63689983ecd205b99a6a4f4b5c4ed1c

hex(string)

Преобразует введенную строку в шестнадцатеричную систему счисления. Для строки в кодировке ASCII функция заменяет символы вне ASCII (1-255) пробелами.

hmac(hash_function, key, message)

Создает код аутентификации сообщения (HMAC) с использованием MD5, SHA-1 или SHA-256, где Hash_function = (“MD5” | “SHA-1” | “SHA-256”). Возвращаемое значение — строка с хешем в кодировке Base64.

length(string)

Возвращает количество символов в строке.

lowercase(string)

Преобразует все буквы строки в нижний регистр. Функцию можно использовать с переменными.

Например:

=lowercase("AbCdEfG") возвращает "abcdefg"

now()

Возвращает временную метку Unix: количество секунд, прошедших с 1/1/1970, 00:00:00 UTC.

parsedatetime(string datetime, string format)

Возвращает указанные дату и время в формате Unix: количество секунд, прошедших с 1/1/1970, 00:00:00 UTC. Ожидается, что входные дата и время заданы в формате Java SimpleDateFormat библиотеки ICU.

random(max)

Принимает целочисленный параметр и возвращает случайное целое число из заданного диапазона: от 0 до значения max минус один. Функцию можно использовать, чтобы проводить опрос для случайно выбранного процента клиентов.

Например:

=random(100) возвращает целые числа от 0 до 99, всего 100 возможных значений.

Пример использования функции см. в разделе Практические упражнения по созданию сценариев.

replace(string, search_pattern, replace_pattern, flags)

Выполняет поиск и замену во входной строке. Возвращает измененную строку.

Параметры:

  • string — входная строка для поиска.
    • При передаче переменной в этот аргумент используйте параметр переменной escapejson, если значение может содержать символы, недопустимые в JSON: двойные кавычки ("), обратные косые черты (\) или управляющие символы (\n и т. д.).
  • search_pattern — регулярное выражение для поиска в аргументе string. Поддерживаемые выражения перечислены в таблице Типы шаблонов ниже.
    • Обратите внимание на двойную обратную косую черту (\\) в шаблонах регулярных выражений. Литеральные кавычки (") и символ новой строки (\n) экранируются одной обратной косой чертой (\).
    • Используйте () вокруг группы символов, чтобы создать захватывающую группу, на которую можно сослаться в replace_pattern с помощью обратных ссылок: \\1 — первая группа, \\2 — вторая и т. д. Например, захват первого слова из переменной fullname:
      =replace("$(fullname,escapejson)","(.*?)\\s+(.*?)","\\1","i")
    • Перед шаблоном search_pattern можно указать (*UCP), чтобы шаблоны \\d (цифра) и \\w (символ слова) учитывали символы Unicode. По умолчанию \\d и \\w соответствуют только символам ASCII. Например, захват первого слова из переменной fullname, даже если fullname содержит символы Unicode:
      =replace("$(fullname,escapejson)","(*UCP)(\\w+)\\s+(\\w+)","\\1","i")
  • replace_pattern — текст, вставляемый вместо совпадения с шаблоном поиска. \\1 - \\9 позволяют обращаться к захваченным группам символов, заданным в search_pattern.
  • flags — один или несколько следующих флагов:
    • i — не учитывать регистр при поиске.
    • g — заменять все совпадения, а не только первое. Например:
      • replace("a8 d8","8","c","") возвращает "ac d8"
      • replace("a8 d8","8","c","g") возвращает "ac dc"

round(floating_number, precision)

Округляет число до <precision> знаков после десятичной точки. Результат остается числом с плавающей точкой.

stripnondigits(string)

Удаляет из строки все символы, кроме цифр от 0 до 9 и символов * и #.

Например:

stripnondigits("123abc456") возвращает "123456"

titlecase(string)

Преобразует строку так, чтобы каждое слово начиналось с прописной буквы.

tostring(integer)

Преобразует целое число в строку.

Например:

tostring(-2+1) возвращает "-1" в виде строки.

unhex(string)

Преобразует шестнадцатеричную строку в кодировке ASCII в исходную строку. Если в ней есть символы, отличные от 0-9, a-z, A-Z или пробельных символов, возвращается пустая строка. Следующие исключения игнорируются:

  • \0x9
  • \0xd
  • \0xa
  • \x20

Если количество значащих символов нечетное, также возвращается пустая строка.

Пример

Вызов функции:

=unhex("7b227573654964223a2022553230366432356332656136626438376331373635353630396131633337636238227d") 

возвращает следующий результат:

{"userId": "U206d25c2ea6bd87c17655609a1c37cb8"},Abc.123(zzz)

uppercase(string)

Преобразует все буквы строки в верхний регистр. Функцию можно использовать с переменными.

Например:

Если "$(item.from)" = "user_name", =uppercase("$(item.from)") возвращает "USER_NAME"

urlencode(string)

Кодирует строку для URL, заменяя специальные символы записью  %dd. Реализация консервативна: заменяются все символы, которые явно не входят в список разрешенных.

validatePAN(string)

Проверяет введенный основной номер счета (PAN), то есть номер банковской карты. Длина номера должна составлять от 10 до 19 цифр. Используется проверка по алгоритму Луна, после которой возвращается 1, если номер действителен, или 0, если недействителен.

Примечание: Если номер начинается с "2014" или "2149" и относится к карте Diners enRoute Club, проверка по алгоритму Луна не выполняется.

validateCCExpirationDate(string)

Проверяет четырехзначную дату окончания срока действия карты. Дата должна иметь формат MMYY (четыре цифры). Первые две цифры должны быть от 01 до 12 (месяц), а последние две — от 00 до 99 (год).

Функция проверяет дату окончания срока действия и возвращает 1, если данные корректны, или 0, если некорректны.

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

validateCCV(string)

Проверяет CCV карты и возвращает 1, если данные корректны, или 0, если некорректны.

Распознаются трехзначные и четырехзначные CCV. Четырехзначное значение считается допустимым для Amex, что определяется по ранее введенному PAN; для всех остальных карт допустимо трехзначное значение.

Типы шаблонов

Шаблон Описание
^ Начало буфера
$ Конец буфера
() Группировка и захват подстроки
[…] Любой символ из набора
[^…] Любой символ, кроме входящих в набор
\\s Пробельный символ
\\S Любой непробельный символ
\\d Десятичная цифра
\\D Любой символ, кроме десятичной цифры
\\w Любой буквенно-цифровой символ или знак подчеркивания
\\W Любой символ, кроме буквенно-цифрового символа и знака подчеркивания
\\r Возврат каретки
\\n Новая строка
+ Одно или более повторений, жадный поиск
+? Одно или более повторений, ленивый поиск
* Ноль или более повторений, жадный поиск
*? Ноль или более повторений, ленивый поиск
? Ноль или одно повторение
\\meta Один из метасимволов: ^$().[*+?\

|