Multi-Tenant Business Automation Suite
WhatsApp-first operations for clinics, CRM, and customer inbox — one platform, many tenants

Overview
We designed and delivered an end-to-end digital operations suite: marketing site, customer dashboard, WhatsApp inbox, CRM pipeline, clinic front-desk, and a shared API — all multi-tenant from day one.
Context
Small and mid-sized businesses in India need WhatsApp as their primary customer channel, but stitching together inbox, CRM, appointments, and billing across disconnected tools creates chaos. Kaana needed a unified system where each client gets their own workspace without deploying separate infrastructure per tenant.
Real-world scenario
A dental clinic group wants to run marketing on their own domain, manage leads in a CRM, handle WhatsApp conversations in a shared inbox, and operate daily patient flow from a front-desk app — while the platform owner provisions new clinics in minutes from an admin console.
Constraints
- Multi-tenant isolation via JWT and hostname-based tenant context
- Single backend API serving inbox, CRM, clinic, and platform apps
- Production deployment on GCP Cloud Run with custom domains per product
- WhatsApp Business API (Meta) integration with webhook verification
- Wildcard subdomain routing for per-tenant URLs (e.g. tenant.inbox, tenant.crm, tenant.clinic)
- Low ops overhead — serverless containers, Secret Manager for credentials
What we built
- Built six coordinated applications: marketing (Next.js), platform dashboard, BotIQ inbox, PropCRM pipeline, clinic desk, and Express API backend
- Implemented platform-admin provisioning API to create tenants, default admin users, and product links in one call
- Wired WhatsApp Meta provider with conversation routing, lead capture, clinic booking flows, and broadcast support
- Deployed all services to GCP via Cloud Build with environment-specific VITE build args and Secret Manager bindings
- Configured global HTTPS load balancer with host-based routing to route 15+ custom domains to the right Cloud Run service
- Added Razorpay-ready billing hooks, Resend email, and JWT auth with username-or-email login per tenant
Architecture
- Internet → Global HTTPS Load Balancer (single static IP) → URL map routes by hostname
- Cloud Run services (asia-south1): web, platform, inbox, CRM, clinic, API — each behind serverless NEGs
- Shared API (SQLite + GCS backup bucket) handles auth, tenants, WhatsApp webhooks, leads, appointments, analytics
- Frontends receive build-time API URLs; locally proxied to port 3002 for full-stack dev
- Optional Render blueprint for API with persistent disk as alternative hosting path
Integrations & platforms
- Meta WhatsApp Business API (messages, webhooks, phone number ID, verify token)
- Razorpay payment keys (platform billing)
- Resend transactional email
- Firebase (optional clinic auth overrides)
Reliability & security
- Secret Manager for JWT, WhatsApp tokens, admin credentials — never in source
- Health check endpoint on API; Cloud Run min/max instance tuning per service
- Tenant slug validation on login; platform admin vs tenant user role separation
Outcomes
- One codebase serves unlimited tenants — no per-client deployment
- Clinic, CRM, and inbox share conversation and lead data through one API
- Live production stack on kaana.in subdomains with SSL managed certificates
- Platform admin can provision a new client with default credentials and deep links in under a minute
Technology stack
Frontend
Backend
Integrations
Infrastructure
FAQ
What products are included in the Kaana suite?
Marketing site, platform dashboard, BotIQ WhatsApp inbox, PropCRM pipeline, clinic front-desk app, and a shared Express API — all multi-tenant on GCP.
How are new clients provisioned?
Platform admins create tenants via a provisioning API that returns inbox, CRM, and clinic URLs plus default credentials in under a minute.
Which cloud provider hosts production?
Google Cloud Platform — Cloud Run services behind a global HTTPS load balancer with Secret Manager for credentials.
Related services
For social · LinkedIn hook
Most businesses don't need another app. They need one system that connects WhatsApp, CRM, and daily operations.
- → Problem: disconnected WhatsApp, CRM, and front-desk tools for SMBs
- → Solution: multi-tenant suite with shared API + per-tenant subdomains
- → Stack: Next.js, Vite, Express, GCP Cloud Run, Meta WhatsApp API
- → Outcome: provision new clients in minutes, one deploy serves all tenants
Need WhatsApp automation, multi-tenant SaaS, or an operations suite for your industry? We design the full system — not just the UI.
Discuss a similar project


