Skip to content

Ringkasan Message Builders ​

Leaves Guardian menyediakan rangkaian Message Builders (Layer 5) untuk membangun pesan WhatsApp yang kaya, modern, interaktif, dan terstruktur menggunakan fluent chainable API.

Semua builder mewarisi fungsionalitas dasar dari BaseBuilder. Hal ini memberikan kemampuan bersama seperti string templating, forwarding saluran resmi (channel newsletter), kartu link preview (external ad reply), mention pengguna, dan kutipan pesan (quote).


Daftar Lengkap Message Builders ​

Class BuilderTipe Payload WhatsAppKemampuan Utama
TextMessageextendedTextMessageTeks terformat, markdown, toggle link preview, advanced link preview (v0.4.0), mention, dan quote.
ButtonMessageinteractiveMessageTombol native flow (Quick Reply, CTA URL, CTA Copy, CTA Call, Dropdown List) dan konversi ke carousel card .toCard().
ButtonMessageV2buttonsMessagePesan tombol klasik dengan trik headerType: 6 (Location Header) agar tombol tetap muncul di WhatsApp klien lawas.
LocationMessageinteractiveMessageKartu lokasi interaktif dengan pin 📍, judul tebal, deskripsi, thumbnail avatar, dan tombol aksi.
ListMessageinteractiveMessageMenu pop-up vertikal bertingkat dengan section, row pilihan, dan header media/lokasi.
CarouselMessageinteractiveMessageKartu swipe horizontal multi-kartu dengan gambar dan tombol interaktif per kartu, serta input array tombol.
AlbumMessagealbumMessageKoleksi foto dan video asli WhatsApp yang otomatis dikelompokkan ke dalam satu kartu grid album.
OrderMessageorderMessageKartu faktur dan ringkasan pesanan katalog resmi WhatsApp dengan rincian harga dan nominal mikro.
StickerPackMessagestickerPackMessageBundel paket stiker WhatsApp resmi lengkap dengan tray cover icon dan pemetaan emoji keyboard.
MediaMessageUnified MediaSatu builder terpadu untuk Gambar, Video, Audio/Voice Note (PTT), Dokumen, dan Stiker.
StickerMessagestickerMessageKonversi stiker WebP statis/animasi dengan metadata EXIF nama pack & author.
ProductMessageproductMessageKartu katalog produk resmi WhatsApp dengan mata uang, harga, dan ID retailer.
PollMessagepollCreationMessagePolling interaktif WhatsApp dengan pilihan tunggal (single-choice) atau multi-choice.
AIRichMessageinteractiveMessageKartu respon AI terstruktur dengan blok kode copyable, badge model, sitasi sumber, dan widget HTML interaktif.
CanvasMessageinteractiveMessageGenerator payload antarmuka canvas HTML dengan whitelist domain aman.
EventMessageeventMessageUndangan agenda kalender resmi WhatsApp Group Event dengan waktu mulai/selesai.
RichMessageinteractiveMessageKartu visual serbaguna dengan header, body, footer, badge status, dan tombol aksi.
A2UIMessageinteractiveMessageAgent-to-User Interface widget berbasis arsitektur Meta Bloks / StarCore.

Method Bersama (BaseBuilder) ​

Karena seluruh builder mewarisi class BaseBuilder, method-method chaining berikut tersedia di semua builder:

javascript
builder
  .setTitle('Judul Kartu')
  .setBody('Isi pesan utama dengan dukungan variabel {{nama}}')
  .setFooter('Catatan kaki bot');

2. String Templating Bawaan (setVars) ​

Anda dapat menyisipkan placeholder di dalam teks apa pun dan menyelesaikannya secara dinamis menggunakan .setVars():

javascript
builder
  .setBody('Halo {{nama}}, pesanan nomor #{{orderId}} kamu siap dikirim!')
  .setVars({ nama: 'Rafa', orderId: '84920' });

Menempelkan banner gambar besar dengan watermark link di atas pesan:

javascript
builder.setAdReply({
  title: 'Leaves Guardian Documentation',
  body: 'Enterprise Baileys Reliability Layer',
  thumbnailUrl: 'https://example.com/banner.jpg',
  sourceUrl: 'https://leavesguardian.enginelabs.my.id',
  previewType: 'PHOTO'
});

4. Forwarding Saluran Resmi (setChannelForward) ​

Mensimulasikan konteks bahwa pesan ini diteruskan dari Channel / Saluran resmi WhatsApp:

javascript
builder.setChannelForward({
  channelJid: '120363000000000000@newsletter',
  channelName: 'Pengumuman Resmi Bot'
});

5. Mention Pengguna dan Quoting Pesan ​

javascript
builder
  .mention(['628123456789@s.whatsapp.net'])
  .quote(pesanMasuk);

Cara Mengirim Builder ​

Ada dua cara yang sama-sama valid untuk mengirimkan builder:

Opsi A: Lewat client.sendMessage() (Direkomendasikan) ​

javascript
import { TextMessage } from 'leaves-guardian';

const pesan = new TextMessage()
  .setBody('Halo dunia dari Leaves Guardian!');

await client.sendMessage(msg.chat.id, pesan);

Opsi B: Lewat Method .send() pada Instance Builder ​

Jika Anda mengoper instance client saat instansiasi builder:

javascript
const pesan = new TextMessage(client)
  .setBody('Halo dunia langsung dari builder!');

await pesan.send(msg.chat.id);

Pilih dokumentasi builder spesifik di bawah ini untuk melihat contoh kode dan parameter lengkap:

Released under the MIT License.