Ir al contenido

Sintaxis de plantillas

Las variables son marcadores dentro de tu plantilla que se sustituyen por los valores reales del registro de Lark Base.

Usa llaves con el nombre exacto del campo:

{Field_Name}

Ejemplos:

  • {Customer_Name} → “Acme Corp”
  • {Invoice_Date} → “2024-01-15”
  • {Total_Amount} → “1,500.00”
Categoría Tipos de campo Salida por defecto
Texto Texto, Email, campos de código de barras Tal cual
Número Números, Moneda, Progreso (%), Valoración Formato de Lark (p. ej. $1,234.56)
Fecha/Hora Fecha, Fecha de creación, Fecha de modificación Formato de Lark (respeta la zona horaria)
Selección Selección simple, Selección múltiple Texto / separado por comas
Personas User, Created By, Modified By, Group Nombres visibles
Contacto Teléfono, URL Número de teléfono / URL
Casilla Valores sí/no true / false
Adjuntos Archivos e imágenes Ver imágenes dinámicas
Registros vinculados Datos de tablas relacionadas Ver registros vinculados
Lookup Valores traídos de registros vinculados Valor resuelto
Fórmula Campos calculados (texto, números, fechas) Depende del tipo de resultado

Accede a campos de registros vinculados con notación de punto:

{Customer.Name}
{Customer.Address}
{Customer.Email}

El anidamiento admite hasta 5 niveles:

{Order.Customer.Company.Address.City}

Propiedades avanzadas de campo (notación de punto)

Sección titulada «Propiedades avanzadas de campo (notación de punto)»

Varios tipos de campo exponen subpropiedades mediante notación de punto. Sin ella, muestran un valor por defecto.

{Website} → "https://example.com" (la URL)
{Website.text} → "Example Site" (el texto del enlace)
{Website.link} → "https://example.com" (la URL)

Created By y Modified By contienen una sola persona, así que la notación de punto funciona. Un campo User siempre es una lista —aunque tenga una sola persona—, por lo que {Assignee.name} no devuelve nada. Usa un índice o un bucle:

{Created_By} → "John Doe"
{Created_By.name} → "John Doe"
{Created_By.en_name} → "John Doe" (nombre en inglés)
{Created_By.id} → "ou_abc123"
{Assignee} → "John Doe, Jane Roe"
{Assignee[0].name} → "John Doe"
{Assignee[0].en_name} → "John Doe" (nombre en inglés)
{Assignee[0].id} → "ou_abc123" (ID de usuario de Lark)

Para campos de varias personas, usa bucles:

{#Assignee}
{name} ({en_name})
{/Assignee}
{Office} → "Headquarters, 123 Main St, City"
{Office.name} → "Headquarters"
{Office.full_address} → "123 Main St, City, Country"
{Office.address} → "123 Main St"

Un campo de grupo también es una lista, así que {Team.name} no devuelve nada. Usa un índice o un bucle:

{Team} → "Engineering, Design" (nombres separados por comas)
{Team[0].name} → primer nombre de grupo
{Team[0].id} → primer ID de grupo

Para todos los grupos, usa bucles:

{#Team}
{name} (ID: {id})
{/Team}

Los campos de selección múltiple se pueden recorrer con un bucle o unir con un separador propio:

{Tags} → "Red, Blue, Green" (por defecto, separado por comas)
{Tags | join:" / "} → "Red / Blue / Green"
{#Tags}
- {.}
{/Tags}

Campos numéricos y de fecha (los filtros anulan el formato)

Sección titulada «Campos numéricos y de fecha (los filtros anulan el formato)»

Los campos numéricos y de fecha/hora se muestran con el formato propio de Lark. Al aplicar un filtro, se usa el valor bruto (el número real o la marca de tiempo) y se anula por completo el formato de Lark:

{Price} → "$1,234.50" (formato de Lark)
{Price | number:2} → "1,234.50" (número bruto, reformateado)
{Price | currency:"EUR":"de-DE"} → "1.234,50 €" (número bruto, locale alemán)
{Date} → "2026/02/26" (formato de Lark)
{Date | date:"DD MMM YYYY"} → "26 Feb 2026" (marca de tiempo bruta, reformateada)

Los campos sin filtro conservan siempre el formato original de Lark.

Para campos que enlazan varios registros, usa la sintaxis de bucle para repetir contenido por cada elemento:

{#Line_Items}
Product: {Product_Name}
Quantity: {Quantity}
Price: {Price}
{/Line_Items}

{#Field} abre el bucle y {/Field} lo cierra. Dentro del bucle, usa los nombres de campo sin el prefijo del padre.

Puedes usar {/} en lugar de repetir el nombre del campo:

{#Line_Items}
{Product_Name} - {Price}
{/}

Si las etiquetas de bucle van dentro de una fila de tabla, la fila entera se duplica por cada elemento: perfecto para tablas de líneas de detalle.

Product Qty Price
{#Line_Items} {Product_Name} {Quantity} {Price} {/Line_Items}

Para arrays de valores simples (no objetos), usa {.} para referenciar el elemento actual:

{#Tags}
{.}
{/Tags}

Dentro de cualquier bucle tienes disponibles estas variables especiales:

Variable Descripción Ejemplo
{$index} Índice actual (empieza en 0) 0, 1, 2, …
{$num} Número de fila (empieza en 1) 1, 2, 3, …
{$first} true en el primer elemento Imprime true / false
{$last} true en el último elemento Imprime true / false

Los bucles se pueden anidar. Los internos pueden acceder a campos de los ámbitos externos:

{#Departments}
Department: {Name}
{#Employees}
{Name} works in {Department.Name}
{/Employees}
{/Departments}

Si un nombre de campo existe en el ámbito interno y en el externo, gana el interno.

Muestra u oculta contenido según el valor de un campo.

Muestra el contenido solo si el campo tiene valor:

{#if Discount}
Discount applied: {Discount}
{/if}

Muestra el contenido solo si el campo está vacío:

{#if !Notes}
No additional notes.
{/if}
{#if Status == "Approved"}
This invoice has been approved.
{/if}
{#if Status != "Draft"}
This document has been submitted.
{/if}

Los filtros transforman cómo se muestra un valor, usando la sintaxis de barra vertical (|):

{Field | filterName}
{Field | filterName:"arg1":"arg2"}

Los filtros se aplican después de obtener el valor y antes de insertarlo en el documento. Sin filtro, el valor se muestra con el formato por defecto de Lark.

Filtro Descripción Ejemplo Salida
upper Mayúsculas {Name | upper} ACME CORP
lower Minúsculas {Name | lower} acme corp
capitalize Inicial de cada palabra en mayúscula {Name | capitalize} Acme Corp
trim Elimina espacios al principio y al final {Name | trim} Acme Corp
truncate Recorta a una longitud (por defecto 50) {Description | truncate:16} Lorem ipsum dolo...
pad Rellena con un carácter (por defecto 0) {$num | pad:3} 001

Todos los filtros numéricos aceptan un locale opcional para dar formato por región:

Filtro Argumentos Ejemplo Salida
number decimales, locale {Price | number:2} 1,234.50
number decimales, locale {Price | number:2:"de-DE"} 1.234,50
currency código de moneda, locale {Price | currency:"USD"} $1,234.50
currency código de moneda, locale {Price | currency:"EUR":"de-DE"} 1.234,50 €
currency código de moneda, locale {Price | currency:"JPY":"ja-JP"} ¥1,235
percent decimales, locale {Rate | percent:1} 45.6%
percent decimales, locale {Rate | percent:1:"de-DE"} 45,6 %

Da formato a las fechas con patrones propios, útil cuando el formato de Lark no encaja con lo que necesitas.

Sintaxis: {Field | date:"format":"timezone":"locale"}

Todos los argumentos son opcionales. La zona horaria por defecto es UTC y el locale por defecto en-US.

Filtro Argumentos Ejemplo Salida
date formato, zona horaria, locale {Date | date:"DD MMM YYYY"} 26 Feb 2026
date formato, zona horaria, locale {Date | date:"dddd, DD MMMM YYYY"} Thursday, 26 February 2026
date formato, zona horaria, locale {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} 26 février 2026
date formato, zona horaria, locale {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} Donnerstag, 26 Februar 2026

Tokens de fecha admitidos:

Token Salida Ejemplo
YYYY Año de 4 dígitos 2026
MMMM Nombre completo del mes (según locale) February, février, Februar
MMM Nombre corto del mes (según locale) Feb, fév, Feb
MM Mes de 2 dígitos 02
dddd Nombre completo del día (según locale) Thursday, Donnerstag, 木曜日
ddd Nombre corto del día (según locale) Thu, Do,
DD Día de 2 dígitos 26
HH Hora en formato 24 h 15
mm Minutos 30
ss Segundos 00

Ejemplos:

{Invoice_Date | date:"DD MMM YYYY"} → 26 Feb 2026
{Invoice_Date | date:"YYYY-MM-DD"} → 2026-02-26
{Invoice_Date | date:"MM/DD/YYYY"} → 02/26/2026
{Invoice_Date | date:"DD/MM/YYYY":"Asia/Tokyo"} → 26/02/2026 (zona horaria de Tokio)
{Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026
{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026
Filtro Descripción Ejemplo Salida
join Une valores de un array (por defecto , ) {Tags | join:" / "} Red / Blue / Green
default Valor alternativo si está vacío {Phone | default:"N/A"} N/A

Los filtros se encadenan de izquierda a derecha con varias barras verticales:

{Name | trim | upper} → " hello " pasa a "HELLO"
{$num | pad:3} → 1 pasa a "001"
{Phone | default:"N/A" | upper} → null pasa a "N/A"

Los filtros también funcionan con las variables de bucle y la referencia al elemento actual:

{#Items}
#{$num | pad:3} - {Name | upper}
{/Items}
{#Tags}{. | capitalize}, {/Tags}

Sustituye imágenes de marcador por las imágenes reales de los campos de adjuntos de Lark:

  1. Inserta cualquier imagen en tu plantilla de Word (será el marcador).
  2. Haz clic derecho sobre la imagen → Editar texto alternativo.
  3. En la descripción del texto alternativo, escribe {FieldName}.
  4. Guarda la plantilla.

La imagen de marcador se sustituirá por la imagen real del campo de adjuntos, conservando el tamaño del marcador.

Para campos con varios adjuntos, usa notación de índice:

{Photo} → Primera imagen (igual que {Photo[0]})
{Photo[1]} → Segunda imagen
{Photo[2]} → Tercera imagen

Para campos con un número variable de adjuntos, usa un bucle con {.} como texto alternativo. Cada adjunto genera su propia copia del marcador:

{#Product_Photos}
[imagen con texto alternativo: {.}]
{/Product_Photos}

En una tabla, cada adjunto ocupa su propia fila:

# Photo Filename
{#Product_Photos} {$num} texto alt: {.} {name} {/Product_Photos}

Propiedades disponibles dentro del bucle:

Variable Descripción Ejemplo
{name} Nombre del archivo photo1.jpg
{type} Tipo MIME image/jpeg
{size} Tamaño en bytes 204800

Imágenes dentro de bucles de registros vinculados

Sección titulada «Imágenes dentro de bucles de registros vinculados»

Los marcadores de imagen también funcionan dentro de bucles. Cada iteración resuelve la imagen de ese elemento:

{#Employees}
Name: {Name}
Photo: [imagen con texto alternativo: {Photo}]
{/Employees}

Genera códigos QR y de barras a partir de valores de campo. Se configuran igual que las imágenes dinámicas: mediante el texto alternativo de la imagen.

{QR:FieldName}

Ejemplo: {QR:Order_ID} genera un código QR con el valor de Order_ID.

Sintaxis Tipo Notas
{BARCODE:FieldName} Code128 Por defecto, alfanumérico
{BARCODE128:FieldName} Code128 Code128 explícito
{BARCODE39:FieldName} Code39 Solo mayúsculas y dígitos
{BARCODEEAN13:FieldName} EAN-13 Código de producto de 13 dígitos
{BARCODEEAN8:FieldName} EAN-8 EAN corto de 8 dígitos
{BARCODEUPCA:FieldName} UPC-A Retail norteamericano de 12 dígitos
{BARCODEUPCE:FieldName} UPC-E UPC comprimido
{BARCODEITF14:FieldName} ITF-14 Códigos de envío / caja
{BARCODEDATAMATRIX:FieldName} DataMatrix 2D, alta densidad
{BARCODEPDF417:FieldName} PDF417 2D, lineal apilado

El prefijo no distingue mayúsculas de minúsculas: {qr:Field} y {QR:Field} funcionan igual.

Toda la sintaxis de marcadores funciona también en encabezados y pies de página, igual que en el cuerpo.

Usos habituales:

  • Nombre de la empresa o logotipo en el encabezado
  • Número de documento o fecha en el pie
  • Etiquetas dinámicas como Invoice for {Customer_Name}

Para añadirlos: Insertar → Encabezado/Pie de página → Editar → escribe tu marcador, por ejemplo {Field_Name}.

Sintaxis Descripción
{Field} Variable simple
{Field.Nested} Campo de registro vinculado (notación de punto)
{URL.text} / {URL.link} Subpropiedades de URL
{Created_By.name} / {Assignee[0].name} Subpropiedades de usuario
{Location.name} / {Location.full_address} Subpropiedades de ubicación
{Team[0].name} / {Team[0].id} Subpropiedades de grupo
{#Field}...{/Field} Bucle sobre campo multivalor
{/} Cierre abreviado (cierra el bucle más cercano)
{.} Elemento actual del bucle (arrays simples)
{$index} Índice del bucle (desde 0)
{$num} Número de fila (desde 1)
{$first} / {$last} Booleano primer/último elemento
{#if Field}...{/if} Condición (con valor)
{#if !Field}...{/if} Condición (vacío)
{#if Field == "val"}...{/if} Condición (igualdad)
{#if Field != "val"}...{/if} Condición (desigualdad)
{Field | upper} Filtro: mayúsculas
{Field | lower} Filtro: minúsculas
{Field | capitalize} Filtro: iniciales en mayúscula
{Field | trim} Filtro: quitar espacios
{Field | truncate:30} Filtro: recortar con puntos suspensivos
{Field | pad:3} Filtro: rellenar con ceros
{Field | number:2} Filtro: número con decimales
{Field | number:2:"de-DE"} Filtro: número según locale
{Field | currency:"USD"} Filtro: formato de moneda
{Field | currency:"EUR":"de-DE"} Filtro: moneda según locale
{Field | percent:1} Filtro: porcentaje
{Field | date:"DD MMM YYYY"} Filtro: formato de fecha propio
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} Filtro: fecha según locale
{Field | join:" / "} Filtro: unir array con separador
{Field | default:"N/A"} Filtro: valor alternativo
{Field | trim | upper} Filtros encadenados (izquierda a derecha)
{Photo} / {Photo[1]} Imagen (vía texto alternativo)
{QR:Field} Código QR (vía texto alternativo)
{BARCODE:Field} Código de barras (vía texto alternativo)