WarungGo is a dual-service toolkit that blends a Baileys-powered WhatsApp bot with a FastAPI AI microservice and a Google Sheets sync worker so micro-merchants can automate ordering without new hardware.
Highlights
- 24/7 WhatsApp bot built on Baileys multi-device sessions.
- FastAPI AI endpoints for chat replies, order parsing, invoices, and promo hints.
- Service-account Google Sheets sync for live menu and stock visibility.
Built for
- Warung and micro-merchant owners who live in WhatsApp.
- Agencies or startup teams prototyping conversational commerce flows.
- Developers that need a reference stack for chat-based ordering assistants.
Problems solved
- Manual WhatsApp order triage that delays responses and causes mistakes.
- Menu & stock numbers drifting between spreadsheets and actual chats.
- Owner fatigue from repeating FAQs and calculating totals in their head.
Goals we keep chasing
- Deliver a casual bilingual bot voice that feels natural to customers.
- Keep infrastructure lightweight—just WhatsApp Web plus Google Sheets.
- Provide extensible code so new commands or AI models plug in quickly.
| Technology | Usage |
|---|---|
| Node.js + Baileys | WhatsApp multi-device gateway, routing, and QR-based auth |
| FastAPI (Python) | AI microservice powering chat, parse_order, invoice, FAQ, and promo endpoints |
| Google Sheets API | Menu & inventory synchronization through a service-account worker |
- QR onboarding, multi-file auth state, and auto-reconnect keep the bot online 24/7.
- Scheduled Google Sheets sync normalizes menu items into JSON for quick lookups.
- FastAPI chat endpoint proxies Gemini for Jaksel-vibe replies when
AI_CHAT_URLis set. - Rule-based + LLM hybrid order parser outputs clean JSON lines for invoices.
- WhatsApp-friendly invoice builder formats Rupiah totals and customer context.
- FAQ and promo micro-engines deflect repetitive questions and nudge upsells.
- Node.js 18+ and npm.
- Python 3.10+ with
uvicorn, FastAPI, and a virtual environment tool (venv/pyenv). - A WhatsApp number you control, Google Cloud service-account credentials for Sheets, and optional Gemini API keys.
git clone https://github.com/ZygmaCore/WarungGo.git
cd WarungGo
cd wa-bot && npm install
cd ../ai-service
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtConfigure wa-bot/.env (see .env.example), place secrets/credentials.json, and export Gemini variables for the AI service when needed.
- Start the AI microservice:
cd ai-service
source .venv/bin/activate
uvicorn main:app --host 0.0.0.0 --port 8000 --reload- In a new terminal, fire up the WhatsApp bot from the
wa-bot/folder:
npm startAfter scanning the QR code, the bot will auto-sync Sheets every five minutes while routing inbound chats through the AI endpoint defined by AI_CHAT_URL.
> npm start
🔄 Mengambil data awal dari Google Sheets...
✅ WarungGo bot berjalan
⏳ Auto-sync Google Sheets (interval 5 menit)...
- Fork the repo, create a feature branch, and keep changes scoped.
- Run linting/tests for both
wa-botandai-servicebefore opening a PR. - Describe context, screenshots/logs, and configuration updates in the pull request.
Released under the MIT License — see LICENSE for details.
Connect with the author:
Happy building!

