Перейти к содержимому

Функции шаблонов

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

Функция вызывается с префиксом $ и аргументами в скобках:

$functionName(arg1, arg2, ...)
  • Строки: "текст" или 'текст'
  • Числа: 42, 3.14
  • Boolean: true, false
  • Null: null
  • Переменные: {{processorName.field}}

Функции можно вкладывать друг в друга:

$upper($concat({{search.firstName}}, " ", {{search.lastName}}))
$if($gt({{enrichment.revenue}}, 1000000), "Крупная компания", "Малый бизнес")

ФункцияОписаниеПример результата
$now()Текущая дата и время2026-03-02 14:30:00
$today()Текущая дата2026-03-02
$time()Текущее время14:30:00
$dayOfWeek()День недели на русскомПонедельник
$month()Название месяца на русскомМарт
$year()Текущий год2026
$timestamp()Unix timestamp в секундах1772611800
$formatDate(date, format)Форматирование датысм. ниже

Функция $formatDate принимает дату и шаблон формата:

ТокенОписание
YYYYГод (4 цифры)
MMМесяц (01-12)
DDДень (01-31)
HHЧасы (00-23)
mmМинуты (00-59)
ssСекунды (00-59)

Примеры:

$formatDate({{proc.date}}, "DD.MM.YYYY") --> 03.12.2024
$formatDate({{proc.datetime}}, "DD.MM.YYYY HH:mm") --> 03.12.2024 10:30

ФункцияОписаниеПример
$concat(a, b, ...)Объединение строк$concat({{firstName}}, " ", {{lastName}}) —> "Иван Петров"
$upper(text)Верхний регистр$upper("hello") —> "HELLO"
$lower(text)Нижний регистр$lower("HELLO") —> "hello"
$trim(text)Удаление пробелов по краям$trim(" текст ") —> "текст"
$length(text)Длина строки$length("Привет") —> 6
$substring(text, start, end?)Извлечение подстроки (с 0)$substring("hello world", 0, 5) —> "hello"
$replace(text, search, replacement)Замена всех вхождений$replace("a-b-c", "-", " ") —> "a b c"
$split(text, delimiter, index)Разделение и выбор элемента$split("a,b,c", ",", 1) —> "b"
$join(delimiter, a, b, ...)Объединение через разделитель$join(", ", "один", "два") —> "один, два"
$contains(text, search)Проверка вхождения$contains("hello", "ell") —> true
$startsWith(text, prefix)Начинается с$startsWith({{phone}}, "+7") —> true/false
$endsWith(text, suffix)Заканчивается на$endsWith({{email}}, ".ru") —> true/false
$padStart(text, length, char?)Дополнение слева$padStart("42", 5, "0") —> "00042"
$padEnd(text, length, char?)Дополнение справа$padEnd("42", 5, "0") —> "42000"

ФункцияОписаниеПример
$add(a, b)Сложение$add({{price}}, {{tax}})
$sub(a, b)Вычитание$sub({{total}}, {{discount}})
$mul(a, b)Умножение$mul({{price}}, {{quantity}})
$div(a, b)Деление (0 при делении на 0)$div({{total}}, {{count}})
$mod(a, b)Остаток от деления$mod({{number}}, 2) —> 0 или 1
$abs(n)Абсолютное значение$abs(-5) —> 5
$round(n, decimals?)Округление$round(3.14159, 2) —> 3.14
$floor(n)Округление вниз$floor(3.9) —> 3
$ceil(n)Округление вверх$ceil(3.1) —> 4
$min(a, b, ...)Минимальное значение$min(5, 3, 8) —> 3
$max(a, b, ...)Максимальное значение$max(5, 3, 8) —> 8
$random(min, max)Случайное целое число$random(1, 100)
$randomChoice(a, b, ...)Случайный выбор из списка$randomChoice("А", "Б", "В")
$sum(a, b, ...)Сумма всех аргументов$sum(1, 2, 3, 4, 5) —> 15
$avg(a, b, ...)Среднее арифметическое$avg(10, 20, 30) —> 20
$pow(base, exp)Возведение в степень$pow(2, 3) —> 8
$sqrt(n)Квадратный корень$sqrt(16) —> 4

ФункцияОписаниеПример
$if(condition, then, else)Условный выбор$if($gt({{age}}, 18), "Взрослый", "Ребёнок")
$eq(a, b)Равно$eq({{status}}, "active") —> true/false
$neq(a, b)Не равно$neq({{status}}, "deleted") —> true/false
$gt(a, b)Больше$gt({{amount}}, 1000) —> true/false
$lt(a, b)Меньше$lt({{stock}}, 10) —> true/false
$gte(a, b)Больше или равно$gte({{age}}, 18) —> true/false
$lte(a, b)Меньше или равно$lte({{price}}, 100) —> true/false
$and(a, b, ...)Логическое И$and($gt({{x}}, 0), $lt({{x}}, 100))
$or(a, b, ...)Логическое ИЛИ$or($eq({{role}}, "admin"), $eq({{role}}, "manager"))
$not(a)Логическое отрицание$not($eq({{status}}, "deleted"))
$isNull(value)Проверка на null$isNull({{optionalField}}) —> true/false
$isNotNull(value)Проверка на не-null$isNotNull({{email}}) —> true/false
$isEmpty(value)Пустая строка или null$isEmpty({{comment}}) —> true/false
$isNotEmpty(value)Не пустое значение$isNotEmpty({{name}}) —> true/false
$switch(value, case1, result1, ..., default)Множественный выборсм. ниже

Пример $switch:

$switch({{status}},
"new", "Новый",
"active", "Активный",
"closed", "Закрыт",
"Неизвестно"
)

ФункцияОписаниеПример
$coalesce(a, b, ...)Первое не-null и не-пустое$coalesce({{phone}}, {{mobile}}, "Не указан")
$default(value, defaultValue)Значение по умолчанию$default({{comment}}, "Без комментария")
$typeof(value)Тип значения$typeof(42) —> "number"
$toString(value)Преобразование в строку$toString(42) —> "42"
$toNumber(value)Преобразование в число$toNumber("42") —> 42
$toBool(value)Преобразование в boolean$toBool("yes") —> true
$json(value)Сериализация в JSON$json({{data}}) —> {"key": "value"}
$uuid()Генерация UUID v4$uuid() —> "550e8400-e29b-..."
$hash(value)Хеш строки (hex)$hash("hello") —> "5d41402a"
$encode(value)URL-кодирование$encode("привет мир")
$decode(value)URL-декодирование$decode("%D0%BF%D1%80...") —> "привет"
$first(value)Первый элемент/символ$first("hello") —> "h"
$last(value)Последний элемент/символ$last("hello") —> "o"

$upper($concat({{search.lastName}}, " ", $substring({{search.firstName}}, 0, 1), "."))

Результат: ПЕТРОВ И.

$if($gte({{enrichment.revenue}}, 1000000), "Крупная",
$if($gte({{enrichment.revenue}}, 100000), "Средняя", "Малая"))
$concat("LEAD-", $today(), "-", $padStart({{search.id}}, 6, "0"))

Результат: LEAD-2026-03-02-000123

$if($isNotEmpty({{enrichment.phone}}),
$concat("Тел: ", {{enrichment.phone}}),
"Телефон не указан"
)