@freezeehost/baileys
v2.1.7
Published
Baileys FreeZeeHost Edition - Lightweight, High-Performance, and Feature-Rich WhatsApp Web Library for Node.js
Maintainers
Readme
⚠️ PENTING: Disclaimer & Warning
Proyek ini tidak berafiliasi dengan WhatsApp atau Meta. Penggunaan library ini dapat melanggar Ketentuan Layanan WhatsApp.
- Risiko Ban: Fitur seperti Persona Switcher, Ghost Mode, dan Anti-Delete adalah fitur eksperimental. Penggunaan yang berlebihan atau tidak bijak dapat menyebabkan nomor WhatsApp Anda diblokir secara permanen.
- Gunakan Akun Cadangan: Kami sangat menyarankan untuk melakukan testing menggunakan nomor cadangan sebelum diimplementasikan ke akun utama.
- Tanggung Jawab: Pengembang library ini tidak bertanggung jawab atas segala kerugian, termasuk namun tidak terbatas pada pemblokiran akun atau kehilangan data.
🆚 Perbedaan dengan Official Baileys
Library ini adalah "Performance Fork" dari WhiskeySockets Baileys dengan optimasi ekstrim untuk kebutuhan bot modern.
| Fitur | Official Baileys | @freezeehost/baileys | |-------|------------------|----------------------| | Meta AI UI Support | ❌ Terbatas | ✅ Full Native Rendering (Table, Reels, Code, Grid) | | Media Handling | Standar | ✅ Auto-Upload Buffer & MMG Link Spoofing | | Koneksi | Manual | ✅ Hybrid Pairing (Auto-detect QR/Pairing Code) | | Stabilitas | Standar | ✅ Auto-Medic (Socket Self-Healing Watchdog) | | Privacy | Standar | ✅ Ghost Mode & Selective Read Receipts | | Anti-Delete | ❌ Tidak Ada | ✅ Native Core Engine Integration | | Performa | Standar | ✅ Smart Media Proxy (SHA256 Deduplication) | | Identitas | Tetap | ✅ Persona Switcher (iPhone/Android/Windows Spoofing) |
🔌 Instalasi (Plug & Play)
Rekomendasi (via NPM)
npm install @freezeehost/baileysVersi Terbaru (via GitHub)
npm install github:FreeZeeHostProject/BaileysDrop-in Replacement
Jika Anda sudah memiliki bot berbasis Baileys, cukup ganti dependency di package.json Anda agar otomatis mendapatkan semua fitur premium FreeZee:
"dependencies": {
"baileys": "npm:@freezeehost/baileys@latest"
}🔥 Fitur Unggulan (2026 Edition)
🤖 Meta AI Style Messages
Kirim pesan dengan visual mewah yang biasanya hanya bisa dilakukan oleh bot resmi Meta AI.
- 📊 AI Table:
conn.aiTable(jid, title, rows) - 🎬 AI Reels:
conn.aiReels(jid, text, reels) - 💻 AI Code:
conn.aiCode(jid, language, code) - 🖼️ AI Grid:
conn.aiGridImage(jid, imageUrls) - 💭 AI Thinking:
conn.aiThinking(jid, description, steps) - 💬 AI Prompts:
conn.aiPrompts(jid, text, chips) - 🧠 AI Memory:
conn.aiMemory(jid, text, added, removed, disclaimer) - 📈 AI Quota:
conn.aiQuota(jid, text, remainingQuota, expirationSecs) - 🎨 AI Imagine Type:
conn.aiImagineMetadata(jid, text, imagineType) - 🧭 AI Progress/Reasoning:
conn.aiProgress(jid, steps) - 🌐 AI Search Sources:
conn.aiSources(jid, text, sources) - 📣 AI Message Origin:
conn.aiMessageOrigin(jid, text) - 🛍️ Product Carousel:
conn.productCarousel(jid, products) - 🆔 AI Session Metadata:
conn.aiSession(jid, text, sessionId, sessionSource) - ⚡ AI Capabilities:
conn.aiCapabilities(jid, text, capabilities) - 🏷️ AI Rendering Keywords:
conn.aiRendering(jid, text, keywords) - 📊 AI Metrics Tracking:
conn.aiMetrics(jid, text, destinationId, destinationEntryPoint, threadOrigin) - 📦 AI Conversation Context:
conn.aiConversationContext(jid, text, contextBytes) - 🎫 AI Bot Response ID:
conn.aiBotResponseId(jid, text, botResponseId) - 👤 AI Persona Switcher:
conn.aiPersona(jid, text, personaId, invokerJid) - 📜 AI Disclaimer & Timezone:
conn.aiDisclaimer(jid, text, disclaimerText, timezone) - 🎵 Status Attributions:
conn.sendStatusMusic,conn.sendStatusWearable,conn.sendStatusExternalShare,conn.sendStatusAiCreated,conn.sendStatusReshare - 🎨 Media Annotations:
conn.sendMediaWithAnnotations(jid, mediaType, pathOrBuffer, annotations) - 🛑 Limit Sharing:
conn.sendLimitSharing(jid, sharingLimited, trigger, initiatedByMe) - 🗳️ Poll V2 & V3:
conn.sendPollV2,conn.sendPollV3 - ⏳ Disappearing Setting:
conn.setDisappearingMode(jid, durationSecs) - 🔤 Styled Text Message:
conn.sendStyledText(jid, text, font, textColor, backgroundColor) - ❓ Question Message:
conn.sendQuestion(jid, content) - 💬 Question Reply:
conn.sendQuestionReply(jid, content) - 🛍️ Send Catalog:
conn.sendCatalog(jid, businessOwnerJid, title, desc, imageOrUrl) - 📦 Send Product List:
conn.sendProductList(jid, title, text, footer, btnText, sections, businessJid) - 🛡️ Get Deleted Message:
conn.getDeletedMessage(jid, id)
🎭 Persona Identity Switcher
Ubah identitas perangkat bot Anda secara instan untuk menghindari deteksi sistem anti-bot.
// Opsi: 'ios', 'android', 'windows', 'macos'
conn.setPersona('ios'); 👻 Phantom Mode (Ghost Protocol)
Baca pesan tanpa memicu centang biru (Read Receipt). Mendukung pengecualian untuk orang tertentu (VIP).
conn.ghostMode = true;
conn.setVIP("[email protected]"); // Tetap kirim centang biru ke nomor ini🩺 Auto-Medic (Self-Healing Socket)
Mendeteksi jika koneksi WhatsApp macet (Silent Failure). Jika dalam 45 detik tidak ada data, library melakukan surgical reconnect secara otomatis.
🚀 Quick Start
const { default: makeFreeZeeSocket, useMultiFileAuthState } = require('@freezeehost/baileys');
async function start() {
const { state, saveCreds } = await useMultiFileAuthState('./sessions');
const conn = makeFreeZeeSocket({
auth: state,
phoneNumber: "628xxxxxxxx", // Masukkan nomor untuk otomatis mode Pairing Code!
});
conn.ev.on('creds.update', saveCreds);
conn.onCommand('ping', (m) => conn.sendMessage(m.chat, { text: 'Pong!' }, { quoted: m }));
}
start();📜 Full Documentation
Silakan cek GitHub Wiki atau scroll ke bawah untuk detail teknis lainnya:
Di bawah ini adalah panduan lengkap cara mengirim berbagai tipe pesan dasar dan media menggunakan socket (sock / conn / RyuuBotz):
1. 💬 Pesan Teks (Text Message)
- Teks Biasa:
await sock.sendMessage(jid, { text: 'Hello!' }); - Teks dengan Preview Link:
await sock.sendMessage(jid, { text: 'Visit https://example.com', linkPreview: { 'canonical-url': 'https://example.com', title: 'Example Domain', description: 'A demo website', jpegThumbnail: fs.readFileSync('preview.jpg') // opsional } }); - Membalas Pesan (Quoted Reply):
await sock.sendMessage(jid, { text: 'Hello Shiroko!' }, { quoted: message });
2. 🖼️ Pesan Gambar (Image Message)
- Menggunakan Local Buffer/File:
await sock.sendMessage(jid, { image: fs.readFileSync('shiroko.jpg'), caption: 'My wife!', mentions: ['[email protected]'] // Tag/mention pengguna }); - Menggunakan URL:
await sock.sendMessage(jid, { image: { url: 'https://example.com/shiroko.jpg' }, caption: 'Ayang nya zass' });
3. 🎥 Pesan Video (Video Message)
- Menggunakan Local File:
await sock.sendMessage(jid, { video: fs.readFileSync('video.mp4'), caption: 'Funny clip!' }); - Menggunakan URL:
await sock.sendMessage(jid, { video: { url: 'https://example.com/video.mp4' }, caption: 'Streamed video' }); - Pesan Sekali Lihat (View Once):
await sock.sendMessage(jid, { video: fs.readFileSync('secret.mp4'), viewOnce: true // Pesan otomatis terhapus setelah dibuka });
4. 🎵 Pesan Audio / Voice Note (Audio & PTT)
- Audio Biasa (Musik):
await sock.sendMessage(jid, { audio: fs.readFileSync('audio.mp3'), ptt: false // Dikirim sebagai file musik biasa }); - Voice Note (Push-to-Talk / PTT):
await sock.sendMessage(jid, { audio: fs.readFileSync('voice.ogg'), ptt: true, // Dikirim sebagai Voice Note resmi dengan gelombang suara waveform: [0, 1, 0, 1, 0] // Opsional: bentuk gelombang visual });
5. 👤 Kartu Kontak (Contact Message)
Mengirimkan kartu kontak tunggal dengan format vCard:
const vcard = 'BEGIN:VCARD\n'
+ 'VERSION:3.0\n'
+ 'FN:Jeff Singh\n' // Nama lengkap
+ 'ORG:Ashoka Uni\n' // Organisasi
+ 'TEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\n' // WhatsApp ID + Nomor Telepon
+ 'END:VCARD';
await sock.sendMessage(jid, {
contacts: {
displayName: 'Your Name',
contacts: [{ vcard }]
}
});6. 🔥 Mengirim Stiker (Sticker Message)
Mendukung path file lokal, buffer, maupun URL dengan kustomisasi nama pack stiker:
- Menggunakan Path File:
await sock.sendSticker(jid, { sticker: './your/path.webp', packname: "FreeZeePack", author: "FreeZeeHost" }); - Menggunakan URL:
await sock.sendSticker(jid, { sticker: { url: "https://your.url.com/image.webp" }, packname: "FreeZeePack", author: "FreeZeeHost" }); - Menggunakan Buffer:
await sock.sendSticker(jid, { sticker: fs.readFileSync('sticker.webp'), packname: "FreeZeePack", author: "FreeZeeHost" });
7. 💥 Reaksi Pesan (React Message)
Mengirimkan reaksi emoji untuk pesan tertentu:
await sock.sendMessage(jid, {
react: {
text: '👍', // Kirim string kosong "" untuk menghapus reaksi
key: message.key
}
});8. 📌 Menyematkan & Menyimpan Pesan (Pin & Keep Message)
Menyematkan Pesan (Pin Message):
| Durasi Semat | Detik | | :--- | :--- | | 24 Jam |
86400| | 7 Hari |604800| | 30 Hari |2592000|await sock.sendMessage(jid, { pin: { type: 1, // 1 = Sematkan, 2 = Batal sematkan time: 86400, // durasi semat dalam detik key: message.key } });Menyimpan Pesan Percakapan Sementara (Keep Message):
await sock.sendMessage(jid, { keep: { key: message.key, type: 1 // 1 = Simpan pesan, 2 = Batal simpan pesan } });
9. 📍 Lokasi (Location Message)
- Lokasi Statis:
await sock.sendMessage(jid, { location: { degreesLatitude: 37.422, degreesLongitude: -122.084, name: 'Google HQ' } }); - Lokasi dengan Gambar Pratinjau:
await sock.sendMessage(jid, { location: { degreesLatitude: 37.422, degreesLongitude: -122.084, name: 'Google HQ', jpegThumbnail: fs.readFileSync('preview.jpg') } }); - Berbagi Lokasi Terkini (Live Location):
await sock.sendMessage(jid, { location: { degreesLatitude: 37.422, degreesLongitude: -122.084, accuracyInMeters: 10 }, live: true, // Aktifkan live tracking caption: 'Saya di sini!' });
10. 📞 Panggilan & Acara (Call & Event Message)
- Notifikasi Panggilan (Call Message):
await sock.sendMessage(jid, { call: { name: 'Sesi Diskusi Baru', type: 1 // 1 = Panggilan Suara, 2 = Panggilan Video } }); - Pesan Acara Grup (Event Message):
await sock.sendMessage(jid, { event: { isCanceled: false, // Set true jika dibatalkan name: 'Developer Meetup', description: 'Membahas pembaruan Baileys', location: { degreesLatitude: 0, degreesLongitude: 0, name: 'Gedung Pertemuan' }, startTime: 1784345000, // Unix timestamp waktu mulai endTime: 1784350000, // Unix timestamp waktu selesai extraGuestsAllowed: true } });
11. 🛒 Transaksi & Produk (Order & Product Message)
- Resi Pesanan Toko (Order Message):
await sock.sendMessage(jid, { order: { orderId: 'ord_123', thumbnail: fs.readFileSync('preview.jpg'), itemCount: '1', status: 'INQUIRY', // INQUIRY || ACCEPTED || DECLINED surface: 'CATALOG', message: 'Detail pesanan VPS Anda', orderTitle: 'Pesanan VPS Starter', sellerJid: '[email protected]', token: 'token_here', totalAmount1000: '50000000', // Nominal x 1000 (misal Rp 50.000) totalCurrencyCode: 'IDR' } }); - Kartu Jajak Pendapat / Polling (Poll Message):
// Membuat Polling Baru: await sock.sendMessage(jid, { poll: { name: 'Warna favorit Anda?', values: ['Merah', 'Biru', 'Hijau'], selectableCount: 1 // 1 = Single choice, >1 = Multiple choice } }); // Mengirim Snapshot Hasil Polling: await sock.sendMessage(jid, { pollResult: { name: 'Warna favorit Anda?', values: [['Merah', 10], ['Biru', 20]] // [Opsi, Jumlah Vote] } }); - Pesan Detail Produk (Product Message):
await sock.sendMessage(jid, { product: { productId: 'prod_123', title: 'Cool T-Shirt', description: 'Bahan katun 100%', price: 15000000, // Dalam sen (misal Rp 150.000) currencyCode: 'IDR', productImage: fs.readFileSync('shirt.jpg') } });
12. 💳 Pembayaran & Indikator (Payment Message)
- Pesan Pembayaran / Kirim Uang (Payment Message):
await sock.sendMessage(jid, { payment: { note: 'Pembayaran VPS bulan ini', currency: 'IDR', offset: 0, amount: '50000000', // Nominal nominal pembayaran expiry: 0, from: '[email protected]', image: { placeholderArgb: "your_background", textArgb: "your_text", subtextArgb: "your_subtext" } } }); - Undangan Pembayaran (Payment Invite):
await sock.sendMessage(jid, { paymentInvite: { type: 1, // 1 = FBPAY, 2 = NOVI, 3 = UPI expiry: 0 } });
13. 👥 Undangan Admin & Grup (Invite Message)
- Undangan Admin Saluran (Channel Admin Invite):
await sock.sendMessage(jid, { adminInvite: { jid: '172xxx@newsletter', name: 'Saluran Update', caption: 'Silakan klik untuk menjadi admin saluran', expiration: 86400, jpegThumbnail: fs.readFileSync('preview.jpg') } }); - Undangan Grup Resmi (Group Invite Message):
await sock.sendMessage(jid, { groupInvite: { jid: '[email protected]', name: 'Komunitas Developer', caption: 'Bergabunglah dengan grup resmi kami', code: 'xYz3yAtf...', // Kode unik tautan grup expiration: 86400, jpegThumbnail: fs.readFileSync('preview.jpg') } });
14. 🔢 Minta & Bagikan Nomor Telepon (Phone Number Message)
- Minta Nomor Telepon:
await sock.sendMessage(jid, { requestPhoneNumber: {} }); - Bagikan Nomor Telepon:
await sock.sendMessage(jid, { sharePhoneNumber: {} });
15. ↪️ Balasan Tombol (Reply Button Message)
Mendukung simulasi respons tombol dari pengguna untuk tujuan otomatisasi pengetesan bot:
- Balasan Daftar Menu (List Reply):
await sock.sendMessage(jid, { buttonReply: { title: 'Pilih Menu', description: 'Menu Hosting', rowId: 'hosting_vps' }, type: 'list' }); - Balasan Tombol Biasa (Plain Button Reply):
await sock.sendMessage(jid, { buttonReply: { displayText: 'Ya', id: 'yes_button' }, type: 'plain' }); - Balasan Tombol Templat (Template Button Reply):
await sock.sendMessage(jid, { buttonReply: { displayText: 'Kunjungi Web', id: 'visit_web', index: 1 }, type: 'template' }); - Balasan Aliran Menu Interaktif (Interactive Flow Button Reply):
await sock.sendMessage(jid, { buttonReply: { body: 'Menu terpilih', nativeFlows: { name: 'menu_options', paramsJson: JSON.stringify({ id: 'opt_1', description: 'VPS Pro' }), version: 1 } }, type: 'interactive' });
16. #️⃣ Sebut Kontak pada Status (Status Mentions Message)
Mengirimkan status cerita dengan menyembunyikan tag/mention kontak tertentu secara native:
await sock.sendStatusMentions({
image: { url: 'https://example.com/image.jpg' },
caption: 'Semoga hari Anda menyenangkan!'
}, ["[email protected]", "[email protected]"]);17. 📸 Album Media Native (Album Message)
Mengirimkan gabungan foto dan video dalam satu balon pesan berupa album (grid) WhatsApp secara native:
await sock.sendAlbumMessage(jid, [
{ image: { url: 'https://example.com/image1.jpg' }, caption: 'Foto pertama' },
{ image: fs.readFileSync('image2.jpg'), caption: 'Foto kedua' },
{ video: { url: 'https://example.com/video1.mp4' }, caption: 'Video pertama' },
{ video: fs.readFileSync('video2.mp4'), caption: 'Video kedua' }
], { quoted: message, delay: 3000 });18. 📸 Pesan Interaktif & Aliran Bisnis (Interactive Flows)
Membuat menu interaktif native WhatsApp Business. Jika pesan tidak berfungsi di klien tertentu, hal tersebut karena WhatsApp secara berkala membatasi rendering bebas di luar partner resmi Meta.
A. Toko Interaktif (Shop Flow Message):
- Header Teks:
await sock.sendMessage(jid, { text: 'Silakan kunjungi toko resmi kami di Facebook', title: 'Toko FreeZeeHost', subtitle: 'Diskon 50%', footer: '© FreeZeeHost', viewOnce: true, shop: { surface: 1, // 1 | 2 | 3 | 4 id: 'facebook_store_name' } }); - Header Media (Gambar/Video/Dokumen):
await sock.sendMessage(jid, { image: { url: 'https://www.example.com/image.jpg' }, caption: 'Detail katalog toko kami:', title: 'Toko Utama', footer: '© FreeZeeHost', shop: { surface: 1, id: 'facebook_store_name' }, hasMediaAttachment: true, viewOnce: true });
B. Pesan Korsel (Carousel Message):
Mengirimkan barisan kartu produk horizontal yang dapat di-scroll (horizontal scrollable):
await sock.sendMessage(jid, {
text: 'Pilihan layanan Cloud kami:',
title: 'Cloud Services',
footer: '© FreeZeeHost',
cards: [
{
image: { url: 'https://www.example.com/vps.jpg' },
title: 'VPS Hosting',
body: 'Mulai dari Rp 50.000/bulan',
footer: 'Kinerja Tinggi',
buttons: [
{
name: 'quick_reply',
buttonParamsJson: JSON.stringify({ display_text: 'Pesan VPS', id: 'order_vps' })
},
{
name: 'cta_url',
buttonParamsJson: JSON.stringify({ display_text: 'Buka Web', url: 'https://freezeehost.com' })
}
]
},
{
image: { url: 'https://www.example.com/shared.jpg' },
title: 'Shared Hosting',
body: 'Mulai dari Rp 15.000/bulan',
footer: 'Cocok untuk Pemula',
buttons: [
{
name: 'quick_reply',
buttonParamsJson: JSON.stringify({ display_text: 'Pesan Hosting', id: 'order_hosting' })
}
]
}
]
});C. Tombol Aliran Native (Native Flow Buttons):
Tombol fungsional dengan parameter parameter JSON fleksibel:
// Header Teks + Tombol Aliran Native
await sock.sendMessage(jid, {
text: 'Klik tombol di bawah ini untuk beraksi:',
title: 'Menu Layanan',
footer: '© FreeZeeHost',
interactive: native_flow_button
});Beberapa contoh konfigurasi native_flow_button:
- Quick Reply Button:
const native_flow_button = [{ name: 'quick_reply', buttonParamsJson: JSON.stringify({ display_text: 'Quick Reply', id: 'btn_1' }) }]; - CTA URL Button:
const native_flow_button = [{ name: 'cta_url', buttonParamsJson: JSON.stringify({ display_text: 'Visit Website', url: 'https://google.com' }) }]; - CTA Copy Code Button:
const native_flow_button = [{ name: 'cta_copy', buttonParamsJson: JSON.stringify({ display_text: 'Salin Kode Kupon', copy_code: 'FREEZEE50' }) }]; - CTA Call Phone Button:
const native_flow_button = [{ name: 'cta_call', buttonParamsJson: JSON.stringify({ display_text: 'Hubungi Kami', phone_number: '+628123456789' }) }]; - Formulir/Pilihan Terintegrasi (Galaxy Message):
const native_flow_button = [{ name: 'galaxy_message', buttonParamsJson: JSON.stringify({ mode: 'published', flow_message_version: '3', flow_token: '1:1307913409923914:293680f87029', flow_id: '1307913409923914', flow_cta: 'Isi Formulir', flow_action: 'navigate', flow_action_payload: { screen: 'QUESTION_ONE', params: { user_id: '12345', referral: 'ads_campaign' } }, flow_metadata: { flow_json_version: '201', data_api_protocol: 'v2', flow_name: 'Lead Generation', data_api_version: 'v2', categories: ['Sales'] } }) }]; - Single Select (Pilihan Menu):
const native_flow_button = [{ name: 'single_select', buttonParamsJson: JSON.stringify({ title: 'Buka Pilihan', sections: [{ title: 'Menu Utama', rows: [ { header: 'Pilihan 1', title: 'VPS Starter', description: 'RAM 1GB', id: 'vps_1' }, { header: 'Pilihan 2', title: 'VPS Pro', description: 'RAM 4GB', id: 'vps_2' } ] }] }) }];
🔗 Connect with QR Code
const conn = makeFreeZeeSocket({
printQRInTerminal: true,
auth: state
})🔢 Connect with Pairing Code
Library akan menangani pendaftaran secara hybrid jika phoneNumber disediakan.
const conn = makeFreeZeeSocket({
auth: state,
phoneNumber: "628xxxxxxxx"
})
conn.ev.on('pairing-code', (code) => {
console.log("KODE PAIRING ANDA:", code);
});🛠️ Manual Message Resend
Fix error "Menunggu pesan ini" secara paksa.
await conn.requestResend(m.key);📊 Poll V5 (Support Gambar)
Polling versi terbaru dengan dukungan gambar di pilihan jawaban.
await conn.sendPollV5(jid, { name: "Vote!", options: [{ name: "Opsi 1", image: buffer }] });📞 Native Call Logs
Kirim riwayat panggilan native (Missed call, dsb).
await conn.sendCallLog(jid, { isVideo: false, outcome: 1 });📦 Sticker Pack (Kirim Sticker Pack)
Kirim paket stiker kustom (sticker pack) berisi koleksi stiker secara native.
// Kirim paket stiker kustom (sticker pack) berisi koleksi stiker secara native
await conn.sendStickerPack(jid, {
name: "FreeZee Baileys Uji Pack",
publisher: "FreeZeeHost",
cover: bufferCover, // atau { url: "https://..." }
stickers: [
{ sticker: bufferSticker1, emojis: ["🔥"] },
{ sticker: bufferSticker2, emojis: ["💡"] }
]
});Selain membuat dan mengundang follower, Anda sekarang memiliki kontrol penuh terhadap Saluran (Newsletter) secara terprogram:
1. Ikuti & Batal Ikuti Saluran (Follow/Unfollow)
// Mengikuti saluran
await conn.newsletter.follow("120363xxx@newsletter");
// Berhenti mengikuti saluran
await conn.newsletter.unfollow("120363xxx@newsletter");2. Bisukan & Bunyikan Saluran (Mute/Unmute)
// Membisukan notifikasi saluran
await conn.newsletter.mute("120363xxx@newsletter");
// Menyalakan kembali notifikasi saluran
await conn.newsletter.unmute("120363xxx@newsletter");3. Perbarui Metadata Saluran (Update Metadata)
Mengubah nama dan deskripsi saluran resmi Anda secara instan.
await conn.newsletter.update("120363xxx@newsletter", "Nama Baru Saluran", "Deskripsi Baru Saluran");4. Undang Kontak Menjadi Admin Saluran (Invite Admin)
await conn.newsletter.inviteAdmin("120363xxx@newsletter", "[email protected]");Kumpulan fitur interaktif native terbaru yang belum dirilis secara resmi tetapi didukung penuh oleh core engine FreeZee:
1. Korsel Pesan Native (Native Message Carousel)
Kirim korsel non-produk (horizontal scroll cards) menggunakan layout pesan bawaan WhatsApp. Setiap kartu dapat memiliki gambar kustom, judul, isi teks, dan kumpulan tombol interaktifnya sendiri!
- Contoh Penggunaan:
await conn.sendCarousel(jid, [ { title: "Paket Starter", body: "Spesifikasi: 1 Core CPU, 1GB RAM", image: "./images/starter.jpg", // Bisa buffer, path lokal, atau URL gambar buttons: [ { text: "Pesan Sekarang", id: "order_starter", type: "quick_reply" }, { text: "Info Detail", url: "https://freezeehost.com/starter", type: "url" } ] }, { title: "Paket Pro", body: "Spesifikasi: 2 Core CPU, 4GB RAM", image: "./images/pro.jpg", buttons: [ { text: "Pesan Sekarang", id: "order_pro", type: "quick_reply" } ] } ], { text: "Silakan geser untuk memilih paket VPS terbaik kami:" });
2. Tabel Interaktif Native (Native Flow Table)
Kirim tabel interaktif dengan format kolom dan baris yang rapi secara terstruktur.
await conn.msg.nativeTable(jid, "Judul Tabel", [
{ cells: ["Kolom A", "Kolom B"] },
{ cells: ["Baris 1", "Baris 2"] }
]);3. Undangan Panggilan Terjadwal (Scheduled Call)
await conn.msg.scheduleCall(jid, {
callType: 1, // 1 = Voice, 2 = Video
title: "Sesi Diskusi Coding",
scheduledTimestampMs: Math.floor(Date.now() / 1000) + 3600
});4. Balas dengan Komentar (Reply Comment)
Mengomentari status atau pesan secara native.
// Kirim komentar pada pesan target
await conn.sendComment(jid, "Teks komentar", targetMessageKey);5. Meneruskan Pesan Utuh (Forward Message)
Meneruskan pesan dari cache atau merekonstruksi pesan secara utuh ke kontak/grup lain.
await conn.sendMessage(targetJid, { forward: messageObject });6. Respon Pertanyaan & Kuis (Reply Question)
Mengirimkan jawaban atas pesan jenis pertanyaan/kuis interaktif.
// Mengirimkan jawaban kuis/pertanyaan
await conn.replyQuestion(jid, "Jawaban pertanyaan", targetMessageKey);7. Kutip & Interaksi Status Broadcast (Status Actions)
// Mengutip status seseorang secara langsung
await conn.msg.quoteStatus(jid, {
key: { remoteJid: "status@broadcast", id: "status_id", participant: "[email protected]" },
message: { conversation: "Status Uji" }
});
// Interaksi stiker ke status
await conn.msg.interactStatusSticker(jid, {
statusJid: "status@broadcast",
stickerHash: "sha256_hash_stiker",
interactionType: 1
});
// Menjawab pertanyaan status broadcast secara langsung
await conn.sendStatusQuestion("Jawaban Anda");8. Notifikasi Sinkronisasi & Bundel Chat (History Notice & Chat Bundle)
// Mengirim notifikasi sinkronisasi riwayat pesan
await conn.msg.sendHistoryNotice(jid, { metadata: { syncType: 1 } });
// Mengirim bundel cadangan riwayat chat
await conn.msg.sendChatBundle(jid, {
bundleName: "Riwayat Chat Backup",
mimetype: "application/octet-stream",
fileLength: 100
});9. Reaksi Terenkripsi & Snapshot Hasil Polling
// Mengirim reaksi emoji terenkripsi (Encrypted Reaction)
await conn.msg.sendEncReaction(jid, {
targetMessageKey: targetKey,
encPayload: bufferPayload,
encIv: bufferIv
});
// Mengirim snapshot hasil akhir polling (Poll Result)
await conn.sendPollResult(jid, {
pollJid: jid,
pollName: "Bahasa terfavorit?",
pollValues: ["JavaScript", "Python"],
votes: [
{ optionName: "JavaScript", voteCount: 10 },
{ optionName: "Python", voteCount: 5 }
]
});10. Survei Dalam Obrolan (In-Thread Survey)
Mengirim pesan ajakan survei (In-Thread Survey) interaktif bawaan WhatsApp yang akan membuka kuesioner pilihan ganda saat diklik oleh pengguna.
// Menggunakan koneksi langsung (conn)
await conn.sendSurvey(jid, {
surveyTitle: "Survei Kepuasan",
invitationHeaderText: "Bantu Kami Meningkatkan Layanan",
invitationBodyText: "Silakan berikan masukan Anda melalui survei singkat ini.",
invitationCtaText: "Mulai Survei",
questions: [
{
questionId: "q1",
questionText: "Bagaimana kualitas pelayanan kami?",
questionOptions: [
{ stringValue: "1", numericValue: 1, textTranslated: "Sangat Buruk" },
{ stringValue: "2", numericValue: 2, textTranslated: "Cukup" },
{ stringValue: "3", numericValue: 3, textTranslated: "Sangat Baik" }
]
}
]
});11. Circular Video Notes (Push-To-Video / Video Note)
Mengirim pesan video bulat instan yang langsung diputar otomatis secara circular di obrolan penerima.
- Contoh Kode via
m(Paling Mudah):await m.replyVideoNote("./video.mp4"); - Contoh Kode via Socket
conn:await conn.sendVideoNote(jid, "./video.mp4");
12. Jajak Pendapat Bergambar (Image Polls)
Mengirim jajak pendapat (poll) interaktif bawaan WhatsApp di mana setiap opsi pilihan dapat menyertakan gambar.
- Contoh Kode via
m(Paling Mudah):await m.replyImagePoll("Pilih desain kaos favoritmu:", [ { text: "Desain Hitam", image: "./black_shirt.png" }, { text: "Desain Putih", image: "./white_shirt.png" } ]); - Contoh Kode via Socket
conn:await conn.sendImagePoll(jid, "Pilih desain kaos favoritmu:", [ { text: "Desain Hitam", image: "./black_shirt.png" }, { text: "Desain Putih", image: "./white_shirt.png" } ]);
13. Reschedule Panggilan Terjadwal (Scheduled Call Edit)
Mengubah detail atau membatalkan panggilan suara/video terjadwal di grup WhatsApp.
- Contoh Kode via Socket
conn: // editType: 1 = Batal/Cancel, 2 = Ubah/Modifyawait conn.editScheduledCall(jid, originalCallMessageKey, "Ulang: Meeting Proyek", Date.now() + 3600000, 2, 1);
14. Stiker Vektor Animasi (Lottie Stickers)
Mengirim stiker animasi berbasis vektor menggunakan format file Lottie secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyLottieSticker("./sticker.tgs"); - Contoh Kode via Socket
conn:await conn.sendLottieSticker(jid, "./sticker.tgs");
15. Acara Grup Interaktif (Group Event)
Membuat/mengirim pesan undangan acara grup (Group Event) secara terstruktur di mana anggota grup bisa memberikan tanggapan (RSVP).
- Contoh Kode via
m(Paling Mudah):await m.replyGroupEvent({ name: "Developer Meetup 2026", description: "Temu santai developer membahas teknologi terbaru Meta AI.", startTime: Math.floor(Date.now() / 1000) + 86400, // Besok endTime: Math.floor(Date.now() / 1000) + 90000, extraGuestsAllowed: true }); - Contoh Kode via Socket
conn:await conn.sendGroupEvent(jid, { name: "Developer Meetup 2026", description: "Temu santai developer membahas teknologi terbaru Meta AI.", startTime: Math.floor(Date.now() / 1000) + 86400, endTime: Math.floor(Date.now() / 1000) + 90000, extraGuestsAllowed: true });
16. Album Media Native (Native Media Album)
Mengelompokkan pengiriman gambar dan video ke dalam satu album native di WhatsApp menggunakan fitur MessageAssociation.
- Contoh Kode via
m(Paling Mudah):await m.replyAlbum([ { image: "./foto1.jpg", caption: "Caption Foto 1" }, { image: "./foto2.png", caption: "Caption Foto 2" }, { video: "./video.mp4", caption: "Caption Video" } ]); - Contoh Kode via Socket
conn:await conn.sendAlbum(jid, [ { image: "./foto1.jpg", caption: "Caption Foto 1" }, { image: "./foto2.png", caption: "Caption Foto 2" }, { video: "./video.mp4", caption: "Caption Video" } ]);
17. Sematkan Pesan (Pin/Unpin Message)
Menyematkan (pin) atau melepas sematan (unpin) pesan di dalam obrolan chat.
- Contoh Kode via
m(Paling Mudah):// Menyematkan pesan selama 24 jam (pilihan detik: 86400, 259200, 604800) await m.pin(86400); // Melepas sematan pesan await m.unpin(); - Contoh Kode via Socket
conn:// Menyematkan pesan target await conn.pinMessage(jid, targetMessageKey, 86400); // Melepas sematan pesan target await conn.unpinMessage(jid, targetMessageKey);
18. Simpan Pesan Percakapan Sementara (Keep/UndoKeep Message)
Menyimpan (keep) atau membatalkan penyimpanan (undo keep) pesan di dalam obrolan chat yang menggunakan fitur pesan sementara (disappearing messages) agar pesan tersebut tidak hilang otomatis.
- Contoh Kode via
m(Paling Mudah):
// Menyimpan pesan target (keepType: 1 = Keep, 2 = Undo Keep) await conn.keepMessage(jid, targetMessageKey, 1);// Menyimpan pesan await m.keep(); // Membatalkan penyimpanan pesan await m.undoKeep();
19. Kuis Interaktif (Quiz Poll)
Membuat polling interaktif bertipe kuis (Quiz) di mana WhatsApp akan memvalidasi jawaban yang benar secara native.
- Contoh Kode via
m(Paling Mudah):// Membuat kuis dengan jawaban benar pada indeks ke-1 ("Jakarta") await m.replyQuizPoll("Apa ibukota Indonesia?", ["Surabaya", "Jakarta", "Bandung"], 1); - Contoh Kode via Socket
conn:await conn.sendQuizPoll(jid, "Apa ibukota Indonesia?", ["Surabaya", "Jakarta", "Bandung"], 1);
20. Ringkasan Hasil Polling (Poll Result Snapshot)
Mengirimkan pesan ringkasan native berisi rekap hasil pemungutan suara/polling beserta jumlah suara masing-masing opsi.
- Contoh Kode via
m(Paling Mudah):// Mengirim rekap hasil polling await m.replyPollResultSnapshot("Hasil Polling Makan Siang", { "Nasi Goreng": 12, "Bakso": 8, "Mie Ayam": 4 }); - Contoh Kode via Socket
conn:await conn.sendPollResultSnapshot(jid, "Hasil Polling Makan Siang", [ { optionName: "Nasi Goreng", optionVoteCount: 12 }, { optionName: "Bakso", optionVoteCount: 8 } ]);
21. Undangan Admin Saluran (Newsletter Admin Invite)
Mengirim pesan undangan secara native kepada pengguna lain untuk menjadi admin/pengelola saluran (newsletter) WhatsApp Anda.
- Contoh Kode via
m(Paling Mudah):await m.replyNewsletterAdminInvite({ newsletterJid: "120363024893892@newsletter", newsletterName: "FreeZeeHost Updates", caption: "Bantu kelola saluran kami." }); - Contoh Kode via Socket
conn:await conn.sendNewsletterAdminInvite(jid, { newsletterJid: "120363024893892@newsletter", newsletterName: "FreeZeeHost Updates", caption: "Silakan terima undangan untuk mengelola saluran ini." });
22. Musik pada Status (Status Music Story)
Mengirim pembaruan status (story) teks yang dilengkapi dengan metadata lagu/musik native agar tampil interaktif seperti cerita Instagram.
- Contoh Kode via Socket
conn:await conn.sendStatusMusic("Lagu favorit hari ini!", { title: "Kupu-Kupu", authorName: "Tiara Andini", songId: "music_id_12345", artistAttribution: "Tiara Andini", isExplicit: false });
23. Status via Kacamata Pintar Wearable (RLAttribution Status Story)
Membuat status WhatsApp yang seolah-olah diposting langsung dari perangkat kacamata pintar Meta (Ray-Ban Meta / Oakley Meta / Hypernova).
- Contoh Kode via Socket
conn:// Pilihan tipe kacamata: 'RAY_BAN_META_GLASSES', 'OAKLEY_META_GLASSES', 'HYPERNOVA_GLASSES' await conn.sendStatusWearable("Dilihat dari kacamata pintar saya 😎", "RAY_BAN_META_GLASSES");
24. Status Khusus Teman Dekat (Close Friends Status Story)
Membagikan status cerita hanya kepada daftar Teman Dekat (Close Friends) Anda menggunakan metadata target pemirsa native.
- Contoh Kode via Socket
conn:// Kirim status teks khusus Close Friends await conn.sendStatusCloseFriends("Hanya untuk teman-teman terdekat!"); // Atau kirim status media khusus Close Friends await conn.sendStatusCloseFriends({ image: { url: "https://catbox.moe/example.jpg" }, caption: "Rahasia kita aja ya!" });
25. Notifikasi Status Reshare & Add Yours (Status Notification)
Mengirimkan pesan notifikasi secara native kepada pengguna ketika Anda membagikan ulang (reshare) cerita status mereka atau menanggapi stiker "Add Yours".
- Contoh Kode via
m(Paling Mudah):// Kirim notifikasi reshare (notificationType: 2) await m.replyStatusNotification(originalMessageKey, 2); - Contoh Kode via Socket
conn:await conn.sendStatusNotification(jid, responseMessageKey, originalMessageKey, 2);
26. Sebut Kontak di Status (Status Mention)
Menyebut (mention) pengguna di dalam pembaruan status cerita WhatsApp Anda dengan mengutip status asli di dalam pesan chat pribadi secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyStatusMention(quotedStatusMessage); - Contoh Kode via Socket
conn:await conn.sendStatusMention(jid, quotedStatusMessage);
27. Interaksi Stiker Status (Status Sticker Interaction)
Mengirim pesan interaksi native (seperti memberikan reaksi stiker) pada stiker interaktif cerita status pengguna lain.
- Contoh Kode via
m(Paling Mudah):await m.replyStatusStickerInteraction("sticker_key_abc", 1); - Contoh Kode via Socket
conn:await conn.sendStatusStickerInteraction(jid, statusMessageKey, "sticker_key_abc", 1);
28. Jawab Pertanyaan Status (Status Question Answer)
Mengirim pesan tanggapan/jawaban secara native atas stiker pertanyaan ("Question Sticker") yang diposting pada status pengguna lain.
- Contoh Kode via
m(Paling Mudah):await m.replyStatusQuestionAnswer("Jawaban saya adalah Bandung!"); - Contoh Kode via Socket
conn:await conn.sendStatusQuestionAnswer(jid, questionMessageKey, "Jawaban saya adalah Bandung!");
29. Kutip Status di Obrolan (Status Quoted Message)
Mengutip pembaruan status cerita WhatsApp orang lain secara native di dalam obrolan chat pribadi dengan opsi menyertakan teks & gambar mini (thumbnail).
- Contoh Kode via
m(Paling Mudah):await m.replyStatusQuotedMessage("Ini status yang kamu buat kemarin kan?", 1, jpegBuffer); - Contoh Kode via Socket
conn:await conn.sendStatusQuotedMessage(jid, "Kutipan status Anda", originalStatusMessageKey, 1, jpegBuffer);
30. Minta Pembayaran (Payment Request)
Mengirimkan permintaan pembayaran secara native kepada pengguna lain dengan mata uang dan waktu kedaluwarsa kustom (mendukung ekosistem WA Pay).
- Contoh Kode via
m(Paling Mudah):// Meminta pembayaran sebesar Rp 50.000 dengan mata uang IDR await m.replyPaymentRequest(50000, "IDR"); - Contoh Kode via Socket
conn:await conn.sendPaymentRequest(jid, 50000, "IDR", 86400);
31. Tolak Permintaan Pembayaran (Decline Payment Request)
Menolak permintaan pembayaran yang dikirimkan oleh pengguna lain secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyDeclinePaymentRequest(); - Contoh Kode via Socket
conn:await conn.declinePaymentRequest(jid, requestPaymentMessageKey);
32. Batalkan Permintaan Pembayaran (Cancel Payment Request)
Membatalkan permintaan pembayaran yang telah Anda kirimkan kepada pengguna lain secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyCancelPaymentRequest(); - Contoh Kode via Socket
conn:await conn.cancelPaymentRequest(jid, requestPaymentMessageKey);
33. Undangan Grup Native (Group Invite Message)
Mengirim pesan undangan masuk grup secara native dengan kode undangan, nama grup, teks deskripsi, dan gambar mini (thumbnail) grup.
- Contoh Kode via
m(Paling Mudah):await m.replyGroupInvite("invite_code_abc", "[email protected]", "FreeZeeHost Developers", "Mari bergabung!"); - Contoh Kode via Socket
conn:await conn.sendGroupInvite(jid, "invite_code_abc", "[email protected]", "FreeZeeHost Developers", "Mari bergabung!", 259200, thumbnailBuffer);
34. Minta Nomor Telepon (Request Phone Number)
Mengirim pesan khusus secara native kepada pengguna di chat pribadi untuk meminta persetujuan membagikan nomor telepon mereka (sangat berguna untuk bot kampanye/bisnis).
- Contoh Kode via
m(Paling Mudah):await m.replyRequestPhoneNumber(); - Contoh Kode via Socket
conn:await conn.requestPhoneNumber(jid);
35. Pesan Penahan Ruang Native (Placeholder Message)
Mengirimkan pesan penahan ruang (placeholder message) native (seperti menyembunyikan detail perangkat terhubung).
- Contoh Kode via
m(Paling Mudah):// Mengirim placeholder tipe 0 (MASK_LINKED_DEVICES) await m.replyPlaceholder(0); - Contoh Kode via Socket
conn:await conn.sendPlaceholder(jid, 0);
36. Respon Event Terenkripsi (Encrypted Event Response RSVP)
Mengirim respon/kehadiran (RSVP) ke event grup secara terenkripsi.
- Contoh Kode via
m(Paling Mudah):await m.replyEncEventResponse(eventMessageKey, { encPayload, encIv }); - Contoh Kode via Socket
conn:await conn.sendEncEventResponse(jid, eventMessageKey, { encPayload, encIv });
37. Komentar Terenkripsi (Encrypted Comment)
Mengirim komentar terenkripsi untuk postingan saluran (channel) atau utas (thread) grup.
- Contoh Kode via
m(Paling Mudah):await m.replyEncComment(targetMessageKey, { encPayload, encIv }); - Contoh Kode via Socket
conn:await conn.sendEncComment(jid, targetMessageKey, { encPayload, encIv });
38. Pesan Rahasia Terenkripsi (Secret Encrypted Message)
Mengirim payload pesan rahasia terenkripsi (seperti suntingan event atau suntingan pesan kustom).
- Contoh Kode via
m(Paling Mudah):await m.replySecretEncrypted(targetMessageKey, 1, { encPayload, encIv }); - Contoh Kode via Socket
conn:await conn.sendSecretEncrypted(jid, targetMessageKey, 1, { encPayload, encIv });
39. Polling Native V4 (V4 Poll)
Mengirimkan polling interaktif versi 4 yang mendukung enkripsi dan struktur meta yang lebih baru.
- Contoh Kode via
m(Paling Mudah):await m.replyPollV4({ name: "Pilih?", options: [...] }); - Contoh Kode via Socket
conn:await conn.sendPollV4(jid, { name: "Pilih?", options: [...] });
40. Snapshot Hasil Polling V3 (V3 Poll Result Snapshot)
Mengirim ringkasan/snapshot hasil polling menggunakan versi V3.
- Contoh Kode via
m(Paling Mudah):await m.replyPollResultSnapshotV3("Hasil Polling Sesi 1", { "Pilihan A": 5, "Pilihan B": 10 }); - Contoh Kode via Socket
conn:await conn.sendPollResultSnapshotV3(jid, "Hasil Polling Sesi 1", { "Pilihan A": 5, "Pilihan B": 10 });
41. Undangan Pengikut Newsletter V2 (Newsletter Follower Invite V2)
Mengirim undangan pengikut newsletter menggunakan versi V2 (newsletterFollowerInviteMessageV2).
- Contoh Kode via
m(Paling Mudah):await m.replyNewsletterFollowerInvite({ newsletterJid: "120363024893892@newsletter", newsletterName: "FreeZee Channel" }); - Contoh Kode via Socket
conn:await conn.sendNewsletterFollowerInvite(jid, { newsletterJid: "120363024893892@newsletter", newsletterName: "FreeZee Channel" });
42. Stiker Buatan AI (AI Sticker)
Mengirimkan stiker yang ditandai secara resmi oleh WhatsApp sebagai stiker buatan AI (AI-generated Sticker) menggunakan flag isAiSticker: true di dalam stickerMessage.
- Contoh Kode via
m(Paling Mudah):await m.replyAiSticker(pathOrBuffer); - Contoh Kode via Socket
conn:await conn.sendAiSticker(jid, pathOrBuffer);
43. Sesi Panggilan Siaran (Broadcast Call - BCall)
Mengirim pesan indikator sesi panggilan siaran (broadcast call) secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyBCall({ sessionId: "bcall_123", mediaType: 2, caption: "Mari gabung panggilan video!" }); - Contoh Kode via Socket
conn:await conn.bcall(jid, { sessionId: "bcall_123", mediaType: 2, caption: "Mari gabung panggilan video!" });
44. Undangan Layanan Pembayaran (Payment Invite)
Mengirimkan pesan undangan pendaftaran layanan pembayaran WhatsApp Pay secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyPaymentInvite(1); // 1: FBPAY, 2: NOVI, 3: UPI - Contoh Kode via Socket
conn:await conn.sendPaymentInvite(jid, 1);
45. Sinkronisasi Stiker Klien (Client Sticker Sync)
Mengirim pesan permintaan sinkronisasi koleksi stiker ke perangkat Anda sendiri.
- Contoh Kode via Socket
conn:await conn.syncStickers([Buffer.from("file_hash_here", "hex")]);
46. Faktur Pembayaran Native (Invoice Message)
Mengirimkan pesan tagihan/faktur (Invoice Message) resmi yang rapi dan terstruktur secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyInvoice({ title: "VPS Hosting", description: "Tagihan Bulanan Server VPS", priceAmount1000: 150000 * 1000, currencyCode: "IDR", mimetype: "image/jpeg" }); - Contoh Kode via Socket
conn:await conn.sendInvoice(jid, { title: "VPS Hosting", description: "Tagihan Bulanan Server VPS", priceAmount1000: 150000 * 1000, currencyCode: "IDR", mimetype: "image/jpeg" });
47. Resi Pesanan Toko (Order Message)
Mengirimkan pesan ringkasan pesanan pembelian (Order Message) barang/jasa secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyOrder({ orderId: "ord_9921", title: "VPS Premium", description: "CPU 4 Core, RAM 8GB", priceAmount1000: 250000 * 1000, currencyCode: "IDR", mimetype: "image/jpeg", orderTitle: "VPS Premium", sellerJid: conn.user.id }); - Contoh Kode via Socket
conn:await conn.sendOrder(jid, { orderId: "ord_9921", title: "VPS Premium", description: "CPU 4 Core, RAM 8GB", priceAmount1000: 250000 * 1000, currencyCode: "IDR", mimetype: "image/jpeg", orderTitle: "VPS Premium", sellerJid: conn.user.id });
48. Menu Pilihan Interaktif (Interactive List Select)
Mengirim pesan menu daftar pilihan (list select) interaktif menggunakan komponen native flow WhatsApp.
- Contoh Kode Penggunaan (Dengan Gambar Header):
await conn.sendList(jid, null, "Silakan pilih salah satu opsi di bawah:", "Footer Info", "Buka Menu", [ { title: "Layanan Cloud", rows: [ { title: "VPS Hosting", description: "VPS Linux SSD murah", id: "cloud_vps" }, { title: "Shared Hosting", description: "Hosting murah cPanel", id: "cloud_shared" } ] } ], { image: { url: "https://files.catbox.moe/example.jpg" } // Mendukung image, video, document, atau location });
49. Tombol Interaktif Native (Interactive Quick Reply Buttons)
Mengirim pesan dengan tombol pilihan cepat (Quick Reply Buttons) native.
- Contoh Kode via Socket
conn:await conn.sendMessage(jid, { text: "Pilih salah satu tombol di bawah:", footer: "Kemudahan Layanan", buttons: [ { buttonId: "btn_yes", buttonText: { displayText: "Ya, Tentu" }, type: 1 }, { buttonId: "btn_no", buttonText: { displayText: "Tidak" }, type: 1 } ] });
50. Mengirim Raw Proto Messages (Meta AI & Custom Proto)
Untuk menggunakan tipe pesan baru dari schema protobuf yang belum memiliki helper/wrapper bawaan (seperti pemanggilan Meta AI botInvokeMessage, botTaskMessage, dll), Anda dapat mengirimkannya secara mentah (raw) menggunakan format schema FutureProofMessage bawaan:
- Contoh Memanggil Meta AI (Bot Invoke):
await conn.sendMessage(jid, { botInvokeMessage: { message: { conversation: "Halo Meta AI, tolong carikan resep nasi goreng." } } }); - Contoh Mengirim Bot Task:
await conn.sendMessage(jid, { botTaskMessage: { message: { conversation: "Tugas: Analisis sentimen chat grup." } } });
51. Tombol Interaktif Native Baru (Interactive Buttons / Native Flow Buttons)
Mengirim tombol interaktif modern WhatsApp (Quick Reply, URL click, Call, dan Request Location) secara native. Format ini lebih aman dari deteksi ban dibandingkan dengan format buttonsMessage lama yang sudah deprecated. Anda juga bisa menyertakan Header Peta (Map Header) atau Gambar Kustom di atas tombol tersebut!
- Contoh Tombol Share Location (Minta Lokasi Pengguna):
await conn.sendInteractiveButtons(jid, "Minta Lokasi", "Silakan ketuk tombol di bawah untuk membagikan lokasi Anda:", "Lokasi Anda aman", [ { type: "location" } // Otomatis merender tombol "Kirim Lokasi" bawaan WA ]); - Contoh Menggunakan Header Peta + Tombol Opsi:
await conn.sendInteractiveButtons(jid, null, "Silakan kunjungi lokasi kami atau hubungi kami:", "FreeZeeHost Office", [ { text: "Buka Website", url: "https://freezeehost.com", type: "url" }, { text: "Hubungi Kantor", phoneNumber: "+628xxxxxxxx", type: "call" } ], { location: { latitude: -6.200000, longitude: 106.816666, name: "Kantor FreeZeeHost Jakarta", address: "Jl. Sudirman No. 12, Jakarta Pusat" } }); - Contoh Menggunakan Header Gambar Kustom (Pengganti
externalAdReply):await conn.sendInteractiveButtons(jid, null, "Ini adalah isi pesan dengan tombol dan gambar kustom di atasnya:", "FreeZeeHost Premium", [ { text: "Daftar Akun", id: "menu_register", type: "quick_reply" }, { text: "Lihat Paket", id: "menu_packages", type: "quick_reply" } ], { image: { url: "https://files.catbox.moe/example.jpg" } // Atau buffer, atau path file lokal });
52. Memanggil Meta AI (Bot Invoke & Bot Task Helpers)
Fungsi pembungkus resmi untuk memicu asisten Meta AI bawaan di WhatsApp secara langsung:
- Contoh Penggunaan:
await conn.sendBotInvoke(jid, "Halo Meta AI, tolong jelaskan apa itu black hole secara singkat."); await conn.sendBotTask(jid, "Tugas: Tulis kode Hello World di Python.");
53. Teruskan Pesan Seolah dari Saluran (Channel Forward Spoofing)
Fitur promosi / branding untuk mengirimkan pesan yang seolah-olah diteruskan secara resmi dari saluran (channel/newsletter) WhatsApp tertentu:
- Contoh Penggunaan:
await conn.sendChannelForward( jid, "Dapatkan promo hosting gratis di saluran kami!", "120363024893892@newsletter", "FreeZeeHost Updates Channel" );
54. Menyukai / React Status Orang Lain (Like Status Story)
Mendukung pengiriman tanggapan/reaksi suka secara native ke pembaruan status cerita WhatsApp orang lain:
- Contoh Penggunaan:
await conn.likeStatus(statusMessageKey, "❤️"); // default emoji adalah ❤️, bisa diganti emoji lain
55. Manajemen Daftar Chat Instan (Chat List Management)
Fungsi kenyamanan langsung untuk memodifikasi, merapikan, dan menyematkan chat di daftar obrolan WhatsApp bot secara terprogram:
// 1. Sematkan / Lepas Sematan Chat (Pin/Unpin Chat)
await conn.pinChat(jid, true); // true = Pin, false = Unpin
// 2. Arsipkan / Batal Arsipkan Chat (Archive/Unarchive Chat)
await conn.archiveChat(jid, true); // true = Arsipkan, false = Keluarkan dari arsip
// 3. Bisukan / Bunyikan Chat (Mute/Unmute Chat)
await conn.muteChat(jid, 8 * 3600 * 1000); // Mute selama 8 jam (dalam milidetik)
await conn.unmuteChat(jid); // Bunyikan kembali
// 4. Tandai sebagai Sudah Dibaca / Belum Dibaca
await conn.markChatAsRead(jid, true); // true = Tandai dibaca, false = Belum dibaca56. Kirim Toko, Koleksi, Katalog & Daftar Produk (E-Commerce Storefront)
Mengirimkan kartu interaktif native untuk Toko (Shop), Koleksi Katalog (Collection), Katalog Individu (Catalog), dan Daftar Multi-Produk (Product List) secara langsung:
- Mengirim Kartu Toko (Shop Storefront):
await conn.sendShopMessage(jid, "shop_id_12345", "WA", "Judul Toko", "Kunjungi toko kami!", "Footer"); - Mengirim Kartu Koleksi Katalog (Catalog Collection):
await conn.sendCollectionMessage(jid, "[email protected]", "collection_id_9981", "Judul Koleksi", "Lihat koleksi produk terbaru kami:", "Footer"); - Mengirim Katalog Bisnis (Send Catalog):
Mengirim katalog bisnis lengkap dengan judul, deskripsi, dan gambar sampul secara native:
await conn.sendCatalog(jid, businessOwnerJid, "Judul Katalog", "Deskripsi lengkap katalog produk kami", "./images/cover.jpg"); // Atau balas instan via objek pesan m: await m.replyCatalog(businessOwnerJid, "Judul Katalog", "Deskripsi katalog", "./images/cover.jpg"); - Mengirim Daftar Produk Multi-Kategori (Send Product List):
Mengirim daftar produk dengan bagian/seksi terpisah untuk navigasi belanja yang mudah:
const sections = [ { title: "Paket VPS", products: [ { productId: "vps_starter" }, { productId: "vps_pro" } ] }, { title: "Paket Hosting", products: [ { productId: "hosting_basic" } ] } ]; await conn.sendProductList(jid, "Daftar Produk Kami", "Pilih produk favorit Anda di bawah ini:", "Footer Teks", "Lihat Produk", sections, businessOwnerJid); // Atau balas instan via objek pesan m: await m.replyProductList("Daftar Produk", "Silakan pilih:", "Footer", "Tombol", sections, businessOwnerJid);
57. Kirim Bukti Pembayaran / Struk Transaksi (Payment Receipt Message)
Mengirimkan kartu notifikasi bukti pembayaran (Send Payment Message) secara resmi ke obrolan pengguna:
- Contoh Penggunaan:
await conn.sendPaymentReceipt(jid, 150000, "IDR", "Pembayaran VPS Starter berhasil!");
58. Kirim Pesan Terusan AI / Bot (Bot Forwarded Message)
Membungkus dan mengirimkan pesan dengan menyertakan tag / penanda resmi "Forwarded from AI" atau "Diteruskan dari Bot" secara native:
- Contoh Penggunaan:
// Membungkus pesan teks sederhana await conn.sendBotForwardedMessage(jid, "Halo, ini adalah balasan pintar dari asisten AI."); // Membungkus format pesan yang lebih kompleks await conn.sendBotForwardedMessage(jid, { extendedTextMessage: { text: "Pesan ini memiliki header khusus terusan bot." } });
59. Kirim Gambar Sampul Acara Grup (Event Cover Image Message)
Menambahkan atau memperbarui gambar sampul (cover image) untuk pesan acara/event grup secara terprogram:
- Contoh Penggunaan:
await conn.sendEventCoverImage(jid, eventMessageKey, "./images/event_banner.jpg");
60. Sebutkan / Mention Grup di Status & Chat (Group Mentioned Message)
Mengirimkan informasi penyebutan grup (Group Mentioned) secara native pada status cerita atau obrolan:
- Contoh Penggunaan:
await conn.sendGroupMentionedMessage(jid, "[email protected]", "Grup FreeZeeHost resmi disebutkan!");
61. Pertanyaan & Balasan Pertanyaan (Question & Question Reply Messages)
Mengirimkan pesan tipe questionMessage atau questionReplyMessage (balasan pertanyaan) secara native yang dibungkus dalam format FutureProofMessage.
- Contoh Mengirim Pertanyaan (Question Message):
// Menggunakan socket (conn) await conn.sendQuestion(jid, "Bagaimana pendapat Anda tentang teknologi Meta AI?"); // Menggunakan objek pesan (m) await m.sendQuestion("Bagaimana pendapat Anda tentang teknologi Meta AI?"); - Contoh Mengirim Balasan Pertanyaan (Question Reply Message):
// Menggunakan socket (conn) await conn.sendQuestionReply(jid, "Balasan atas pertanyaan survei Anda."); // Menggunakan objek pesan (m) await m.sendQuestionReply("Balasan atas pertanyaan survei Anda.");
Fitur manajemen sistem, memori, dan penyamaran agen bot:
1. Pengaturan Ghost Mode & VIP List
conn.ghostMode = true; // Aktifkan tanpa mengirim laporan baca otomatis
// Tambahkan kontak agar tetap menerima centang biru dari Anda
conn.setVIP("[email protected]", true);2. Anti-Delete (Retrieve Deleted Message)
Menyimpan cache pesan secara otomatis sehingga Anda dapat mengambil pesan asli yang telah dihapus oleh pengirim.
// Dapatkan objek pesan asli yang dihapus oleh pengirim
const originalMessage = conn.getDeletedMessage(jid, messageId);3. Auto-Typing & Auto-VN (Simulasi Ketikan & Rekaman VN Realistis)
Secara otomatis memicu status "sedang mengetik..." (composing) sebelum mengirim pesan teks, atau "sedang merekam audio..." (recording) sebelum mengirim Voice Note.
Global Toggle (Otomatis):
// Aktifkan auto-typing global untuk seluruh pesan teks
conn.autoTyping = true;
// Aktifkan auto-record (auto-vn) global untuk seluruh pesan audio
conn.autoRecord = true;Ad-Hoc / Opsi Pengiriman:
Anda dapat mengaktifkan simulasi mengetik/merekam secara spesifik pada panggilan sendMessage dengan durasi kustom (milidetik):
// Kirim pesan dengan simulasi mengetik selama 2 detik
await conn.sendMessage(jid, { text: "Halo!" }, { simulateTyping: 2000 });
// Kirim VN dengan simulasi merekam selama 3 detik
await conn.sendMessage(jid, { audio: { url: "..." }, ptt: true }, { simulateRecording: 3000 });Fungsi Helper Socket:
// Simulasikan status mengetik selama durasi tertentu (default 1000ms) tanpa mengirim pesan
await conn.simulateTyping(jid, 2000);
// Simulasikan status merekam audio selama durasi tertentu (default 1500ms) tanpa mengirim pesan
await conn.simulateRecording(jid, 3000);4. Model Penyamaran Browser Perangkat (Persona Identity)
Ubah platform perangkat WhatsApp Web Anda (IOS, Android, Windows, macOS, WearOS, Portal) secara instan.
// Opsi: 'ios', 'android', 'windows', 'macos', 'portal', 'wearos'
conn.setPersona('ios'); 5. Prefetch Plugin (Turbo-Loader)
Prapemanasan cache file javascript pada folder plugin agar eksekusi perintah bot lebih instan.
const result = await conn.prefetchPlugins("./plugins");
console.log(`Prefetch selesai dalam ${result.duration}ms untuk ${result.count} plugin.`);6. Auto-Optimize Memory
Mengosongkan cache store pesan yang tidak terpakai dan memicu Garbage Collector untuk menghemat RAM VPS.
- Contoh Kode via Socket
conn:conn.autoOptimize();
7. Stiker "Add Yours" Status Interaktif
Mengirimkan status/cerita (story) dengan stiker interaktif "Add Yours" secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyStatusAddYours("Tunjukkan foto kucingmu!"); - Contoh Kode via Socket
conn:await conn.sendStatusAddYours("Tunjukkan foto kucingmu!");
8. Pesan Status Grup & Group Status V2 / Group Status Mention
Mengirimkan status/cerita yang ditargetkan untuk audiens grup tertentu secara native.
- Contoh Kode via
m(Paling Mudah):await m.replyStatusGroupStatus("Halo semua anggota grup!"); await m.replyStatusGroupStatusV2("Halo semua anggota grup (V2)!"); await m.replyStatusGroupMention("Halo @[email protected]!"); - Contoh Kode via Socket
conn:await conn.sendStatusGroupStatus("Halo semua anggota grup!"); await conn.sendStatusGroupStatusV2("Halo semua anggota grup (V2)!"); await conn.sendStatusGroupMention("Halo @[email protected]!");
8. Pesan Anak Terasosiasi (Associated Child Message)
Mengirimkan pesan anak terasosiasi (associated child message) yang terhubung ke pesan status.
- Contoh Kode via
m(Paling Mudah):await m.replyAssociatedChild("Balasan pesan status ini."); - Contoh Kode via Socket
conn:await conn.sendAssociatedChild(jid, "Balasan pesan status ini.");
Gunakan API ini untuk merender visual pesan interaktif Meta AI yang eleg
