Dokumentasi ringkas penggunaan helper pesan yang tersedia di object conn. Semua contoh di bawah diasumsikan dipakai dari dalam plugin handler:
let handler = async (m, { conn, text, usedPrefix, command }) => {
// gunakan helper conn di sini
}
export default handlerawait conn.reply(m.chat, 'Halo dunia', m)
await conn.sendText(m.chat, 'Halo dunia', m)Dengan mention:
await conn.reply(m.chat, 'Halo @user', m, {
mentions: ['628xxxx@s.whatsapp.net']
})await m.react('✅')
await m.react('⏳')
await m.react('❌')await m.delete()source bisa berupa Buffer, URL, path file lokal, atau object { url }.
conn.sendFile akan mendeteksi mime dan mengirim sebagai image, video, audio, sticker, atau document sesuai opsi.
await conn.sendFile(m.chat, source, 'file.jpg', 'Caption', m)await conn.sendImage(m.chat, imageUrlOrBuffer, 'Caption image', m)await conn.sendVideo(m.chat, videoUrlOrBuffer, 'Caption video', m)await conn.sendAudio(m.chat, audioUrlOrBuffer, m)await conn.sendPTT(m.chat, audioUrlOrBuffer, m)await conn.sendDocument(
m.chat,
fileUrlOrBuffer,
'application/pdf',
'dokumen.pdf',
'Caption dokumen',
m
)await conn.sendSticker(m.chat, imageOrWebpOrVideo, m)Dengan metadata sticker:
await conn.sendSticker(m.chat, imageOrVideo, m, {
sticker: {
packname: 'Vanitas',
author: 'Bot'
}
})Alias sticker:
await conn.sendImageAsSticker(m.chat, image, m)
await conn.sendVideoAsSticker(m.chat, video, m)const buffer = await conn.getBuffer('https://example.com/image.jpg')const file = await conn.getFile(buffer)
console.log(file.mime, file.ext, file.size)conn.resize memakai Jimp dan menghasilkan Buffer JPEG.
const thumbnail = await conn.resize(imageUrlOrBufferOrPath, 100, 100)Biasa dipakai untuk thumbnail button:
await conn.sendButton(
m.chat,
'Halo dunia',
'Footer Message',
await conn.resize(imageUrl, 100, 100),
[['Menu', '.menu']],
m
)conn.sendButton memakai format buttonsMessage dengan locationMessage, headerType: 6, dan additionalNodes native flow.
Format:
await conn.sendButton(jid, text, footer, thumbnail, buttons, quoted, options)Contoh:
await conn.sendButton(
m.chat,
'Halo dunia',
'Footer Message',
await conn.resize('https://example.com/thumb.jpg', 100, 100),
[
['Menu', '.menu'],
['Ping', '.ping']
],
m,
{
name: 'Vanitas',
address: 'Buttons Message'
}
)Format button object juga bisa:
await conn.sendButton(m.chat, 'Pilih aksi:', 'Footer', null, [
{ text: 'Menu', id: '.menu' },
{ text: 'Ping', id: '.ping' }
], m)Alias:
await conn.sendButtons(m.chat, 'Text', 'Footer', null, [['Menu', '.menu']], m)
await conn.sendButtonText(m.chat, 'Text', 'Footer', null, [['Menu', '.menu']], m)
await conn.sendHydrated(m.chat, 'Text', 'Footer', null, [['Menu', '.menu']], m)sendButtonV2 memakai buttonsMessage versi builder dari baileys-mbuilder.
await conn.sendButtonV2(
m.chat,
'Pilih menu:',
'Footer Message',
[
['Menu', '.menu'],
['Ping', '.ping']
],
m,
{
title: 'Vanitas',
subtitle: 'Buttons Message'
}
)conn.sendButtonList memakai native flow interactiveMessage dengan single_select.
Format:
await conn.sendButtonList(jid, text, footer, thumbnail, sections, quoted, options)Contoh:
await conn.sendButtonList(
m.chat,
'Silakan pilih menu:',
'Footer Message',
null,
[
{
title: 'Main Menu',
rows: [
['Ping', '.ping', 'Cek kecepatan bot'],
['Menu', '.menu', 'Lihat semua fitur']
]
},
{
title: 'Tools',
rows: [
['Translate', '.translate hello', 'Terjemahkan teks'],
['Sticker', '.sticker', 'Buat sticker dari media']
]
}
],
m,
{
title: 'Pilih Menu'
}
)Format row object:
await conn.sendButtonList(m.chat, 'Pilih fitur:', 'Footer', null, [
{
title: 'Downloader',
rows: [
{
title: 'Instagram',
id: '.instagram https://instagram.com/reel/xxxxx',
description: 'Download video Instagram'
},
{
title: 'TikTok',
id: '.tiktok https://tiktok.com/xxxxx',
description: 'Download video TikTok'
}
]
}
], m)Alias:
await conn.sendList(m.chat, 'Text', 'Footer', null, sections, m)Untuk quick reply, URL, copy, call, dan list custom.
await conn.sendInteractive(
m.chat,
'Pilih salah satu:',
'Footer Message',
null,
[
['Menu', '.menu'],
{ text: 'Website', url: 'https://example.com' },
{ text: 'Salin Kode', copy: 'ABC123' }
],
m
)Dengan list section:
await conn.sendInteractive(
m.chat,
'Pilih menu:',
'Footer',
null,
[['Ping', '.ping']],
m,
{
title: 'Daftar Menu',
sections: [
{
title: 'Main',
rows: [
['Menu', '.menu', 'Lihat menu'],
['Ping', '.ping', 'Cek speed']
]
}
]
}
)conn.aiRich adalah alias dari conn.sendAIRich. Helper ini memakai baileys-mbuilder untuk mengirim rich response AI.
await conn.aiRich(
m.chat,
'Halo, ini teks AI rich dengan [link](https://example.com)',
m
)await conn.aiRich(m.chat, [
{ type: 'text', text: 'Ini contoh penjelasan.' },
{ type: 'code', language: 'js', code: 'console.log("halo")' }
], m)await conn.aiRich(m.chat, [
{ type: 'text', text: 'Ringkasan data:' },
{
type: 'table',
table: [
['Nama', 'Role'],
['Vania', 'AI Assistant'],
['Owner', 'Admin Bot']
]
}
], m)await conn.aiRich(m.chat, [
{ type: 'text', text: 'Aku menemukan referensi ini:' },
{
type: 'source',
sources: [
['https://example.com/favicon.ico', 'https://example.com', 'Example']
]
}
], m)conn.sendCarousel memakai baileys-mbuilder dan setiap card wajib punya image/video/document.
await conn.sendCarousel(
m.chat,
[
{
image: 'https://example.com/image-1.jpg',
title: 'Menu Utama',
text: 'Lihat semua fitur bot',
buttons: [['Buka Menu', '.menu']]
},
{
image: 'https://example.com/image-2.jpg',
title: 'Ping',
text: 'Cek kecepatan bot',
buttons: [['Cek Ping', '.ping']]
}
],
m,
{
text: 'Daftar pilihan',
footer: 'Footer Message'
}
)await conn.sendContact(m.chat, ['6281234567890'], m)Dengan nama:
await conn.sendContact(m.chat, [
['6281234567890', 'Owner Bot'],
['6289876543210', 'Admin Bot']
], m)Response tombol dan list otomatis masuk ke serialize:
console.log(m.text) // id tombol, contoh: .menu
console.log(m.buttonId) // id tombol jika pesan adalah response button
console.log(m.isButtonResponse) // true jika pesan berasal dari tombol/listKarena m.text berisi id tombol, command seperti .menu atau .ping bisa langsung diproses handler.
conn.sendMessage sudah dibungkus agar URL media besar lebih aman. Jika file terlalu besar atau ruang disk tidak cukup, bot akan mengirim fallback link agar runtime tidak crash karena ENOSPC.
await conn.sendMessage(m.chat, {
document: { url: videoUrl },
mimetype: 'video/mp4',
fileName: 'video.mp4',
caption: 'Video berhasil ditemukan'
}, { quoted: m })