Sintaks template
Variabel adalah placeholder di template Anda yang akan diganti dengan data asli dari record Lark Base.
Sintaks dasar
Section titled “Sintaks dasar”Gunakan kurung kurawal dengan nama field yang persis:
{Field_Name}Contoh:
{Customer_Name}→ “Acme Corp”{Invoice_Date}→ “2024-01-15”{Total_Amount}→ “1,500.00”
Tipe field yang didukung
Section titled “Tipe field yang didukung”| Kategori | Tipe field | Output default |
|---|---|---|
| Teks | Teks biasa, Email, field Barcode | Apa adanya |
| Angka | Angka, Mata uang, Progress (%), Rating | Format Lark (mis. $1,234.56) |
| Tanggal/Waktu | Tanggal, Waktu dibuat, Waktu diubah | Format Lark (mengikuti pengaturan zona waktu) |
| Pilihan | Single Select, Multi Select | Teks / dipisah koma |
| Orang | User, Created By, Modified By, Group | Nama tampilan |
| Kontak | Telepon, URL | Nomor telepon / URL tautan |
| Checkbox | Nilai Ya/Tidak | true / false |
| Lampiran | File dan gambar | Lihat gambar dinamis |
| Record terkait | Mengakses data dari tabel lain | Lihat record terkait |
| Lookup | Nilai yang ditarik dari record terkait | Nilai hasil resolusi |
| Formula | Field terhitung (teks, angka, tanggal) | Tergantung tipe hasilnya |
Record terkait (field bersarang)
Section titled “Record terkait (field bersarang)”Akses field dari record terkait dengan notasi titik:
{Customer.Name}{Customer.Address}{Customer.Email}Bersarang hingga 5 tingkat:
{Order.Customer.Company.Address.City}Properti lanjutan field (notasi titik)
Section titled “Properti lanjutan field (notasi titik)”Beberapa tipe field menyediakan sub-properti lewat notasi titik. Tanpa notasi titik, field menampilkan nilai defaultnya.
Field URL
Section titled “Field URL”{Website} → "https://example.com" (URL tautan){Website.text} → "Example Site" (teks tautan){Website.link} → "https://example.com" (URL tautan)User / Created By / Modified By
Section titled “User / Created By / Modified By”Created By dan Modified By berisi satu orang, jadi notasi titik biasa berfungsi. Field User selalu berupa daftar — bahkan bila hanya berisi satu orang — sehingga {Assignee.name} tidak menghasilkan apa pun. Gunakan indeks atau loop:
{Created_By} → "John Doe"{Created_By.name} → "John Doe"{Created_By.en_name} → "John Doe" (nama Inggris){Created_By.id} → "ou_abc123"
{Assignee} → "John Doe, Jane Roe"{Assignee[0].name} → "John Doe"{Assignee[0].en_name} → "John Doe" (nama Inggris){Assignee[0].id} → "ou_abc123" (ID pengguna Lark)Untuk field multi-orang, gunakan loop:
{#Assignee} {name} ({en_name}){/Assignee}Field lokasi
Section titled “Field lokasi”{Office} → "Headquarters, 123 Main St, City"{Office.name} → "Headquarters"{Office.full_address} → "123 Main St, City, Country"{Office.address} → "123 Main St"Field grup
Section titled “Field grup”Field grup juga berupa daftar, jadi {Team.name} tidak menghasilkan apa pun. Gunakan indeks atau loop:
{Team} → "Engineering, Design" (nama grup dipisah koma){Team[0].name} → nama grup pertama{Team[0].id} → ID grup pertamaUntuk semua grup, gunakan loop:
{#Team} {name} (ID: {id}){/Team}Multi Select
Section titled “Multi Select”Field Multi Select bisa di-loop, atau digabung dengan pemisah khusus:
{Tags} → "Red, Blue, Green" (default dipisah koma){Tags | join:" / "} → "Red / Blue / Green"{#Tags} - {.}{/Tags}Field angka dan tanggal (filter menimpa format)
Section titled “Field angka dan tanggal (filter menimpa format)”Field angka dan tanggal/waktu tampil dengan format bawaan Lark. Begitu filter dipakai, AutomaDoc memakai nilai mentah (angka asli atau timestamp epoch) dan sepenuhnya menimpa format Lark:
{Price} → "$1,234.50" (format Lark){Price | number:2} → "1,234.50" (angka mentah, diformat ulang){Price | currency:"EUR":"de-DE"} → "1.234,50 €" (angka mentah, locale Jerman)
{Date} → "2026/02/26" (format Lark){Date | date:"DD MMM YYYY"} → "26 Feb 2026" (timestamp mentah, diformat ulang)Field tanpa filter selalu memakai format asli dari Lark.
Loop (field multi-link)
Section titled “Loop (field multi-link)”Untuk field yang terhubung ke banyak record, gunakan sintaks loop agar konten diulang untuk tiap item:
{#Line_Items} Product: {Product_Name} Quantity: {Quantity} Price: {Price}{/Line_Items}{#Field} memulai loop, {/Field} menutupnya. Di dalam loop, tulis nama field tanpa prefiks induknya.
Tag penutup singkat
Section titled “Tag penutup singkat”Anda bisa memakai {/} alih-alih mengulang nama field:
{#Line_Items} {Product_Name} - {Price}{/}Perluasan baris tabel
Section titled “Perluasan baris tabel”Bila tag loop diletakkan di dalam baris tabel, seluruh baris digandakan untuk tiap item — sangat pas untuk tabel rincian:
| Product | Qty | Price |
|---|---|---|
{#Line_Items} {Product_Name} |
{Quantity} |
{Price} {/Line_Items} |
Array nilai sederhana
Section titled “Array nilai sederhana”Untuk array berisi nilai sederhana (bukan objek), pakai {.} untuk merujuk item saat ini:
{#Tags} {.}{/Tags}Metadata loop
Section titled “Metadata loop”Di dalam loop mana pun, variabel khusus berikut tersedia:
| Variabel | Keterangan | Contoh |
|---|---|---|
{$index} |
Indeks saat ini (mulai dari 0) | 0, 1, 2, … |
{$num} |
Nomor baris (mulai dari 1) | 1, 2, 3, … |
{$first} |
true untuk item pertama |
Mencetak true / false |
{$last} |
true untuk item terakhir |
Mencetak true / false |
Loop bersarang
Section titled “Loop bersarang”Loop bisa disarangkan. Loop dalam tetap bisa mengakses field dari lingkup luar:
{#Departments} Department: {Name} {#Employees} {Name} works in {Department.Name} {/Employees}{/Departments}Jika nama field ada di lingkup dalam dan luar, lingkup dalam yang menang.
Konten bersyarat
Section titled “Konten bersyarat”Tampilkan atau sembunyikan konten berdasarkan nilai field.
Cek terisi
Section titled “Cek terisi”Tampilkan konten hanya jika field ada isinya:
{#if Discount} Discount applied: {Discount}{/if}Cek kosong (negasi)
Section titled “Cek kosong (negasi)”Tampilkan konten hanya jika field kosong:
{#if !Notes} No additional notes.{/if}Perbandingan sama dengan
Section titled “Perbandingan sama dengan”{#if Status == "Approved"} This invoice has been approved.{/if}Perbandingan tidak sama dengan
Section titled “Perbandingan tidak sama dengan”{#if Status != "Draft"} This document has been submitted.{/if}Filter
Section titled “Filter”Filter mengubah cara nilai ditampilkan, memakai sintaks pipe (|):
{Field | filterName}{Field | filterName:"arg1":"arg2"}Filter diterapkan setelah nilai diambil dan sebelum dimasukkan ke dokumen. Tanpa filter, nilai tampil dengan format bawaan Lark.
Filter teks
Section titled “Filter teks”| Filter | Keterangan | Contoh | Output |
|---|---|---|---|
upper |
Huruf besar semua | {Name | upper} |
ACME CORP |
lower |
Huruf kecil semua | {Name | lower} |
acme corp |
capitalize |
Awali tiap kata dengan huruf besar | {Name | capitalize} |
Acme Corp |
trim |
Hapus spasi di awal/akhir | {Name | trim} |
Acme Corp |
truncate |
Potong sampai panjang tertentu (default 50) | {Description | truncate:16} |
Lorem ipsum dolo... |
pad |
Isi dengan karakter (default 0) |
{$num | pad:3} |
001 |
Filter angka
Section titled “Filter angka”Semua filter angka menerima locale opsional untuk format sesuai wilayah:
| Filter | Argumen | Contoh | Output |
|---|---|---|---|
number |
desimal, locale | {Price | number:2} |
1,234.50 |
number |
desimal, locale | {Price | number:2:"de-DE"} |
1.234,50 |
currency |
kode mata uang, locale | {Price | currency:"USD"} |
$1,234.50 |
currency |
kode mata uang, locale | {Price | currency:"EUR":"de-DE"} |
1.234,50 € |
currency |
kode mata uang, locale | {Price | currency:"JPY":"ja-JP"} |
¥1,235 |
percent |
desimal, locale | {Rate | percent:1} |
45.6% |
percent |
desimal, locale | {Rate | percent:1:"de-DE"} |
45,6 % |
Filter tanggal
Section titled “Filter tanggal”Format tanggal dengan pola khusus — berguna saat format bawaan Lark tidak sesuai kebutuhan.
Sintaks: {Field | date:"format":"timezone":"locale"}
Semua argumen opsional. Zona waktu default UTC. Locale default en-US.
| Filter | Argumen | Contoh | Output |
|---|---|---|---|
date |
format, timezone, locale | {Date | date:"DD MMM YYYY"} |
26 Feb 2026 |
date |
format, timezone, locale | {Date | date:"dddd, DD MMMM YYYY"} |
Thursday, 26 February 2026 |
date |
format, timezone, locale | {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} |
26 février 2026 |
date |
format, timezone, locale | {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} |
Donnerstag, 26 Februar 2026 |
Token tanggal yang didukung:
| Token | Output | Contoh |
|---|---|---|
YYYY |
Tahun 4 digit | 2026 |
MMMM |
Nama bulan lengkap (mengikuti locale) | February, février, Februar |
MMM |
Nama bulan singkat (mengikuti locale) | Feb, fév, Feb |
MM |
Bulan 2 digit | 02 |
dddd |
Nama hari lengkap (mengikuti locale) | Thursday, Donnerstag, 木曜日 |
ddd |
Nama hari singkat (mengikuti locale) | Thu, Do, 木 |
DD |
Tanggal 2 digit | 26 |
HH |
Jam format 24 | 15 |
mm |
Menit | 30 |
ss |
Detik | 00 |
Contoh:
{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 waktu Tokyo){Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026Filter lainnya
Section titled “Filter lainnya”| Filter | Keterangan | Contoh | Output |
|---|---|---|---|
join |
Gabungkan nilai array (default , ) |
{Tags | join:" / "} |
Red / Blue / Green |
default |
Nilai cadangan bila kosong | {Phone | default:"N/A"} |
N/A |
Merangkai filter
Section titled “Merangkai filter”Filter bisa dirangkai dari kiri ke kanan dengan beberapa pipe:
{Name | trim | upper} → " hello " menjadi "HELLO"{$num | pad:3} → 1 menjadi "001"{Phone | default:"N/A" | upper} → null menjadi "N/A"Filter di dalam loop
Section titled “Filter di dalam loop”Filter juga bekerja dengan variabel loop dan rujukan item saat ini:
{#Items} #{$num | pad:3} - {Name | upper}{/Items}
{#Tags}{. | capitalize}, {/Tags}Gambar dinamis
Section titled “Gambar dinamis”Ganti gambar placeholder dengan gambar asli dari field lampiran Lark:
- Sisipkan gambar apa pun di template Word Anda (ini jadi placeholder-nya).
- Klik kanan gambar → Edit Alt Text.
- Pada deskripsi Alt Text, ketik
{FieldName}. - Simpan template Anda.
Gambar placeholder akan diganti dengan gambar asli dari field lampiran, dengan ukuran placeholder tetap dipertahankan.
Banyak gambar
Section titled “Banyak gambar”Untuk field dengan beberapa lampiran, pakai notasi indeks:
{Photo} → Gambar pertama (sama dengan {Photo[0]}){Photo[1]} → Gambar kedua{Photo[2]} → Gambar ketigaLoop untuk semua gambar
Section titled “Loop untuk semua gambar”Untuk field dengan jumlah lampiran yang berubah-ubah, pakai sintaks loop dengan {.} sebagai alt text gambar. Tiap lampiran memperbanyak salinan placeholder-nya sendiri:
{#Product_Photos} [gambar dengan alt text: {.}]{/Product_Photos}Di dalam tabel, tiap lampiran mendapat barisnya sendiri:
| # | Photo | Filename |
|---|---|---|
{#Product_Photos} {$num} |
alt gambar: {.} |
{name} {/Product_Photos} |
Properti yang tersedia di dalam loop:
| Variabel | Keterangan | Contoh |
|---|---|---|
{name} |
Nama file | photo1.jpg |
{type} |
Tipe MIME | image/jpeg |
{size} |
Ukuran file (byte) | 204800 |
Gambar di dalam loop record terkait
Section titled “Gambar di dalam loop record terkait”Placeholder gambar juga bekerja di dalam blok loop. Tiap iterasi menampilkan gambar milik item tersebut:
{#Employees} Name: {Name} Photo: [gambar dengan alt text: {Photo}]{/Employees}QR code dan barcode
Section titled “QR code dan barcode”Hasilkan QR code dan barcode dari nilai field. Cara pemasangannya sama seperti gambar dinamis — lewat Alt Text gambar.
QR code
Section titled “QR code”{QR:FieldName}Contoh: {QR:Order_ID} menghasilkan QR code berisi nilai Order_ID.
Barcode
Section titled “Barcode”| Sintaks | Tipe | Catatan |
|---|---|---|
{BARCODE:FieldName} |
Code128 | Default, alfanumerik |
{BARCODE128:FieldName} |
Code128 | Code128 eksplisit |
{BARCODE39:FieldName} |
Code39 | Hanya huruf besar + angka |
{BARCODEEAN13:FieldName} |
EAN-13 | Kode produk ritel 13 digit |
{BARCODEEAN8:FieldName} |
EAN-8 | EAN pendek 8 digit |
{BARCODEUPCA:FieldName} |
UPC-A | Ritel Amerika Utara 12 digit |
{BARCODEUPCE:FieldName} |
UPC-E | UPC versi ringkas |
{BARCODEITF14:FieldName} |
ITF-14 | Kode pengiriman / karton |
{BARCODEDATAMATRIX:FieldName} |
DataMatrix | 2D, kepadatan tinggi |
{BARCODEPDF417:FieldName} |
PDF417 | 2D, linear bertumpuk |
Prefiksnya tidak membedakan huruf besar/kecil — {qr:Field} dan {QR:Field} sama-sama bekerja.
Header dan footer
Section titled “Header dan footer”Semua sintaks placeholder juga berlaku di header dan footer dokumen, persis seperti di badan dokumen.
Penggunaan umum:
- Nama perusahaan atau logo di header
- Nomor dokumen atau tanggal di footer
- Label dinamis seperti
Invoice for {Customer_Name}
Cara menambahkannya: Insert → Header/Footer → Edit → ketik placeholder seperti {Field_Name}.
Ringkasan cepat
Section titled “Ringkasan cepat”| Sintaks | Keterangan |
|---|---|
{Field} |
Variabel sederhana |
{Field.Nested} |
Field record terkait (notasi titik) |
{URL.text} / {URL.link} |
Sub-properti URL |
{Created_By.name} / {Assignee[0].name} |
Sub-properti user |
{Location.name} / {Location.full_address} |
Sub-properti lokasi |
{Team[0].name} / {Team[0].id} |
Sub-properti grup |
{#Field}...{/Field} |
Loop field multi-nilai |
{/} |
Penutup singkat (menutup loop terdekat) |
{.} |
Item saat ini dalam loop (array sederhana) |
{$index} |
Indeks loop (mulai 0) |
{$num} |
Nomor baris (mulai 1) |
{$first} / {$last} |
Boolean item pertama/terakhir |
{#if Field}...{/if} |
Kondisi (terisi) |
{#if !Field}...{/if} |
Kondisi (kosong) |
{#if Field == "val"}...{/if} |
Kondisi (sama dengan) |
{#if Field != "val"}...{/if} |
Kondisi (tidak sama dengan) |
{Field | upper} |
Filter: huruf besar |
{Field | lower} |
Filter: huruf kecil |
{Field | capitalize} |
Filter: awal kata huruf besar |
{Field | trim} |
Filter: hapus spasi |
{Field | truncate:30} |
Filter: potong dengan elipsis |
{Field | pad:3} |
Filter: isi nol di depan |
{Field | number:2} |
Filter: angka dengan desimal |
{Field | number:2:"de-DE"} |
Filter: angka sesuai locale |
{Field | currency:"USD"} |
Filter: format mata uang |
{Field | currency:"EUR":"de-DE"} |
Filter: mata uang sesuai locale |
{Field | percent:1} |
Filter: persentase |
{Field | date:"DD MMM YYYY"} |
Filter: format tanggal khusus |
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} |
Filter: tanggal sesuai locale |
{Field | join:" / "} |
Filter: gabung array dengan pemisah |
{Field | default:"N/A"} |
Filter: nilai cadangan |
{Field | trim | upper} |
Filter berangkai (kiri ke kanan) |
{Photo} / {Photo[1]} |
Gambar (lewat Alt Text) |
{QR:Field} |
QR code (lewat Alt Text) |
{BARCODE:Field} |
Barcode (lewat Alt Text) |