If you're a developer looking to automate WhatsApp messages, manage customer communication, or build a chatbot using JavaScript, Venom Bot is your new best friend. In this blog, we’ll explore what Venom Bot is, how it works, how to set it up, and demonstrate real-world use cases—like sending messages, receiving chats, and even creating a simple command-response bot.
What is Venom Bot?
Venom Bot is a powerful and easy-to-use Node.js library that uses the WhatsApp Web protocol to automate and interact with WhatsApp. It's based on puppeteer, which launches a headless browser to emulate a user interacting with WhatsApp Web.
It allows you to:
- Send and receive messages
- Read QR codes for authentication
- Automate responses (chatbot)
- Create group messages
- Send media (images, videos, documents)
Use Cases
- Customer Support Bots
- Order Notifications
- Appointment Reminders
- WhatsApp-based CRM tools
Installation & Setup
1. Create a Node.js Project
mkdir venom-whatsapp-bot cd venom-whatsapp-bot npm init -y npm install venom-bot
2. Basic Bot Setup (index.js)
const venom = require('venom-bot'); venom .create() .then((client) => startBot(client)) .catch((error) => console.log(error)); function startBot(client) { client.onMessage(async (message) => { if (message.body === 'hi' && message.isGroupMsg === false) { await client.sendText(message.from, 'Hello! How can I assist you today?'); } }); }
3. Run the Bot
node index.js
You’ll see a QR code in the terminal. Scan it with your WhatsApp to authenticate.
Features Walkthrough
1. Sending Text Messages
await client.sendText('123456789@c.us', 'Hello, this is a test message!');
2. Sending Media (Images, PDF, etc.)
await client.sendImage( '123456789@c.us', './path/to/image.jpg', 'image_name', 'Caption text here' );
3. Group Messaging
await client.sendText('123456789-123456789@g.us', 'Hello Group!');
4. Buttons and Interactive Messages
await client.sendButtons( message.from, 'Choose an option:', [ { buttonText: { displayText: 'Option 1' } }, { buttonText: { displayText: 'Option 2' } } ], 'Custom footer text' );
Building a Simple Command Bot
function startBot(client) { client.onMessage(async (message) => { switch (message.body.toLowerCase()) { case 'hello': await client.sendText(message.from, '👋 Hello there!'); break; case 'help': await client.sendText( message.from, 'Commands:\n1. hello\n2. help\n3. info' ); break; case 'info': await client.sendText(message.from, 'This is a demo Venom Bot.'); break; default: await client.sendText( message.from, "Sorry, I didn't understand. Type 'help' for options." ); } }); }
Production Tips
- Always use a VPS (like DigitalOcean or AWS) for reliability.
- Use
venom.create({ headless: true })
to prevent opening a visible browser. - Secure sessions: Use session tokens to preserve authentication.
- Error handling: Listen to events like
client.onStateChange
orclient.onAck
.
Limitations & Legal Notes
- Venom Bot is based on unofficial WhatsApp Web APIs, so there’s always a chance of breakage.
- You must comply with WhatsApp’s terms of service. Avoid spammy behavior.
Conclusion
Venom Bot offers a fast and flexible way to automate WhatsApp with Node.js. Whether you’re building a personal assistant, customer support bot, or alert system, Venom provides a developer-friendly API to get started quickly.
🔧 From a QR-authenticated session to sending interactive messages, Venom makes WhatsApp automation simple. Just remember to use it ethically and responsibly.
Top comments (4)
hi , can use many session in one bot ?
hi
unfortunately modules are deprecated .!
Tenia un bot cob venom, pero dejo de funcionar que sucedio
hi
Is it possible to run venom with old Node.js
or any other way to run it without update modules?
thanks