Lewati ke konten

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.

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”

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 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% adalah 0.12, dan percent mengalikannya dengan 100. Lewat API dokumen, kirim 0.12, bukan 12.
  • 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 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}

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 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.

{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 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 pertama

Untuk semua grup, gunakan loop:

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

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.

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.

Anda bisa memakai {/} alih-alih mengulang nama field:

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

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}

Untuk array berisi nilai sederhana (bukan objek), pakai {.} untuk merujuk item saat ini:

{#Tags}
{.}
{/Tags}

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 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 > 1000 cocok dengan $1,250.00. Tulis angkanya apa adanya: 1000, bukan 1,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)".
  • sort mengurutkan tanggal menurut urutan tanggal, angka menurut urutan angka, dan teks menurut abjad. Sel kosong selalu ditaruh paling akhir.
  • Beberapa filter where harus terpenuhi semuanya. Beberapa filter sort yang 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.

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 items

Jika filter pada sebuah total tidak bisa diterapkan, total dibiarkan kosong disertai peringatan, alih-alih menjumlahkan semua baris.

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, horizontal diabaikan disertai peringatan dan loop berulang seperti biasa.

Tampilkan atau sembunyikan konten berdasarkan nilai field.

Tampilkan konten hanya jika field ada isinya:

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

Tampilkan konten hanya jika field kosong:

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

>, >=, <, 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 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 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

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} 捌万捌仟捌佰捌拾捌元整

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 2026
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

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 juga bekerja dengan variabel loop dan rujukan item saat ini:

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

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.

  1. Sisipkan gambar apa pun di template Word Anda (ini jadi placeholder-nya).
  2. Klik kanan gambar → Edit Alt Text.
  3. Pada deskripsi Alt Text, ketik {FieldName}.
  4. Simpan template Anda.

Gambar placeholder akan diganti dengan gambar dari field itu, dengan ukuran placeholder tetap dipertahankan.

Untuk field dengan beberapa lampiran, pakai notasi indeks:

{Photo} → Gambar pertama (sama dengan {Photo[0]})
{Photo[1]} → Gambar kedua
{Photo[2]} → Gambar ketiga

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

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}

Hasilkan QR code dan barcode dari nilai field. Cara pemasangannya sama seperti gambar dinamis, yaitu lewat Alt Text gambar.

{QR:FieldName}

Contoh: {QR:Order_ID} menghasilkan QR code berisi nilai Order_ID.

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.

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}.

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
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)