Поля


При заполнении блоков можно использовать маски для создания определяемых значений или работы с массивами. Если в маске будет использоваться ссылка на некорректный блок/несуществующие данные — они будут обработаны как пустая строка.

Если

В некоторых случаях необходимо заполнять значение в зависимости от входящих/иных данных. Для этого можно использовать маску if-else.

Пример:

{% if input.type == "lead" %}Заявка{% elif input.type == "deal" %}Сделка{% endif %}

Благодаря маске if-else можно сделать настройку полей динамической в зависимости от входящих данных без множества проверок и создания переменной.

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

  • if — endif
  • if — elif — endif
  • if — elif — else — endif
  • if — else — endif

Для составления условий можно использовать логические операторы и сравнения.

Логические операторы

  • and — если требуется соблюсти сразу два и более условий
  • or — если достаточно соблюдения одного из нескольких
  • not — если требуется инвертировать одно из условий

Пример:

{% if input.type == "lead" and input.phone %} ... {% endif %}

Сравнения

  • == — равно
  • != — не равно
  • > — больше
  • >= — больше или равно
  • < — меньше
  • <= — меньше или равно
  • in — входит (если проверяется входит ли левая часть условия в массив справа)
  • not in — не входит (если проверяется не входит ли левая часть условия в массив справа)

Цикл

Иногда во входящих данных могут приходить массивы (товары/списки/…) и необходимо их прописать в примечание или поле, для этого могут использоваться циклы.

Пример (создание строки используя данные товаров из запроса):

{% for prod in input.products %} {{prod.name}} {{prod.quantity}} {{prod.weight_class_id}} x {{prod.price}} = {{prod.total}}{% endfor %}

Маски цикла

Внутри циклов доступны все те же маски что и в остальной схеме, плюс специфические для цикла:

  • {{forloop.counter}} — счётчик цикла, показывает какой элемент по порядку сейчас обрабатывается (1, 2, 3, ….)
  • {{forloop.counter0}} — счётчик цикла, начинается с нуля (0, 1, 2, …)
  • {{forloop.revcounter}} — обратный счётчик цикла до 1
  • {{forloop.revcounter0}} — обратный счётчик цикла до 0
  • {{forloop.first}} — true если первая итерация цикла
  • {{forloop.last}} — true если последняя итерация цикла
  • {{forloop.parentloop. ...}} — доступ к данным родительского цикла (если один цикл производится внутри другого), например — {{forloop.parentloop.counter}}

Фильтры

Применяются для работы с полями функций/переменных. Используются внутри маски, например — {{#4.Бюджет|to_currency}} или {{#4.Название|capitalize}} .

Работа со строками

capitalize

Изменяет строку, чтобы она начиналась с заглавной буквы (Строка начинается так ...).

lower

Изменяет строку, переводя все символы в нижний регистр (только нижний регистр).

upper

Изменяет строку, переводя все символы в верхний регистр (ТОЛЬКО ВЕРХНИЙ РЕГИСТР).

length

Считает количество символов в строке.

substr

Получает фрагмент строки по параметрам:

  • Начало фрагмента* — любое целое число. Если указано отрицательное — отсчёт ведётся от конца строки.
  • Количество символов — положительное число. Если не указано — фрагмент берётся до конца строки.

Например, если применить фильтр:

  • substr:"5" к строке ФИО: Иванов Иван Иванович , то в результате получим Иванов Иван Иванович;
  • substr:"1","6" к строке №456732 Лид по звонку , то в результате будет 456732;

split

Превращает строку в массив, разделяя её по разделителю (если не передан, то им считается , ). Например:

  • split к строке Услуга 1,Услуга 2,Услуга 3 , результат — ['Услуга 1', 'Услуга 2', 'Услуга 3'];
  • split:"&" к строке service&goods&time , результат — ['service', 'goods', 'time']

join

Обратная к split функция, превращает массив в строку, объединяя его при помощи указанного символа (если не передан, то им считается , ). Например:

  • join к массиву ['Услуга 1', 'Услуга 2', 'Услуга 3'], результат — Услуга 1,Услуга 2,Услуга 3;
  • join:"&" к массиву ['service', 'goods', 'time'], результат — service&goods&time

reverse

Возвращает строку, число или массив в обратном порядке. Например:

  • reverse к массиву ['Услуга 1', 'Услуга 2', 'Услуга 3'], результат —['Услуга 3', 'Услуга 2', 'Услуга 1'],
  • reverse к строке Test string результат —gnirts tseT
  • reverse к числу '123456' , результат '654321' (возвращается в формате строки)

replace

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

  • replace к строке Test string. {{Test string | replace: 'Test','Word'}}. Результат Word string,
  • replace к строке Test string. {{Test string | replace: 'Test','Word' | replace: 'r','2'}}. Результат Wo2d st2ing,

Работа с датами

format

Используется для превращения даты в строку. Например:

  • {{#1.date|format:"%Y-%m-%d"}} — получим строку вида «2023-01-25»

Подробнее о возможных форматах — Дата и время.

isoformat

Превращает дату в строку формате ISO — 2021-07-27T16:02:08.070557

timestamp

Превращает дату в timestamp

Преобразования чисел

to_cardinal

Используется для превращения числа в текстовое представление, принимает в настройки язык. Например:

  • {{тестовая_переменная|to_cardinal}} -> один
  • {{тестовая_переменная|to_cardinal:"en"}} -> two

to_ordinal

Используется для превращения чисел в числительные, принимает в настройки язык. Например:

  • {{тестовая_переменная|to_ordinal}} -> первый
  • {{тестовая_переменная|to_ordinal:"en"}} -> second

to_currency

Используется для преобразования суммы в письменный вид, принимает в настройки язык и валюту. Например:

  • {{тестовая_переменная|to_currency}} -> сто один рубль 00 копеек
  • {{тестовая_переменная|to_currency:"en","USD"}} -> one hundred and one dollars 00 cents