Substitusi dan formula
Substitusi adalah variabel dalam format {{...}} yang disubstitusi ke dalam teks pesan, field aksi, dan template tombol saat reaksi dipicu. Substitusi yang tidak dikenali dibiarkan apa adanya. Selain variabel, ada formula untuk komputasi. Tombol "Substitusi" di editor pesan membantu menyisipkan variabel.
Data pengirim
{{first_name}},{{last_name}}— nama depan dan belakang.{{username}}—@usernamepengguna.{{user_id}}— ID Telegram numerik.
Data event dan obrolan
{{text}}(alias{{received_message}}) — teks pesan masuk.{{message_id}}(alias{{received_message_id}}) — ID pesan masuk.{{chat_id}},{{chat_title}}(alias{{chat_name}}) — obrolan tempat event terjadi.{{topic_id}},{{topic_url}}— topik (untuk forum).
Tanggal dan waktu
{{date}}— tanggal (YYYY-MM-DD),{{time}}— waktu (HH:MM),{{datetime}}— tanggal dan waktu.- Pemformatan:
{{date:DD.MM.YYYY HH:mm}}— tokenYYYY,YY,MM,DD,HH,mm,ss.
Parameter pengguna
{{param.kunci}}(alias{{params.kunci}}atau{{recipient.kunci}}) — nilai parameter pelanggan. Parameter diisi oleh aksi "Ubah parameter", "Simpan pesan", dan respons dalam dialog.
Konteks eksekusi (ctx)
{{ctx.kunci}}(alias{{context.kunci}}) — nilai sementara dari eksekusi saat ini: data webhook masuk, hasil aksi (permintaan web, kueri ke sumber, AI), data tombol yang dipulihkan (Carry), elemen loop.- Dalam loop pada daftar, elemen dapat diakses melalui aliasnya, misalnya
{{item.name}}.
Formula
Konstruksi {{= ekspresi}} menghitung ekspresi langsung dalam teks. Engine yang sama bekerja dalam aksi "Perhitungan" dan dalam kondisi tabel keputusan. Dalam ekspresi Anda dapat mereferensikan parameter dan nilai ctx berdasarkan nama, menggunakan aritmatika, perbandingan, logika, dan puluhan fungsi (ROUND, IF, CONCAT, dll.).
Contoh: {{= ROUND(param.total * 0.9) }} — diskon 10% dari jumlah dalam parameter.
Sintaks lengkap dan daftar fungsi — di bagian Formula.
HTML dalam substitusi
Pesan dikirim dengan markup HTML. Agar nilai yang disubstitusi tidak merusak tata letak (misalnya ketika nama pengguna mengandung <), nilai yang disubstitusi secara default di-escape: karakter HTML diubah menjadi teks yang aman. Tag yang Anda tulis langsung di teks reaksi (<b>, <a>, …) dibiarkan apa adanya.
Jika nilai itu sendiri sudah mengandung markup jadi (misalnya pengumuman yang disimpan dalam parameter dengan <b>...</b>) dan Anda ingin menyisipkannya apa adanya, beri awalan & pada substitusi:
{{& key}}— penyisipan mentah untuk substitusi{{...}}.{&user:key},{&recipient:key},{&global:key}— penyisipan mentah untuk substitusi namespace.
Awalan & menonaktifkan escaping hanya untuk substitusi tersebut — Anda menjamin kepercayaan terhadap sumber nilainya. Token yang dikontrol pelanggan ({{first_name}}, …) sebaiknya dibiarkan ter-escape.
Saat mengimpor bot dari builder lain, substitusi namespace {user:…}/{recipient:…}/{global:…} otomatis dimigrasikan ke bentuk mentah {&…} — biasanya berisi nilai dengan markup jadi, sesuai cara kerja builder asalnya.
Penting tentang format
Substitusi {{...}} bekerja dalam teks, keterangan, body permintaan, dan template tombol. Berikan nama pendek dalam huruf Latin untuk parameter dan kunci ctx (email, total, order_id) — lebih mudah untuk disubstitusi.
Selanjutnya
- Formula — sintaks DSL dan daftar fungsi lengkap.
- Pesan dan tombol — di mana substitusi digunakan.
- Aksi — aksi yang mengisi parameter dan
ctx. - Koleksi dan data — penyimpanan data antar eksekusi.