Sintaks template
Variabel adalah placeholder di template Anda yang akan diganti dengan data dari setiap record: baris tabel Excel, item daftar SharePoint, baris Dataverse, baris Google Sheet, record Lark Base, atau JSON yang Anda kirim melalui API dokumen. Sintaksnya sama, apa pun sumbernya.
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”
Apa yang dicetak placeholder
Section titled “Apa yang dicetak placeholder”Tanpa filter, placeholder mencetak nilai seperti yang ditampilkan sumbernya. Filter angka dan tanggal justru bekerja pada nilai mentah di baliknya: lihat Filter membaca nilai mentah.
| Nilai | Excel | Daftar SharePoint | Dataverse | Google Sheets | Lark Base | API dokumen |
|---|---|---|---|---|---|---|
| Angka | Seperti yang ditampilkan sel | 1,234.5, dengan jumlah desimal kolom |
Teks berformat dari Dataverse | Seperti yang ditampilkan sel | Format angka field | Seperti yang dikirim: 1234.5 |
| Mata uang | Seperti yang ditampilkan sel | Biasanya dalam mata uang kolom: $1,234.50 |
Teks berformat dari Dataverse, dengan simbol mata uang | Seperti yang ditampilkan sel | Dalam mata uang field: $1,234.50 |
Seperti yang dikirim |
| Persen | Seperti yang ditampilkan sel: 12% |
12% |
Sebagai angka | Seperti yang ditampilkan sel: 12% |
Field Progress, biasanya: 12% |
Seperti yang dikirim |
| Tanggal, waktu | Seperti yang ditampilkan sel | 2026/02/26, atau 2026/02/26 15:30 jika ada waktunya |
2026/02/26, atau 2026/02/26 15:30 jika ada waktunya |
Seperti yang ditampilkan sel | Format tanggal field, 2026/02/26 secara default |
Seperti yang dikirim |
| Orang | Teks | Namanya | Lookup yang mencetak nama | Chip orang: nama-namanya | Namanya | Seperti yang dikirim |
| Tautan | =HYPERLINK(…): alamatnya |
Alamatnya | Alamatnya | Sel yang berisi satu tautan: alamatnya | Alamatnya | Seperti yang dikirim |
| Pilihan | Teks | Labelnya; beberapa label digabung dengan koma | Labelnya; beberapa label digabung dengan koma | Opsinya; beberapa opsi seperti yang ditampilkan sel | Opsinya; beberapa opsi digabung dengan koma | Seperti yang dikirim; daftar digabung dengan koma |
| Ya/tidak | true / false |
true / false |
Label milik kolom itu, seperti Yes / No |
Checkbox: true / false |
Checkbox: true / false |
true / false |
| Gambar, file | Kolom gambar | Kolom Picture dan Image, serta {Attachments} milik item |
Kolom gambar dan file, catatan | Chip file, tautan ke file Drive, =IMAGE(…) |
Field lampiran | URL gambar |
| Baris terkait | Tabel terkait | Kolom lookup | Lookup dan relasi | Tab terkait | Field Link dan Lookup | Objek dan daftar |
- Tanggal dari SharePoint, Dataverse, dan Lark Base dicetak dalam zona waktu template (Template → Hasil → Zona Waktu, UTC bila tidak diatur).
- Sel atau field yang kosong tidak mencetak apa pun, dan dianggap kosong oleh
{#if}. - Gambar dan file tidak mencetak apa pun sebagai teks. Tempatkan lewat Alt Text sebuah gambar (lihat Gambar dinamis), atau tambahkan ke PDF dengan
{ATTACH:…}. - Baris terkait dijangkau dengan notasi titik atau loop: lihat Record terkait.
- Tautan dan orang punya sub-properti, seperti
{Website.text}dan{Owner.email}: lihat Properti lanjutan field. - Lark Base: field Formula dicetak sesuai tipe hasilnya (teks, angka, atau tanggal), field Rating biasanya mencetak
4/5, dan field Lookup mencetak nilai yang diambilnya.
Halaman tiap sumber memuat detail lebih lanjut: add-in Excel, daftar SharePoint dan Dataverse, add-on Google Sheets, dan API dokumen.
Filter membaca nilai mentah
Section titled “Filter membaca nilai mentah”Filter angka dan tanggal mengabaikan cara nilai dicetak, lalu memformat ulang nilai mentah di baliknya:
{Price} → "$1,234.50" (seperti yang ditampilkan sumber){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" (seperti yang ditampilkan sumber){Date | date:"DD MMM YYYY"} → "26 Feb 2026" (tanggal mentah, diformat ulang)Nilai mentah ini juga yang dipakai sum, avg, max, min, where, dan sort untuk menghitung dan membandingkan. Isinya bergantung pada sumber:
| Sumber | Angka mentah | Tanggal mentah |
|---|---|---|
| Excel | Nilai sel, apa pun format angkanya | Hari dan jam yang disimpan sel, dalam zona waktu template |
| Daftar SharePoint | Angka yang disimpan | Kolom khusus tanggal: hari itu, dalam zona waktu template. Kolom tanggal dan waktu: titik waktu yang disimpan |
| Dataverse | Angka yang disimpan | Kolom khusus tanggal atau kolom yang tidak bergantung zona waktu (time-zone independent): hari dan jam yang disimpannya, dalam zona waktu template. Kolom lain: titik waktu yang disimpan |
| Google Sheets | Nilai di balik format sel | Hari dan jam yang disimpan sel, dalam zona waktu template |
| Lark Base | Angka milik field | Titik waktu yang disimpan |
| API dokumen | Angka JSON, atau teks berupa angka polos, seperti "1234.5" |
Teks seperti 2026-02-26 atau 2026-02-26 15:30, dibaca dalam zona waktu template. Teks yang menyertakan zona waktu, seperti 2026-02-26T15:30:00Z, dibaca sesuai yang tertulis. Angka dibaca sebagai milidetik sejak 1 Januari 1970 (UTC) |
- Nilai mentah persen berupa pecahan:
12%adalah0.12, danpercentmengalikannya dengan 100. Lewat API dokumen, kirim0.12, bukan12. - Nilai yang tidak punya angka mentah dicetak apa adanya, disertai peringatan, saat filter angka dipakai. Ini termasuk teks dengan pemisah seperti
"1,234.50", field Rating Lark, dan Lookup Lark yang berisi lebih dari satu angka. - Di Excel dan Google Sheets, sel yang hanya berisi waktu atau durasi adalah teks: sel itu dicetak seperti yang ditampilkan dan tidak dianggap tanggal.
- Workbook Excel yang memakai sistem tanggal 1904 mencetak tanggalnya dengan benar. Saat AutomaDoc membacanya dari OneDrive atau SharePoint (template yang terikat ke file), tanggal mentahnya empat tahun satu hari lebih awal.
Record terkait (field bersarang)
Section titled “Record terkait (field bersarang)”Record terkait berasal dari tabel terkait (Excel), lookup (SharePoint, Dataverse), tab terkait (Google Sheets), field link (Lark Base), atau objek bersarang (API dokumen). Akses field-nya 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)”Tautan dan orang menyediakan sub-properti lewat notasi titik, begitu pula beberapa tipe field Lark Base. Tanpa notasi titik, nilainya dicetak dengan tampilan default.
Tautan
Section titled “Tautan”Tautan dari sel Excel =HYPERLINK(…), kolom hyperlink SharePoint, sel Google Sheets yang berisi satu tautan, atau field URL Lark:
{Website} → "https://example.com" (alamatnya){Website.text} → "Example Site" (teks yang ditampilkan){Website.link} → "https://example.com" (alamatnya)Di Google Sheets, sel yang memuat tautan di tengah teks lain mencetak teks itu. Di Excel, tautan yang ditambahkan lewat Sisipkan → Tautan mencetak teks tautannya.
Satu orang, dari kolom orang SharePoint atau field Created By atau Modified By Lark:
{Owner} → "John Doe" (namanya){Owner.name} → "John Doe"{Owner.email} → "john@example.com" (SharePoint){Owner.en_name} → "John Doe" (Lark Base: nama Inggris){Owner.id} → ID orang itu di sumbernya; di Lark Base, ID pengguna Lark seperti "ou_abc123"Jika bisa berisi beberapa orang, nilainya berupa daftar meski hanya berisi satu orang, sehingga {Assignee.name} tidak menghasilkan apa pun. Ini berlaku untuk field User Lark, sel Google Sheets berisi chip orang, dan kolom orang SharePoint yang mengizinkan beberapa orang. Gunakan indeks untuk orang tertentu, atau loop untuk semuanya:
{Assignee} → "John Doe, Jane Roe" (semua nama){Assignee[0].name} → "John Doe" (orang pertama){Assignee[0].email} → "john@example.com" (SharePoint, Google Sheets)
{#Assignee} {name}{/Assignee}Di Dataverse, orang (pemilik, “dibuat oleh”) adalah lookup: {Owner} mencetak namanya, dan {Owner.Field} membaca kolom dari baris orang itu, seperti pada record terkait lainnya.
Field lokasi (Lark Base)
Section titled “Field lokasi (Lark Base)”{Office} → "Headquarters, 123 Main St, City, Country"{Office.name} → "Headquarters"{Office.full_address} → "123 Main St, City, Country"{Office.address} → "123 Main St"Field grup (Lark Base)
Section titled “Field grup (Lark Base)”Field grup berupa daftar, jadi gunakan indeks atau loop. {Team.name} tidak menghasilkan apa pun:
{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}Beberapa pilihan
Section titled “Beberapa pilihan”Field Multi Select Lark, kolom choice atau managed metadata SharePoint dengan beberapa nilai, kolom choice multi-pilihan Dataverse, atau dropdown multi-pilihan Google Sheets bisa di-loop, atau digabung dengan pemisah pilihan Anda sendiri:
{Tags} → "Red, Blue, Green" (default dipisah koma){Tags | join:" / "} → "Red / Blue / Green"{#Tags} - {.}{/Tags}Lewat API dokumen, daftar nilai polos tiba sudah digabung dengan koma, jadi {Tags} mencetak Red, Blue, Green dan tidak bisa di-loop. Untuk me-loop, kirim daftar objek.
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. Cara ini 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.
Memfilter, mengurutkan, dan membatasi baris
Section titled “Memfilter, mengurutkan, dan membatasi baris”Tambahkan filter pada tag pembuka loop untuk memilih baris mana yang diulang, dan dengan urutan apa:
{#Line_Items | where:"Status == 'Approved'" | sort:"Amount":"desc" | limit:10} {Product_Name} {Amount | currency:"USD"}{/Line_Items}| Filter | Fungsinya | Contoh |
|---|---|---|
where |
Hanya menyisakan baris yang memenuhi suatu kondisi | where:"Status == 'Approved'" |
sort |
Mengurutkan baris berdasarkan sebuah field, dari yang terkecil atau terlama | sort:"Due_Date" |
sort |
… atau dari yang terbesar atau terbaru | sort:"Amount":"desc" |
limit |
Mengambil baris-baris pertama | limit:10 |
offset |
Melewati baris-baris pertama | offset:10 |
unique |
Menyisakan baris pertama untuk setiap nilai sebuah field | unique:"Customer" |
Filter diterapkan dari kiri ke kanan, sesuai urutan Anda menuliskannya: sort:"Amount":"desc" | limit:3 adalah tiga baris terbesar, sedangkan limit:3 | sort:"Amount":"desc" adalah tiga baris pertama, diurutkan dari yang terbesar.
Kondisi where ditulis di dalam tanda kutip ganda, dengan nilai teks apa pun di dalam tanda kutip tunggal:
| Kondisi | Menyisakan baris jika |
|---|---|
Status == 'Approved' |
Status persis Approved |
Status != 'Draft' |
Status apa pun selain Draft |
Amount > 1000 |
Amount lebih dari 1000 (juga >=, <, <=) |
Paid |
Paid terisi, seperti pada {#if Paid} |
!Notes |
Notes kosong |
- Angka dibandingkan berdasarkan nilai mentahnya, bukan cara angka itu dicetak:
Amount > 1000cocok dengan$1,250.00. Tulis angkanya apa adanya:1000, bukan1,000. - Tanggal dibandingkan sebagai tanggal bila ditulis sebagai
2026-01-31(atau dengan jam,2026-01-31 17:30), dalam zona waktu template:where:"Due_Date >= '2026-01-01'". Perbandingan berlaku per hari penuh:Due_Date > '2026-01-31'dimulai pada 1 Februari. - Gabungkan kondisi dengan
&&(dan) dan||(atau), lalu kelompokkan dengan tanda kurung:where:"Status == 'Approved' && (Amount > 1000 || Rush)". sortmengurutkan tanggal menurut urutan tanggal, angka menurut urutan angka, dan teks menurut abjad. Sel kosong selalu ditaruh paling akhir.- Beberapa filter
whereharus terpenuhi semuanya. Beberapa filtersortyang ditulis berurutan mengurutkan berdasarkan yang pertama, lalu berdasarkan yang berikutnya bila nilai yang pertama sama:sort:"Category" | sort:"Amount":"desc". - Field record terkait bisa dipakai dengan notasi titik:
where:"Product.Category == 'Hardware'". - Untuk daftar nilai sederhana, seperti field Multi Select, gunakan
.untuk nilai itu sendiri:{#Tags | where:". != 'Internal'" | sort}. - Filter bekerja sama baiknya di loop baris tabel, loop paragraf, loop bersarang, maupun daftar rincian Lark Approval.
Total yang sesuai dengan tabel terfilter
Section titled “Total yang sesuai dengan tabel terfilter”sum, count, dan join menerima filter yang sama, sehingga sebuah total bisa menjumlahkan tepat baris-baris yang ditampilkan tabel di atasnya:
{Line_Items | where:"Status == 'Approved'" | sum:"Amount" | currency:"USD"}{Line_Items | where:"Status == 'Approved'" | count} approved itemsJika filter pada sebuah total tidak bisa diterapkan, total dibiarkan kosong disertai peringatan, alih-alih menjumlahkan semua baris.
Loop horizontal (kolom)
Section titled “Loop horizontal (kolom)”Tambahkan horizontal pada loop di dalam tabel untuk mengulang sel-selnya ke samping, satu kolom per item, alih-alih mengulang baris ke bawah:
| Label | Diulang ke samping |
|---|---|
| Name | {#Staff | horizontal} {Name} |
| Role | {Role} {/Staff} |
Dengan tiga orang, hasilnya adalah tabel dengan satu kolom untuk masing-masing orang. Setiap baris di antara tag pembuka dan penutup diulang bersama-sama, sehingga nama dan jabatan tiap orang tetap berada di kolom yang sama.
- Kolom-kolom baru membagi rata lebar sel template, serta mempertahankan garis tepi dan arsirannya.
- Bisa digabung dengan filter lain:
{#Staff | where:"Active" | sort:"Name" | horizontal}. - Maksimal 20 kolom. Item selebihnya tidak ditampilkan, disertai peringatan.
- Jika daftarnya kosong, sel dibiarkan kosong, bukan dihapus.
- Loop horizontal bisa berada di dalam loop baris: setiap baris lalu mendapat kolom sebanyak jumlah item pada daftarnya sendiri.
- Di luar tabel,
horizontaldiabaikan disertai peringatan dan loop berulang seperti biasa.
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}Perbandingan angka dan tanggal
Section titled “Perbandingan angka dan tanggal”>, >=, <, dan <= membandingkan angka berdasarkan nilainya dan tanggal sebagai tanggal (ditulis 2026-01-31, dalam zona waktu template):
{#if Amount > 1000} Requires a second approval.{/if}
{#if Due_Date < "2026-01-01"} Overdue.{/if}== dan != di dalam {#if} membandingkan teks sebagaimana tercetak: {#if Qty == "2"} tidak cocok dengan jumlah yang tampil sebagai 2.00. Di filter where atau bagian {#Qty == 2}…{/}, keduanya juga cocok dengan angka yang sama atau hari yang sama.
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 dicetak seperti yang ditampilkan sumbernya (lihat Apa yang dicetak placeholder).
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”number, currency, dan percent 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 |
currency |
kode mata uang, locale, desimal | {Price | currency:"IDR":"id-ID":2} |
Rp 1.234,50 |
percent |
desimal, locale | {Rate | percent:1} |
45.6% |
percent |
desimal, locale | {Rate | percent:1:"de-DE"} |
45,6 % |
toFixed |
desimal | {Price | toFixed:2} |
1234.50 (tanpa pemisah ribuan) |
chineseUppercase |
Tidak ada | {Amount | chineseUppercase} |
捌万捌仟捌佰捌拾捌 |
chineseLowercase |
Tidak ada | {Amount | chineseLowercase} |
八八八八八 |
chineseFinancial |
Tidak ada | {Amount | chineseFinancial} |
捌万捌仟捌佰捌拾捌元整 |
Filter tanggal
Section titled “Filter tanggal”Format tanggal dengan pola khusus, saat format tanggal di data Anda bukan yang Anda butuhkan.
Sintaks: {Field | date:"format":"timezone":"locale"}
Semua argumen opsional. Zona waktu default mengikuti template (Template → Hasil → Zona Waktu), atau UTC bila tidak diatur. Locale default en-US. Tanggal yang dikirim sebagai teks tanpa zona waktu, seperti 2026-01-31 dari API dokumen atau formulir Lark Approval, dicetak sebagai hari itu apa pun zona waktunya.
| 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évr., 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 |
join |
Gabungkan satu field dari setiap baris, tanpa yang kosong | {Items | join:", ":"Name"} |
Widget, Gadget |
sum |
Jumlahkan sebuah field dari semua baris loop | {Items | sum:"Price"} |
1234.5 |
sum |
Totalnya, diformat oleh filter berikutnya | {Items | sum:"Price" | currency:"USD"} |
$1,234.50 |
count |
Jumlah baris dalam loop | {Items | count} |
12 |
avg |
Rata-rata sebuah field dari semua baris (sel kosong tidak dihitung) | {Items | avg:"Price"} |
411.5 |
max / min |
Nilai terbesar / terkecil sebuah field dari semua baris | {Items | max:"Price"} |
$980.00 |
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 dari data Anda: kolom gambar di tabel Excel atau daftar SharePoint, kolom gambar Dataverse, sel chip file atau =IMAGE(…) di Google Sheets, field lampiran Lark, atau URL gambar yang dikirim ke API dokumen. Tabel di atas mencantumkan apa yang disediakan setiap sumber.
- 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 dari field itu, 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, yaitu 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}.
Beralih dari aplikasi dokumen Lark lain
Section titled “Beralih dari aplikasi dokumen Lark lain”Template yang dibuat untuk aplikasi dokumen Lark lain bisa dipakai di sini tanpa diubah: unggah file Word apa adanya. Berikut fungsi sintaksnya di AutomaDoc:
| Ditulis sebagai | Fungsinya di sini |
|---|---|
{#isNew} Welcome {/isNew} |
Menampilkan teks bila field terisi. Pada daftar, ini menjadi loop |
{#!isNew}Welcome{/isNew} |
Menampilkan teks bila field kosong, tidak dicentang, atau berupa daftar kosong |
{#Status=="Paid"}…{/} |
Menampilkan teks bila kondisi terpenuhi. !=, >, >=, <, <=, &&, dan || juga bisa dipakai |
{/} |
Menutup loop atau bagian terbuka yang terdekat |
{$index+1} |
Nomor baris, mulai dari 1, sama dengan {$num} |
{#Items | sortBy:"Total":"desc"} |
Sama dengan sort |
{#Items | where:"A == 'x' && B > 5"} |
Menyimpan baris yang cocok, seperti pada Memfilter, mengurutkan, dan membatasi baris |
{>Items}{Name} di awal baris tabel |
Mengulang sel tersebut dan sel-sel di sebelah kanannya ke samping sepanjang baris, satu kolom per item, sebagai loop horizontal |
{#image}{#$isImage}{%src}{/}{#!$isImage}{$fileName}{/}{/image} |
Mencetak setiap gambar dari field lampiran, dan nama setiap file yang bukan gambar |
{%src | size:100:50} / {%src | maxSize:500:500} |
Gambar dengan ukuran tepat tersebut, atau tidak lebih besar darinya, dalam piksel |
{%Logo} |
Gambar pertama dari field lampiran, dalam ukuran aslinya hingga selebar halaman |
{Name | uppercase} / {Name | lowercase} |
Sama dengan upper / lower |
{Price | toFixed:"2"} |
Angka dengan dua desimal, tanpa pemisah ribuan |
{Price | currency:'USD'} |
Argumen dalam tanda kutip tunggal berfungsi sama seperti dalam tanda kutip ganda |
{Date | customDate:'YYYY-MM-DD HH:mm:ss'} |
Token yang sama dengan date, dalam zona waktu template |
{Date | date:'full'} |
2024-7-13 Saturday 00:00:00 |
chineseUppercase, chineseLowercase, chineseFinancial |
Angka dalam bahasa Mandarin, lihat Filter angka |
Ringkasan cepat
Section titled “Ringkasan cepat”| Sintaks | Keterangan |
|---|---|
{Field} |
Variabel sederhana |
{Field.Nested} |
Field record terkait (notasi titik) |
{Link.text} / {Link.link} |
Sub-properti tautan |
{Owner.name} / .email / .id |
Sub-properti satu orang (.en_name di Lark Base) |
{Assignee[0].name} |
Beberapa orang: berupa daftar, jadi gunakan indeks atau loop |
{Location.name} / {Location.full_address} |
Sub-properti Location di Lark Base |
{Team[0].name} / {Team[0].id} |
Field grup Lark Base: berupa daftar, jadi gunakan indeks atau loop |
{#Field}...{/Field} |
Loop field multi-nilai |
{#Field | where:"Status == 'Paid'"} |
Loop hanya untuk baris yang cocok |
{#Field | sort:"Amount":"desc"} |
Loop berurutan, terbesar lebih dulu |
{#Field | limit:5} / {#Field | offset:5} |
5 baris pertama / semua kecuali 5 baris pertama |
{#Field | horizontal} |
Ulang sel tabel ke samping, satu kolom per baris |
{Field | where:"Paid" | sum:"Amount"} |
Total baris yang cocok |
{Field | count} |
Jumlah baris |
{Field | avg:"Amount"} / max / min |
Rata-rata, terbesar, terkecil dari baris-baris |
{#Field == "v"}...{/} |
Bagian yang tampil bila kondisi terpenuhi |
{#!Field}...{/Field} |
Bagian yang tampil bila field kosong |
{#if Field > 100}...{/if} |
Kondisi (urutan angka atau tanggal) |
{/} |
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) |