Cara Balas WA Otomatis dengan Gambar/File
Cara auto reply WA dengan gambar, dokumen, video. Kirim katalog, price list, brosur otomatis. Tutorial lengkap!
Auto reply text saja? Kurang menarik!
Dengan gambar dan file, auto reply jadi lebih informatif dan engaging.
Customer ketik "katalog" → Bot kirim gambar katalog. Customer ketik "pricelist" → Bot kirim PDF daftar harga.
Jenis Media yang Bisa Dikirim
| Tipe | Format | Max Size | Use Case |
|---|---|---|---|
| Image | JPG, PNG | 16 MB | Katalog, promo |
| Video | MP4 | 16 MB | Demo produk |
| Audio | MP3, OGG | 16 MB | Voice note |
| Document | PDF, DOC | 100 MB | Pricelist, proposal |
| Sticker | WEBP | 100 KB | Fun response |
Contoh Use Cases
1. Katalog Produk
Keyword: katalog
Response: [Gambar katalog] + caption2. Price List PDF
Keyword: pricelist, harga
Response: [PDF price list] + caption3. Brosur/Flyer
Keyword: promo, diskon
Response: [Gambar promo] + detail4. Video Demo
Keyword: demo, tutorial
Response: [Video demo] + penjelasan5. Lokasi/Map
Keyword: alamat, lokasi
Response: [Location/Image map] + detailImplementasi
Di Platform Cloud (Balaswa):
1. Dashboard > Bot > Tambah Keyword
2. Keyword: katalog
3. Response Type: Image/Document
4. Upload file
5. Add caption (opsional)
6. SaveDi Coding (Node.js dengan whatsapp-web.js):
Kirim Gambar:
javascript
const { MessageMedia } = require('whatsapp-web.js');
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'katalog') {
// Dari file lokal
const media = MessageMedia.fromFilePath('./katalog.jpg');
await msg.reply(media, undefined, {
caption: '📦 KATALOG PRODUK\n\nSilakan pilih produk favorit!'
});
}
});Kirim dari URL:
javascript
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'katalog') {
// Dari URL
const media = await MessageMedia.fromUrl(
'https://example.com/katalog.jpg'
);
await msg.reply(media, undefined, {
caption: '📦 KATALOG PRODUK'
});
}
});Kirim PDF:
javascript
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'pricelist') {
const media = MessageMedia.fromFilePath('./pricelist.pdf');
await msg.reply(media, undefined, {
caption: '💰 PRICE LIST 2026\n\nHarga dapat berubah sewaktu-waktu.'
});
}
});Kirim Video:
javascript
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'demo') {
const media = MessageMedia.fromFilePath('./demo.mp4');
await msg.reply(media, undefined, {
caption: '🎬 VIDEO DEMO\n\nCara penggunaan produk.'
});
}
});Kirim Multiple Images:
javascript
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'galeri') {
const images = [
'./product1.jpg',
'./product2.jpg',
'./product3.jpg'
];
for (const imagePath of images) {
const media = MessageMedia.fromFilePath(imagePath);
await msg.reply(media);
await delay(1000); // Delay antar gambar
}
}
});Di Coding (Baileys):
javascript
const fs = require('fs');
sock.ev.on('messages.upsert', async ({ messages }) => {
const msg = messages[0];
const text = msg.message?.conversation?.toLowerCase();
if (text === 'katalog') {
await sock.sendMessage(msg.key.remoteJid, {
image: fs.readFileSync('./katalog.jpg'),
caption: '📦 KATALOG PRODUK'
});
}
if (text === 'pricelist') {
await sock.sendMessage(msg.key.remoteJid, {
document: fs.readFileSync('./pricelist.pdf'),
fileName: 'PriceList-2026.pdf',
caption: '💰 PRICE LIST 2026'
});
}
});Contoh Response Lengkap
Katalog dengan Text:
Keyword: katalog
Response:
[GAMBAR KATALOG]
📦 KATALOG [NAMA TOKO]
Update: Januari 2026
Produk unggulan:
- Produk A - Rp 100.000
- Produk B - Rp 150.000
- Produk C - Rp 200.000
Ketik nama produk untuk detail!
Ketik ORDER untuk pesan.Price List PDF:
Keyword: pricelist, daftar harga
Response:
[PDF PRICELIST]
💰 PRICE LIST 2026
File PDF terlampir berisi:
✓ Harga retail
✓ Harga reseller
✓ Minimum order
✓ Terms & conditions
Harga dapat berubah tanpa pemberitahuan.
Last update: [tanggal]Promo Flyer:
Keyword: promo
Response:
[GAMBAR PROMO]
🎉 PROMO BULAN INI!
🔥 Diskon up to 50%!
📅 Periode: 1-31 Januari 2026
📦 Berlaku untuk produk tertentu
Lihat detail di gambar!
Mau order? Ketik ORDERTips Media Auto Reply
1. Optimasi Ukuran File
✅ Compress gambar (< 500 KB ideal)
✅ Video pendek (< 30 detik)
✅ PDF terkompresi
❌ File terlalu besar = lama kirim2. Caption yang Informatif
✅ Jelaskan isi file
✅ Call-to-action
✅ Keyword selanjutnya
❌ Caption kosong3. File Naming
✅ "PriceList-2026.pdf" (deskriptif)
❌ "file123.pdf" (tidak jelas)4. Update Berkala
Katalog/pricelist harus update!
Set reminder: update bulanan5. Fallback ke Text
Jika file gagal kirim:
→ Kirim text alternatif
→ Atau link downloadHandling Errors
javascript
client.on('message', async msg => {
if (msg.body.toLowerCase() === 'katalog') {
try {
const media = MessageMedia.fromFilePath('./katalog.jpg');
await msg.reply(media, undefined, {
caption: '📦 KATALOG PRODUK'
});
} catch (error) {
// Fallback ke text + link
await msg.reply(`📦 KATALOG PRODUK
Maaf, file tidak bisa dikirim.
Silakan download di: https://toko.com/katalog
Atau chat admin untuk dikirim manual.`);
}
}
});FAQ
Apakah semua platform support kirim media?
Tidak semua. WA Business bawaan (Away Message) hanya text. Untuk media, perlu platform cloud atau coding sendiri.
Ada batasan ukuran file?
Ya. Image/video max 16 MB, document max 100 MB. Tapi untuk user experience, usahakan sekecil mungkin.
Bisa kirim multiple file sekaligus?
Bisa dengan coding. Kirim satu-satu dengan delay supaya tidak spam.
Kesimpulan
Media = Auto reply yang lebih engaging!
| Trigger | Response Type |
|---|---|
| katalog | Image + caption |
| pricelist | PDF document |
| promo | Flyer image |
| demo | Video |
| lokasi | Location/Map |
Visual > Text only!