Go to file
Ravi Gulhane fb78920fe9 first commit 2026-08-31 16:28:31 +05:30
public first commit 2026-08-31 16:28:31 +05:30
scripts first commit 2026-08-31 16:28:31 +05:30
src first commit 2026-08-31 16:28:31 +05:30
README.md first commit 2026-08-31 16:28:31 +05:30
ecosystem.config.cjs first commit 2026-08-31 16:28:31 +05:30
package-lock.json first commit 2026-08-31 16:28:31 +05:30
package.json first commit 2026-08-31 16:28:31 +05:30
server.js first commit 2026-08-31 16:28:31 +05:30

README.md

EventBuzz Concierge

Independent Node.js service for the EventBuzz Virtual Concierge chatbot. Uses Amazon Bedrock for Call 1 (intent classification). Connects to the same MongoDB as the main EventBuzz backend.

Setup

cp .env.example .env
# Set MONGODB_URI and AWS / Bedrock credentials
npm install
npm run dev

Server defaults to http://localhost:3010.

Production deploy (same server as backend)

From the repo root (EventBuzz_Dashboard_V4/):

./deploy.sh concierge
# or full stack:
./deploy.sh all

Deploys to /var/www/concierge on the backend host, reloads PM2 app concierge-api, and syncs public/embed to the backend so dashboard embed snippets stay current.

First time on the server: create /var/www/concierge/.env (copy from .env.example), set MONGODB_URI, AWS/Bedrock, and mail vars, then run deploy. If package.json / lockfile changed, run npm ci --omit=dev on the server and deploy again.

Embed demo

  1. Start the server.
  2. Open http://localhost:3010/embed/demo.
  3. Set botId in the page script to a real ConciergeBot document _id from MongoDB.

API

Method Path Purpose
GET /api/public/concierge/{botId}/config Widget greeting / config
POST /api/public/concierge/{botId}/chat Send message (Call 1 classification)
GET /api/public/concierge/{botId}/session/{sessionRef} Resume session
GET /webhook/whatsapp Meta webhook verification
POST /webhook/whatsapp Inbound WhatsApp (reception + follow-up)

Pipeline

  1. Call 1 (Nova Micro) — intent + entities
  2. Call 2 (Claude 3 Haiku) — agenda replies with Sessions DB context
  3. Bookmark mutations — agenda_bookmark_add / agenda_bookmark_remove write SessionBookmark records (no Call 2)
  4. Email OTP — required for personal schedule, conflict check, and bookmark mutations; auth is stored on the web chat session

Set BEDROCK_CALL2_MODEL_ID, OTP_PEPPER, and SMTP/MAIL_* vars in .env (see .env.example). Without SMTP, OTP codes are logged to the server console.

Reception WhatsApp: point the Meta webhook at GET/POST /webhook/whatsapp on this service (verify token META_WHATSAPP_WEBHOOK_VERIFY_TOKEN). Configure copy and drips in the dashboard WhatsApp Chatbots → Reception tab. WABA credentials come from Organisation WhatsApp settings.