
WhatsApp AI Store Assistant
Client WhatsApp assistant that answers product questions, searches the store catalog, and sends requested restock notices.
Project Overview
This private client project is a WhatsApp assistant for an online store. Customers can ask about products in text, images, or voice notes. The bot looks up catalog data before answering, and a human-support mode lets the store take over a conversation. Customers can also request a message when an unavailable product returns to stock.
The problem
A store conversation needs current product facts, not a plausible answer from a language model. Messages may arrive in quick bursts, product names may be incomplete, and stock may change after an earlier lookup. The assistant connects each reply to catalog searches and keeps retry and notification work outside the incoming message handler.
Key features
- Baileys connects to WhatsApp and stores authentication state in MongoDB.
- Incoming messages are filtered for duplicates and grouped briefly by sender before AI processing.
- A first-contact selector offers automatic replies or human support.
- Text, product images, and voice notes can become input for Gemini.
- Product matching combines catalog fields, token scoring, and Qdrant vector search.
- FAQ lookup tries semantic search and falls back to MongoDB text matching.
- Customers can consent to a restock reminder for an unavailable product.
- A Redis subscriber receives stock events and sends matching reminders through WhatsApp.
Technical architecture
The Node.js service receives messages through Baileys. It stores conversations, products, sessions, and reminder records in MongoDB through Mongoose. A per-sender debounce groups input, then a Redis-backed normal queue and retry schedule drive Gemini calls. Product and FAQ searches use MongoDB and Qdrant. An external stock-sync service can refresh stale stock data; Redis Pub/Sub carries availability events to the reminder consumer.
Engineering highlights
- Input and URL checks reduce prompt-injection and unsafe media-fetch paths.
- Reminder creation checks customer consent and resolves a real catalog product before saving it.
- Atomic reminder claiming prevents concurrent stock events from sending the same notice twice.
- A failed reminder send returns the record to pending for a later event.
My role
I built the WhatsApp connection, conversation modes, Gemini response flow, catalog matching, retry processing, and restock notification path for the client.
Image Gallery
No media available for this project.
Client Reviews
Feedback from people who used or collaborated on this project.
Share your experience with this project
Related projects

Levix Self-Hosted WhatsApp Bot
MIT-licensed WhatsApp bot with AI tools, moderation, scheduling, Android hosting, and a companion website.

Leviro Jobs Hunter
Leviro service that finds freelance opportunities, matches them to skills, and sends results through Telegram.

WhatsApp OTP Service
WhatsApp OTP API with hashed verification records, a SQLite send queue, and a bilingual admin dashboard.