Переменные в тексте
Навигация
Переменные хранят значения: например, число, строку или данные другого типа. Переменные используются в:
- Названии задачи (в шаблоне задачи или при создании задачи)
- Описании задачи (в шаблоне задачи или при создании задачи)
- Шаблонах писем
- Действиях сценариев, кнопках, входящих вебхуках, правилах обработки писем для задач:
- Отправить HTTP-запрос
- Отправить SMS
- Написать в WhatsApp
- Написать в Instagram
- Массовых действиях, сценариях, кнопках, входящих вебхуках, правилах обработки писем для задач:
- Изменить название
- Изменить описание
- Добавить комментарий
- Задать значение поля (для полей типа «Текст»)
Чтобы добавить переменную в текст, например в описание задачи, нажмите ссылку «различные переменные» (1), создайте переменную и добавьте её в текст нужного поля в шаблоне задачи (2):
Вычисления с переменными
Иногда недостаточно вставить значение переменной в текст: нужно также выполнить вычисления со значениями переменных или обработать полученную строку. Для этого используется следующий синтаксис:
%%%ТЕКСТ ФОРМУЛЫ%%%
Примеры
Важно
- Текст формулы должен быть записан в одну строку, его нельзя разрывать. Иными словами, нельзя переносить формулу на следующую строку нажатием клавиши Enter.
- Форматирование переменных в формуле недопустимо: например, нельзя выделять их полужирным шрифтом или курсивом.
- Если нужно выделить результат формулы полужирным шрифтом, примените форматирование ко всей формуле вместе с результатом.
IF
Чтобы вставить текст в зависимости от значений переменных (условий), используйте следующий синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Пример
%%$IF({{Task.Order Amount}} > 100000)$%%
VIP-КЛИЕНТ
%%$ENDBLOCK$%%
Результат:
ELSE
ELSE используется только вместе с IF. Если условие в IF не выполняется, отображается текст из части блока ELSE.
%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%
Пример
%%$IF({{Task. Invoice №}}="")$%%
Поле [Invoice №] не заполнено
%%$ELSE$%%
Обязательное поле задачи заполнено! :)
%%$ENDBLOCK$%%
Результат:
- Если поле не заполнено, отобразится сообщение «Поле [Invoice №] не заполнено».
- Если поле заполнено, отобразится сообщение «Обязательное поле задачи заполнено! :)».
ELSEIF
Помогает создавать более сложные выражения с условиями:
%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ELSEIF(Логическая формула)$%%
ТЕКСТ
%%$ELSEIF(Логическая формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%
Примечание
- Последняя часть блока — ELSE — необязательна.
Пример
%%$IF({{Task.Invoice Number}}="")$%%
Поле [Invoice Number] не заполнено
%%$ELSEIF({{Task.UPD Number}}="")$%%
Поле [UPD Number] не заполнено
%%$ELSEIF({{Task.Contract Number}}="")$%%
Поле [Contract Number] не заполнено
%%$ELSE$%%
Все поля задачи заполнены, вы молодец! :)
%%$ENDBLOCK$%%
Результат:
- Если все три поля не заполнены, отобразится только первое сообщение «Поле [Invoice Number] не заполнено», остальные будут пропущены.
- Если поля «Invoice Number» и «UPD Number» заполнены, а поле «Contract Number» — нет, отобразится соответствующее сообщение «Поле [Contract Number] не заполнено».
FOREACH
Если переменная представляет собой список значений, например {{Task.Subtasks}} или {{Task.Assignee}}, и нужно отобразить информацию для каждого значения, используйте следующий синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Пример
Результат:
Джеймс Дэвис — разработчик
Мэри Браун — генеральный директор
Результат:
2120 — предчистовая отделка
2121 — финальные штрихи
Пример с условием
%%$FOREACH(Переменная;Разделитель;Условие_БЕЗ_If)$%%
ТЕКСТ
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}};"";{{Task.Subtasks."Contract Amount ($)"}}>1000))$%%
{{Task.Subtasks.Counterparty}}, сумма договора {{Task.Subtasks."Contract Amount ($)"}}
%%$ENDBLOCK$%%
Результат
Из всего списка контрагентов отобразятся только те, у которых сумма договора превышает 1000:
ООО «Санрайз», 1500
ООО «Сансет», 1700
ООО «Доун», 2500
Блок ELSE внутри блока FOREACH
%%$FOREACH(Переменная;Разделитель)$%%
ТЕКСТ
%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ENDBLOCK$%%
ТЕКСТ
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}})$%%%%$IF({{Task.Subtasks.Status}}="TKP added to calculation")$%%
{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, сумма договора {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%
Результат:
ООО «Санрайз», 5689845987654, 1500 $
ООО «Сансет», 5689845125699, 1700 $
ООО «Доун», 5689845589674, 2500 $
ООО «Лайт», 5689845235689, 500 $
TABLE
Если переменная представляет собой список значений и нужно отобразить информацию для каждого значения в виде таблицы, используйте следующий синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Пример
В этом примере из добавленной в задачу аналитики извлекаются только нужные блоки, после чего информация отправляется клиенту в виде таблицы. Таблица добавляется с помощью редактора Planfix:
Заказ №{{Task.Number}}
%%$TABLE({{Data tag.Service}})$%%
| {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
%%$ENDBLOCK$%%
Общая сумма заказа: %%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%
Результат:
Заказ №2118
| Графический дизайн | 1 600.00 |
| Программирование | 3 000.00 |
| Разработка ТЗ | 300.00 |
Общая сумма заказа: 4 900.00 долларов
Пример с заголовком и итоговой строкой
Чтобы добавить в таблицу заголовок или строку с итогами, используйте в синтаксисе следующие параметры:
Таблица, созданная с помощью редактора Planfix
%%$ENDBLOCK$%%
Пример:
%%$TABLE({{Data Tag.Service}};1;1)$%%
| № | Название | Цена |
|---|---|---|
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Итого | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Результат:
| № | Название | Цена |
|---|---|---|
| 1 | Разработка ТЗ | 1 000.00 |
| 2 | Программирование | 3 705.00 |
| 3 | Графический дизайн | 1 035.00 |
| 4 | Тестирование | 690.00 |
| Итого | 6430 | |
Красным цветом выделено количество строк, которые нужно использовать в заголовке и итоговой строке.
Например, числа (1;1) в примере выше означают, что одна строка в начале будет использована для заголовка таблицы, а одна строка в конце — для итогов.
Чтобы использовать в заголовке таблицы две строки, укажите параметры так: (2;1).
Пример:
%%$TABLE({{Data tag .Service}};2;1)$%%
| Набор услуг | ||
|---|---|---|
| № | Название | Цена |
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Итого | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Результат:
| Набор услуг | ||
|---|---|---|
| № | Название | Цена |
| 1 | Разработка ТЗ | 1 000.00 |
| 2 | Программирование | 3 705.00 |
| 3 | Графический дизайн | 1 035.00 |
| 4 | Тестирование | 690.00 |
| Итого | 6430 | |
Пример с условием
%%$TABLE(Переменная;0;0;Условие_БЕЗ_If)$%%
Таблица, созданная с помощью редактора Planfix
%%$ENDBLOCK$%%
%%$TABLE({{Task.Subtasks}};1;0;{{Task.Subtasks.Status}}="TKP added to calculation")$%%
| Контрагент | ИНН | Сумма договора |
|---|---|---|
| {{Task.Subtasks.Counterparty}} | {{Task.Subtasks.Counterparty.TIN}} | {{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}} |
%%$ENDBLOCK$%%
Результат:
| Контрагент | ИНН | Сумма договора |
|---|---|---|
| ООО «Санрайз» | 5689845987654 | 1500$ |
| ООО «Сансет» | 5689845125699 | 1700$ |
| ООО «Доун» | 5689845589674 | 2500$ |
| ООО «Лайт» | 5689845235689 | 500$ |
Чтобы добавить заголовок в таблицу, щёлкните по ней правой кнопкой мыши и выберите Строка — Вставить строку выше:
FOREACH и TABLE с инфоблоками
При разборе письма или обработке HTTP-запроса можно получить несколько строк данных и добавить их в виде структурированного текста или таблицы:
- Извлеките данные в инфоблоки:
- Затем используйте следующий синтаксис:
%%$FOREACH({{Infoblock.!row}};Разделитель)$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%
%%$TABLE({{Infoblock.!row}})$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%
Пример
Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу:
%%$TABLE({{Infoblock.!row}})$%%
| {{Infoblock.!string.Product}} | {{Infoblock.!string.Price}} |
%%$ENDBLOCK$%%
Результат:
| Карандаш | 1,00 |
| Ручка | 2,00 |
| Блокнот | 10,00 |