Variables en el texto
Las variables almacenan algún valor, como un número, una cadena u otro tipo de dato. Las variables se usan en:
- Tarea: nombre (en la plantilla de tarea o al crear una tarea)
- Tarea: descripción (en la plantilla de tarea o al crear una tarea)
- Plantillas de correo electrónico
- Acciones de guión, botones, webhooks entrantes, reglas de correo para tareas:
- Send HTTP request
- Send SMS
- Write to WhatsApp
- Write to Instagram
- Acciones masivas, guiones, botones, webhooks entrantes, reglas de correo para tareas:
- Change name
- Change description
- Add comment
- Set field value (para campos de tipo "Text")
Para agregar una variable al texto, por ejemplo, en la descripción de la tarea, haga clic en el enlace "different variables" (1), cree la variable y agrégela al texto del campo deseado en la plantilla de tarea (2):
Cálculos con Variables
A veces no basta con insertar el valor de una variable en el texto, y también necesita realizar cálculos con los valores en las variables o procesar la cadena obtenida. Para tales acciones, use la siguiente sintaxis:
%%%FORMULA TEXT%%%
Ejemplos
Importante
- El texto de la fórmula debe escribirse en una sola línea y no puede romperse. En otras palabras, la fórmula no puede continuar en la siguiente línea presionando la tecla Enter.
- Las variables en la fórmula no pueden formatearse, por ejemplo, ponerlas en negrita o en cursiva.
- Si necesita resaltar el resultado de la fórmula en negrita, aplique el formato a toda la fórmula junto con el resultado.
IF
Para insertar texto dependiendo de los valores de las variables (condiciones), use la siguiente sintaxis:
TEXT
%%$ENDBLOCK$%%
Ejemplo
%%$IF({{Task.Order Amount}} > 100000)$%%
VIP CUSTOMER
%%$ENDBLOCK$%%
Resultado:
ELSE
ELSE se usa sólo junto con IF. Cuando la condición en IF no es verdadera, se muestra el texto de la parte ELSE del bloque.
%%$IF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%
Ejemplo
%%$IF({{Task. Invoice №}}="")$%%
The field [Invoice №] is not filled in
%%$ELSE$%%
The required task field is filled in! :)
%%$ENDBLOCK$%%
Resultado:
- Si el campo no está rellenado, se mostrará el mensaje "The field [Invoice №] is not filled in".
- Si el campo está rellenado, se mostrará el mensaje "The required task field is filled in! :)".
ELSEIF
Ayuda a crear una expresión más compleja con condiciones:
%%$IF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%
Nota
- El último ELSE es una parte opcional del bloque.
Ejemplo
%%$IF({{Task.Invoice Number}}="")$%%
The field [Invoice Number] is not filled in
%%$ELSEIF({{Task.UPD Number}}="")$%%
The field [UPD Number] is not filled in
%%$ELSEIF({{Task.Contract Number}}="")$%%
The field [Contract Number] is not filled in
%%$ELSE$%%
All task fields are filled in, you're awesome! :)
%%$ENDBLOCK$%%
Resultado:
- Si los tres campos no están rellenados, solo se mostrará el primer mensaje "The field [Invoice Number] is not filled in", el resto se omite.
- Si los campos "Invoice Number" y "UPD Number" están rellenados, pero el campo "Contract Number" no lo está, entonces se mostrará el mensaje correspondiente "The field [Contract Number] is not filled in".
FOREACH
Cuando una variable representa una lista de valores, como {{Task.Subtasks}} o {{Task.Assignee}}, y necesita mostrar información para cada valor, use la siguiente sintaxis:
TEXT
%%$ENDBLOCK$%%
Ejemplo
Resultado:
Jamse Davis - Developer
Mary Brown - CEO
Resultado:
2120 - Sub-final finishing
2121 - Final touches
Ejemplo con condición
%%$FOREACH(Variable;Delimiter;Condition_WITHOUT_If)$%%
TEXT
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}};"";{{Task.Subtasks."Contract Amount ($)"}}>1000))$%%
{{Task.Subtasks.Counterparty}}, contract amount {{Task.Subtasks."Contract Amount ($)"}}
%%$ENDBLOCK$%%
Resultado
Del listado completo de contrapartes, solo se mostrarán aquellas con un monto de contrato mayor a 1000:
LLC Sunrise, 1500
LLC Sunset, 1700
LLC Dawn, 2500
Bloque ELSE dentro de FOREACH
%%$FOREACH(Variable;Delimiter)$%%
TEXT
%%$IF(Logical formula)$%%
TEXT
%%$ENDBLOCK$%%
TEXT
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}})$%%%%$IF({{Task.Subtasks.Status}}="TKP added to calculation")$%%
{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, contract amount {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%
Resultado:
LLC Sunrise, 5689845987654, 1500 $
LLC Sunset, 5689845125699, 1700 $
LLC Dawn, 5689845589674, 2500 $
LLC Light, 5689845235689, 500 $
TABLE
Si una variable representa una lista de valores, y necesita mostrar la información de cada valor en forma de tabla, use la siguiente sintaxis:
TEXT
%%$ENDBLOCK$%%
Ejemplo
El ejemplo muestra cómo extraer solo los bloques necesarios del etiqueta de datos añadida en la tarea y enviar esta información al cliente en forma de tabla. La tabla se añade usando el editor de Planfix:
Order №{{Task.Number}}
%%$TABLE({{Data tag.Service}})$%%
| {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
%%$ENDBLOCK$%%
Total order amount: %%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%
Resultado:
Order №2118
| Graphic design | 1 600.00 |
| Programming | 3 000.00 |
| Development of TA | 300.00 |
Total order amount: 4 900.00 dollars
Ejemplo con encabezado y total
Para añadir un encabezado o una fila de totales a la tabla, use los siguientes parámetros en la sintaxis:
Tabla dibujada usando el editor de Planfix
%%$ENDBLOCK$%%
Ejemplo:
%%$TABLE({{Data Tag.Service}};1;1)$%%
| # | Name | Price |
|---|---|---|
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Total | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Resultado:
| # | Name | Price |
|---|---|---|
| 1 | Development of TA | 1 000.00 |
| 2 | Programming | 3 705.00 |
| 3 | Graphic design | 1 035.00 |
| 4 | Testing | 690.00 |
| Total | 6430 | |
Los números resaltados en rojo indican cuántas filas usar en el encabezado y en los totales.
Por ejemplo, los números (1;1) en el ejemplo anterior significan que se usará una fila al principio para el encabezado de la tabla y una fila al final para los totales.
Para usar dos filas en el encabezado de la tabla, especifíquelo así — (2;1).
Ejemplo:
%%$TABLE({{Data tag .Service}};2;1)$%%
| Set of services | ||
|---|---|---|
| # | Name | Price |
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Total | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Resultado:
| Set of services | ||
|---|---|---|
| # | Name | Price |
| 1 | Development of TA | 1 000.00 |
| 2 | Programming | 3 705.00 |
| 3 | Graphic design | 1 035.00 |
| 4 | Testing | 690.00 |
| Total | 6430 | |
Ejemplo con condición
%%$TABLE(Variable;0;0;Condition_WITHOUT_If)$%%
Table drawn using the Planfix editor
%%$ENDBLOCK$%%
%%$TABLE({{Task.Subtasks}};1;0;{{Task.Subtasks.Status}}="TKP added to calculation")$%%
| Counterparty | TIN | Contract amount |
|---|---|---|
| {{Task.Subtasks.Counterparty}} | {{Task.Subtasks.Counterparty.TIN}} | {{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}} |
%%$ENDBLOCK$%%
Resultado:
| Counterparty | TIN | Contract amount |
|---|---|---|
| LLC Sunrise | 5689845987654 | 1500$ |
| LLC Sunset | 5689845125699 | 1700$ |
| LLC Dawn | 5689845589674 | 2500$ |
| LLC Light | 5689845235689 | 500$ |
Para añadir un encabezado a la tabla, haga clic derecho en ella y seleccione Row - Insert Row Above:
FOREACH y TABLE con infoblocks
Al analizar un correo o al responder a una solicitud HTTP, se reciben varias líneas de datos y se desea agregarlas en forma de texto estructurado o una tabla:
- Extraiga los datos a infoblocks:
- from JSON
- from HTML table
- Luego use la siguiente sintaxis:
%%$FOREACH({{Infoblock.!row}};Separator)$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%
%%$TABLE({{Infoblock.!row}})$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%
Ejemplo
Extraigamos datos a los infoblocks "Product" y "Price" y añadámoslos a la tabla:
%%$TABLE({{Infoblock.!row}})$%%
| {{Infoblock.!string.Product}} | {{Infoblock.!string.Price}} |
%%$ENDBLOCK$%%
Resultado:
| Pencil | 1,00 |
| Pen | 2,00 |
| Notebook | 10,00 |