Formula

Formula adalah bahasa komputasi bawaan GetMyBot. Dengan formula Anda dapat menghitung jumlah diskon, menyusun string, memeriksa kondisi, mengubah daftar atau tanggal — langsung dalam teks pesan, dalam aksi "Perhitungan", dan dalam kondisi tabel keputusan. Sintaksnya mirip dengan formula spreadsheet.

Di mana formula bekerja

  • Dalam teks — konstruksi {{= ekspresi}} menghitung ekspresi dan mensubstitusi hasilnya. Misalnya, {{= ROUND(param.total * 0.9) }}.
  • Aksi "Perhitungan" (compute) — menghitung ekspresi dan menyimpan hasilnya di ctx (field "Simpan ke ctx") dan/atau ke parameter pelanggan (field "Simpan ke parameter").
  • Tabel keputusan — dalam aksi "Perhitungan", alih-alih satu ekspresi, Anda dapat menentukan daftar aturan "jika → maka": nilai aturan pertama yang kondisinya benar dikembalikan, jika tidak, nilai default dikembalikan.

Sintaks

  • Operator: aritmatika + - * / %, perbandingan == != < > <= >=, logika && || !, tanda kurung ( ).
  • Literal: angka (42, 3.14), string dalam tanda kutip ("halo"), boolean (true, false).
  • Referensi data: dalam ekspresi Anda dapat mengakses parameter dan nilai konteks berdasarkan nama — param.total, ctx.items, recipient.email.
  • Pemanggilan fungsi: NAMA(argumen1, argumen2). Nama tidak peka huruf besar/kecil.

Fungsi

Matematika

SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.

Teks

LEN, LEFT, RIGHT, MID, LOWER, UPPER, UPPERFIRST, REPEAT, CONCAT, SUBSTITUTE, FIND, SEARCH, FIELD, TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.

Logika

IF, AND, OR, NOT, EMPTY, ISNUMBER, COALESCE.

Daftar

SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.

Tanggal dan waktu

TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.

JSON

TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.

Kriptografi dan enkoding

HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.

Parameter

PARAMID, PARAMREPLACE, PARAMREMOVE.

Contoh

  • Diskon 10% dari jumlah: {{= ROUND(param.total * 0.9) }}.
  • Kondisi: {{= IF(param.total > 1000, "grosir", "eceran") }}.
  • Penyusunan string: {{= CONCAT("Pesanan No.", ctx.order_id) }}.
  • Ukuran daftar: {{= COUNTA(ctx.items) }}.

Tes formula

Di editor aksi "Perhitungan" ada tombol verifikasi: Anda memasukkan ekspresi dan data sampel, dan platform mengembalikan hasil serta menyoroti kesalahan sintaks — tanpa keluar dari builder. Ini berguna untuk men-debug formula panjang sebelum menyimpan reaksi.

Selanjutnya