Abdelrhman

WhatsApp AI Store Assistant
0 Views

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