Three services, one Channel Router, complete tenant isolation. Built on Google Cloud Run with Firestore and Pinecone.
FastAPI (Python)
API layer. 77 router files, 737+ endpoints. RBAC middleware, rate limiting, webhook handlers.
Google ADK (Python)
Agent orchestration. Greeter/Closer/Admin agents. Session persistence, model routing, skill execution.
Next.js 15 (TypeScript)
Tenant UI. 146 pages. Server Components, Shadcn/UI, Firebase Auth.
Python (packages/channels)
Unified send/receive. 16 channels, 54 vendor adapters. Provider selection, fallback, cost tracking.
Every Firestore query scoped by tenant_id. Cross-tenant access impossible.
Pinecone namespace-per-tenant. Knowledge base completely isolated.
Per-tenant agents, skills, personality, LLM model selection.
Separate wallet, transactions, invoices per tenant. Atomic debits.
Firebase Auth tokens carry tenant_id. RBAC middleware enforces on every request.
Concurrent call limits per plan. Distributed locking via Firestore.
Every test suite includes a cross-tenant access test — and asserts failure.
Runtime
Python 3.12+ / Node 20
Database
Firestore (multi-region)
Vectors
Pinecone
Auth
Firebase Auth + Identity Platform
Hosting
Google Cloud Run
LLMs
OpenRouter (Claude/Gemini/GPT)
Payments
Razorpay
Async
Pub/Sub + Cloud Scheduler