Turning informal business chaos into structured, automated intelligence โ powered by Amazon Nova.
NotiFlow is an end-to-end AI operations assistant designed for small and micro businesses across India. It automatically processes informal business notifications (in Hinglish/English) from WhatsApp, GPay, Amazon Seller, and other sources โ detecting intent, extracting entities, executing business logic, and syncing everything to a live Google Sheets ledger in real time.
- The Problem
- The Solution
- Architecture
- Features
- Tech Stack
- Project Structure
- Getting Started
- API Reference
- AI Agent Pipeline
- Business Skills
- Google Sheets Integration
- Dashboard
- Configuration
- Environment Variables
- Demo Mode
For a single small business owner, managing daily operations is incredibly messy and overwhelming. Throughout the day, they receive orders, payments, and credit requests continuously from multiple different apps at the same time:
- WhatsApp:
"bhaiya 3 kilo aata bhej dena" - GPay:
"โน8000 received from Amit" - Amazon Seller:
"Product: Silk Kurti. Qty: 2. Total: โน1500" - Credit requests:
"suresh ko 500 ka maal udhar dena"
Tracking all of this manually in physical notebooks or constantly switching between multiple apps is chaotic. Because there are so many notifications from different sources, it's extremely difficult for one person to maintain a unified record. As a result, owners frequently miss orders, lose track of payments, and struggle with inventory management.
The Language Barrier (Problem We Faced): Furthermore, these messages are almost always written in Hinglish (a complex mix of Hindi and English) or use highly informal, code-mixed formatting. Traditional software simply cannot understand this colloquial language, making it nearly impossible to parse and automate accurately.
There is a desperate need for a single, unified system. The owner should not have to manually scroll through every app and write things down. Instead, a central system should ingest notifications from all these apps, understand the informal Hinglish intents, and automatically construct a unified digital ledger.
NotiFlow uses Amazon Nova Lite (nova-lite-v1:0) via Amazon Bedrock to automatically convert raw, informal business notifications into structured, actionable operations.
One message in โ complete business operation out.
"bhaiya 3 kilo aata bhej dena"
โ
Intent: order
Item: aata
Quantity: 3
โ
โ
Order recorded
โ
Inventory deducted
โ
Invoice generated
โ
Google Sheets updated
โ
Dashboard refreshed
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ React Dashboard โ
โ (Real-time Pipeline View) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ POST /api/notification
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Backend โ
โ (notification_routes.py) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ run_notiflow(message, source)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Agent Pipeline โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 1. Intent Agent โ โ
โ โ (Amazon Nova Lite) โ โ
โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 2. Extraction Agent โ โ
โ โ (Amazon Nova Lite) โ โ
โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 3. Data Validator โ โ
โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 4. Skill Router โ โ
โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 5. Google Sheets โ โ
โ โ Ledger Sync โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Hinglish NLU โ Native understanding of Hindi-English code-mixed business language
- Multi-intent classification โ Order, Payment, Credit, Return, Preparation
- Structured entity extraction โ Customer, item, quantity, amount, payment type
- Data validation โ Hindi numeral parsing, payment alias normalization (GPay โ UPI)
- Agent memory โ Remembers recent customers and items for contextual understanding
- Zero-config pipeline โ Every notification triggers: AI processing โ skill execution โ ledger update โ dashboard refresh
- Live Google Sheets ledger โ Rows auto-appended, no manual export, no file downloads
- Invoice generation โ Automatic invoices for every order
- Inventory tracking โ Automatic stock deduction on orders
- WhatsApp messages
- GPay/UPI payment notifications
- Amazon Seller orders
- Custom webhooks via REST API
- Real-time WebSocket streaming
- Dual model fallback โ Amazon Nova โ Gemini โ Demo mode
- Graceful Sheets failure โ If Google Sheets API fails, pipeline continues normally
- Error isolation โ No single failure crashes the system
| Layer | Technology |
|---|---|
| AI Engine | Amazon Nova Lite (v1:0) via Amazon Bedrock |
| Backup AI | Google Gemini |
| Backend | Python 3.10+, FastAPI, Uvicorn |
| Frontend | React 18, TypeScript, Vite, Tailwind CSS |
| Live Ledger | Google Sheets API (gspread + google-auth) |
| Local Storage | Excel (pandas + openpyxl) |
| Real-time | WebSocket |
| Auth | Google Service Account (OAuth2) |
| Config | python-dotenv |
Notiflow/
โโโ agent/ # AI Agent Pipeline
โ โโโ intent_agent.py # Stage 1: Intent classification (Nova)
โ โโโ extraction_agent.py # Stage 2: Entity extraction (Nova)
โ โโโ orchestrator.py # Pipeline orchestrator (all stages)
โ โโโ router.py # Skill router (intent โ skill)
โ โโโ model_router.py # Model selection (Nova/Gemini)
โ โโโ skill_generator.py # Dynamic skill generation
โ
โโโ api/
โ โโโ notification_routes.py # FastAPI endpoints + WebSocket
โ
โโโ app/
โ โโโ config.py # Central configuration
โ โโโ main.py # run_notiflow() โ public API
โ โโโ bedrock_client.py # Amazon Bedrock client
โ
โโโ backend/
โ โโโ main.py # FastAPI app entry point
โ โโโ requirements.txt # Python dependencies
โ
โโโ dashboard/ # React frontend
โ โโโ src/
โ โโโ App.tsx # Main app component
โ โโโ react.tsx # VyaparFlow dashboard UI
โ โโโ api.ts # Backend API client
โ โโโ index.css # Styles
โ
โโโ services/
โ โโโ google_sheets_service.py # Google Sheets ledger sync
โ โโโ inventory_service.py # Stock management
โ โโโ invoice_service.py # Invoice generation
โ โโโ excel_sync.py # Excel persistence
โ โโโ notification_generator.py # Demo notification generator
โ
โโโ skills/ # Business skills
โ โโโ order_skill.py # Order processing
โ โโโ payment_skill.py # Payment recording
โ โโโ credit_skill.py # Credit tracking
โ โโโ return_skill.py # Return handling
โ โโโ preparation_skill.py # Preparation queuing
โ
โโโ validators/
โ โโโ data_validator.py # Entity normalization
โ
โโโ memory/
โ โโโ agent_memory.py # Agent context memory
โ
โโโ credentials/
โ โโโ sheets.json # Google service account key
โ
โโโ data/ # Runtime data (Excel store)
โโโ .env # Environment variables
โโโ requirements.txt # Python dependencies
- Python 3.10+
- Node.js 18+
- AWS account with Bedrock access (for live mode)
- Google Cloud service account (for Sheets integration)
cd Notiflow
pip install -r requirements.txtCreate a .env file in the project root:
# AWS Bedrock (for live AI mode)
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=us-east-1
# Google Sheets Integration
GOOGLE_SHEETS_CREDENTIALS=credentials/sheets.json
GOOGLE_SHEET_ID=your_google_sheet_id
# Optional
GEMINI_API_KEY=your_gemini_key
NOTIFLOW_DEMO_MODE=true- Create a new Google Sheet at sheets.google.com
- Add headers in Row 1:
| intent | item | quantity | customer | amount | source | timestamp |
|---|
- Share the sheet with your service account email (found in
credentials/sheets.jsonโclient_email) as Editor - Copy the Sheet ID from the URL and update
GOOGLE_SHEET_IDin.env
cd Notiflow
uvicorn backend.main:app --reloadBackend runs at: http://localhost:8000
API docs at: http://localhost:8000/docs
cd Notiflow/dashboard
npm install
npm run devDashboard runs at: http://localhost:5173
Process a business notification through the full AI pipeline.
Request:
{
"source": "whatsapp",
"message": "bhaiya 3 kilo aata bhej dena"
}Response:
{
"message": "bhaiya 3 kilo aata bhej dena",
"intent": "order",
"data": {
"customer": null,
"item": "aata",
"quantity": 3
},
"event": {
"event": "order_received",
"order": {
"order_id": "ORD-20260316-0001",
"customer": null,
"item": "aata",
"quantity": 3,
"status": "pending"
},
"invoice": {
"invoice_id": "INV-20260316-ABCD",
"total_amount": 0.0
}
},
"source": "whatsapp",
"sheet_updated": true,
"model": "live"
}Generate demo notifications using Gemini.
Real-time bidirectional notification streaming.
Send:
{"source": "whatsapp", "message": "rahul ne 15000 bheja"}Receive: Same response format as POST endpoint, broadcast to all clients.
Trigger automated Gemini notification streaming.
Health check with configuration summary.
The pipeline processes each message through 5 sequential stages:
Amazon Nova classifies the message into one of 6 intents:
| Intent | Example |
|---|---|
order |
"bhaiya 3 kurti bhej dena" |
payment |
"rahul ne 15000 bheja" |
credit |
"udhar me de dijiye" |
return |
"size chota hai exchange karna hai" |
preparation |
"3 kurti ka set ready rakhna" |
other |
Unclassified messages |
Nova extracts structured fields based on the detected intent:
| Field | Example Values |
|---|---|
customer |
"Rahul", "Amit Kumar" |
item |
"kurti", "aata", "silk saree" |
quantity |
3, 5 (parsed from Hindi numerals too) |
amount |
15000, 8000 |
payment_type |
"upi" (normalized from gpay/paytm/phonepe) |
reason |
"size issue", "defective" |
Normalizes extracted data:
- Number parsing (Hindi โ integer)
- Text cleanup
- Payment alias mapping (GPay/PhonePe/Paytm โ UPI)
Dispatches to the appropriate business skill based on intent.
Appends a structured row to the configured Google Sheet.
Each skill handles persistence, side effects, and returns a structured event:
| Skill | Trigger Intent | Actions |
|---|---|---|
| Order Skill | order |
Record order โ Deduct inventory โ Generate invoice โ Update memory |
| Payment Skill | payment |
Record payment โ Update ledger โ Update memory |
| Credit Skill | credit |
Record credit entry โ Track outstanding balance |
| Return Skill | return |
Log return request โ Set status to pending_review |
| Preparation Skill | preparation |
Queue preparation task โ Track readiness |
NotiFlow uses Google Sheets as a live, cloud-accessible business ledger โ no Excel downloads, no manual exports.
- Service account authenticates via
credentials/sheets.json - After every AI pipeline execution, a row is auto-appended
- The dashboard shows sync status (โ
Synced /
โ ๏ธ Failed)
| intent | item | quantity | customer | amount | source | timestamp |
|---|---|---|---|---|---|---|
| order | aata | 3 | Rahul | 2026-03-16 19:30 | ||
| payment | Amit | 8000 | gpay | 2026-03-16 19:31 | ||
| credit | goods | Suresh | 500 | 2026-03-16 19:32 |
- If credentials are missing โ logs warning, returns
sheet_updated: false - If Sheets API fails โ logs error, pipeline continues normally
- The system never crashes due to a Sheets failure
The React dashboard provides a premium, real-time operations console:
- Step 1 โ POST /Ingest: Shows the raw notification payload
- Step 2 โ AI Reasoning: Displays detected intent and extracted entities from the backend response
- Step 3 โ Skills Applied: Shows record finalization status and Google Sheets ledger sync badge
- Orders tab: All processed orders with source, customer, item, quantity, status
- Ledger tab: Payment and credit records
- Inventory tab: Current stock levels with alerts
- Displays a live "Signal Stream" of incoming notifications
- Simulates a mobile device receiving business messages
All settings are centralized in app/config.py:
| Setting | Default | Description |
|---|---|---|
DEMO_MODE |
true |
Use demo data instead of live Bedrock |
BEDROCK_MODEL_ID |
amazon.nova-lite-v1:0 |
Nova model ID |
BEDROCK_REGION |
us-east-1 |
AWS region |
DATA_FILE |
data/notiflow_data.xlsx |
Local Excel store |
GOOGLE_SHEETS_CREDENTIALS |
credentials/sheets.json |
Service account path |
GOOGLE_SHEET_ID |
(from .env) | Target Google Sheet key |
| Variable | Required | Description |
|---|---|---|
AWS_ACCESS_KEY_ID |
For live mode | AWS access key |
AWS_SECRET_ACCESS_KEY |
For live mode | AWS secret key |
AWS_DEFAULT_REGION |
No | Default: us-east-1 |
GOOGLE_SHEETS_CREDENTIALS |
For Sheets | Path to service account JSON |
GOOGLE_SHEET_ID |
For Sheets | Google Sheet key from URL |
GEMINI_API_KEY |
Optional | Gemini fallback API key |
NOTIFLOW_DEMO_MODE |
No | true / false |
When NOTIFLOW_DEMO_MODE=true (default), NotiFlow operates without AWS credentials:
- Pre-configured responses for common Hinglish business messages
- Keyword-based intent fallback for unknown messages
- Google Sheets sync still works in demo mode
- Full dashboard experience without cloud dependencies
Set NOTIFLOW_DEMO_MODE=false to use live Amazon Nova inference via Bedrock.
This project was built for the Amazon Nova Hackathon.
Built with โค๏ธ using Amazon Nova Lite ยท FastAPI ยท React ยท Google Sheets