Introduction to WhatsOmni
WhatsOmni is an enterprise-grade multi-tenant B2B conversational operating system that unifies 9 omnichannel messaging & social publishing channels, visual flow automation, AI Copilot & Knowledge Base, Quick Replies canned response studio, Meta Ads (Click-to-WhatsApp/Messenger/IG) lead journeys, an Advanced E-Commerce Suite (Shopify & WooCommerce 2-way product/order sync, interactive WhatsApp catalogs, automated shopping chatbots & 30-min cart recovery), 2 configurable AI operational models (BYOK and Master Fixed with Central Feature Routing), deal CRM pipelines, multi-host calendar booking, multi-currency billing with GeoIP detection, and 7 global payment gateways (Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, and MyFatoorah) into a single command center.
The Unified Operations Architecture
Modern businesses typically juggle 8–12 disconnected software subscriptions: a WhatsApp marketing tool, an Instagram DM manager, a LinkedIn & TikTok social scheduler, a Calendly appointment scheduler, a third-party AI chatbot builder, an e-commerce cart recovery plugin, fragmented regional payment processors, and a standalone CRM like HubSpot or Salesforce.
WhatsOmni unifies every layer of customer communication and automation into a single platform: every customer interaction across 9 channels, AI Copilot drafting, appointment booking, social media post, Meta Ad lead engagement, Quick Reply canned response, e-commerce order inquiry, and cart recovery event connects seamlessly into one real-time contact timeline.
1. The 2 AI Operational Models
WhatsOmni provides an adaptable, multi-tier AI Operational Architecture that empowers Super Admins to control LLM credentialing, compute liability, and end-user model flexibility:
2. Native AI Automated Features & Copilot Suite
WhatsOmni includes a fine-grained AI Feature Routing Matrix that routes specific conversational, e-commerce, and marketing tasks to the most cost-effective and capable LLM model:
3. Omnichannel Messaging, Social & Ad Acquisition Channels
Connect customer communication, ad lead journeys, and social publishing into one unified multi-tenant shared inbox with real-time WebSocket streaming:








/shortcut), rich media attachments, categories, and one-click dispatch.4. Supported AI Providers & LLM Ecosystem
WhatsOmni integrates with 8 premier AI inference providers, allowing Super Admins and tenants to connect proprietary and open-weights LLMs seamlessly:
gpt-4o, gpt-4o-mini, and o1-mini for dynamic tool calling and conversational intelligence.
claude-3-5-sonnet and claude-3-5-haiku for high-precision workflows.
gemini-1.5-pro and gemini-1.5-flash.
Llama 3.3 70B, Qwen 2.5, and Compound models.
deepseek-chat (V3) and deepseek-reasoner (R1) at unmatched cost efficiency.
grok-2-1212 and grok-2-vision.
mistral-large-latest and codestral-latest.
5. Advanced E-Commerce Suite, Product Sync & Cart Recovery
Turn WhatsApp and omnichannel chats into a high-converting storefront with 2-way store synchronization, automated AI product discovery chatbots, native WhatsApp product catalogs, order tracking support, and automated cart recovery:


6. CRM, External Sync & Pipelines
Manage leads, deals, and sync contact records bi-directionally with global enterprise CRMs:




7. Staff Directory & Multi-Host Calendar Booking
Replace external scheduling tools with built-in multi-host appointment scheduling:



8. Visual Flow Builder & Integration Nodes
Build automated conversation trees visually with React Flow, supporting advanced webhook triggers, external HTTP calls, and workflow node integrations:


9. Enterprise Subsystems & Super Admin Control Plane
Complete operational control for platform operators managing multi-tenant subscriptions, global payments, multi-workspace isolation, and broadcast protection:






10. Platform Technology Stack

Platform Requirements
System dependencies, host hardware resources, network ports configuration, database structures, and third-party API credentials needed to deploy WhatsOmni.
WhatsOmni runs on a high-concurrency multi-tier architecture, utilizing Laravel 12 (PHP 8.2+), Next.js 16 (App Router), Laravel Reverb WebSockets, Redis queues, and Node.js Baileys microservices to coordinate omnichannel messaging gateways, AI agents, visual flow automation, and multi-tenant CRM operations. Ensure your deployment host meets the resource limits and connectivity conditions listed below.
System & Service Specifications
The following table lists the physical resources, database software configurations, and runtime dependencies required to launch the WhatsOmni application stack:
| Component | Description | Minimum Specification | Recommended Specification |
|---|---|---|---|
|
PHP Runtime
|
Backend engine for Laravel 12 REST API, Eloquent ORM, multi-tenant isolation, and queue workers. | PHP 8.2 | PHP 8.2 / 8.3 (CLI & FPM) |
|
Node.js Runtime
|
JavaScript runtime required to execute Next.js 16 frontend and the Baileys WhatsApp QR WebSocket service. | Node.js 18.x | Node.js 20.x (LTS) |
|
Server CPU
|
Processor capacity required to run REST API nodes, AI agent flows, and Reverb WebSocket stream routing. | 2 vCPUs | 4 vCPUs (or higher) |
|
System RAM
|
Memory capacity required to handle concurrency queue workers, Redis caching, and active socket sessions. | 4GB RAM | 8GB RAM |
|
Disk Storage
|
Host storage space for application code, log indices, export files, local temporary uploads, and MySQL data. | 20GB SSD | 50GB+ NVMe SSD |
|
Relational Database
|
Relational database schemas with InnoDB engine and utf8mb4_unicode_ci for multi-tenant data storage. |
MySQL 8.0 / MariaDB 10.11 | MySQL 8.0.36+ (or RDS) |
|
Redis Cache & Queue
|
In-memory data store for asynchronous Redis queues, Reverb WebSockets pub/sub, and rate limiting. | Redis 6.2 | Redis 7.x (or Managed Redis) |
|
Web Server & Proxy
|
HTTP/2 reverse proxy handling SSL termination and WebSocket upgrade headers for Reverb (port 8080). | Nginx 1.20+ / Apache 2.4 | Nginx 1.24+ with TLS 1.3 |
|
Stripe Billing
|
Commercial subscription gateway configuration required to synchronize tenant pricing plans and portal. | Stripe Test Mode API Keys | Stripe Live Keys & Webhook |
|
Mail Delivery
|
Transactional outbound dispatch for tenant verification, password resets, and 2-step OTP codes. | SMTP Server Credentials | Resend API or SMTP (TLS) |
Branding & White-Labeling
WhatsOmni features a 100% Admin Panel-driven White-Labeling Engine. Platform Super Admins can re-brand the entire platform dynamically from the browser GUI—updating brand names, browser tab titles, logos, favicons, and full primary color palettes—with instant live DOM preview and zero source code modification or server rebuilds required.
Super Admin Platform Customization (/superadmin/settings/customization)
All global branding and visual identity controls are centrally managed inside the Super Admin Control Panel → Settings → Customization (/superadmin/settings/customization). Every change is stored securely in the database and broadcast in real time across the entire platform:
| Customization Field | Description & Real-Time Behavior | Admin UI Location | Propagation Scope |
|---|---|---|---|
|
Platform Brand Name
|
Defines the official platform brand name. Instantly replaces all "WhatsOmni" text across the landing page, navigation bars, auth pages, copyright footers, and email notifications. | Settings → Customization | Global (All Views) |
|
Browser Tab Title
|
Sets the HTML document <title> displayed on browser tabs (e.g. "AcmeCRM — Unified Omnichannel Platform"). |
Tab Title Input | Browser Window Title |
|
Platform Logo Upload
|
Upload PNG, JPEG, WEBP, or SVG logo (up to 2MB). Automatically uploaded to /storage/branding/ with immediate live preview across sidebars and headers. |
Upload Logo Button | Header & Sidebars |
|
Browser Favicon Upload
|
Upload a custom .ico, .png, or .svg favicon to display in browser tabs and bookmarks. |
Upload Favicon Button | Browser Tab Icon |
|
Primary Accent Color & Presets
|
Interactive Hex/RGB color picker + 1-click curated theme presets (Neon Green #4AE54A, Royal Blue #2563EB, Violet Glow #8B5CF6, Sunset Rose #F43F5E, Emerald #10B981, Amber Gold #F59E0B). |
Color Presets & Picker | Buttons, Badges, Links |
|
Branded Legal & CMS Pages
|
Publish custom branded Terms of Service, Privacy Policy, and Refund Policy pages accessible via public routes (/[slug]). |
Super Admin → Pages | Public Legal URLs |
Step-by-Step White-Labeling Workflow
Dynamic Runtime Theme Engine
WhatsOmni uses a centralized React Context Provider (BrandingThemeProvider) that wraps the entire Next.js application. On initial load, it fetches public branding settings from GET /platform/settings and injects the following CSS custom properties onto the :root element:
| CSS Custom Property | Default Value | Target Scope & Elements Styled |
|---|---|---|
--accent-green |
#4AE54A (or custom admin primary color) |
Active sidebar indicators, highlight SVG underlines, badges, toggles, and live presence pulse dots. |
--accent-green-2 |
#3DD43D (calculated hover tone) |
Hover states for primary buttons, interactive cards, and active links. |
--fg-primary |
#0A0A0A |
Main headings, high-contrast title typography, executive buttons, and icon strokes. |
--border-focus |
#0A0A0A |
Active focus borders for inputs, search modals, dropdown menus, and form controls. |
Tenant Workspace & Client Channel Customization
In addition to platform-level white-labeling, individual B2B tenants can personalize their workspace and client-facing communication channels:
| Tenant Channel / Area | Customizable Attributes | Tenant Route | Client Viewport |
|---|---|---|---|
|
Calendar Booking Portal
|
Host profile avatar, workspace company logo, custom booking slug (/book/[slug]), meeting duration options, and appointment confirmation screens. |
/appointments/settings | Public Booking URL |
|
Workspace Profile
|
Tenant business name, company avatar/logo, default currency, time zone, and localized date/time formatting. | /settings | Tenant Dashboard Shell |
Download & Unzip the Package
Extract the WhatsOmni platform release archive and inspect the repository architecture.
The WhatsOmni software distribution package contains the complete multi-tenant platform, including the Laravel 12 backend REST API, Next.js 16 frontend web application, Baileys WhatsApp microservice, Docker container configurations, and database migration schemas. Extract the archive onto your local workstation or server host to get started.
Package Contents & Repository Layout
Once extracted, your root project directory will contain the following primary folders and configuration manifests:
| Directory / File | Scope & Technological Role | Runtime Engine |
|---|---|---|
|
backend/
|
Laravel 12.x REST API, Eloquent ORM, Reverb WebSockets daemon, Redis queues, and multi-tenant schema isolation. | PHP 8.2 / 8.3 (FPM) |
|
frontend/
|
Next.js 16 App Router, React 19, Tailwind CSS v4, Lucide icons, React Flow visual builder, and 10-language localized UI. | Node.js 20.x (LTS) |
|
baileys-worker/
|
Node.js Express microservice managing unofficial WhatsApp Multi-Device sockets and QR session handshakes. | Node.js 20.x (Port 5001) |
|
docker/
|
Production Dockerfiles, Nginx reverse proxy templates, PHP-FPM alpine build configurations, and entrypoint scripts. | Docker Compose |
|
database/
|
Database schema archives, factory fixtures, seeders, and multi-tenant migration history files. | MySQL 8.0 |
|
Makefile
|
Pre-configured CLI shortcuts for single-command container orchestration, migrations, seeding, and log inspection. | GNU Make / Bash |
Extracting the Package via Terminal
Execute the following terminal commands to extract the release archive and switch into the project root directory:
unzip whatsomni.zip -d whatsomni-saas
cd whatsomni-saas
Setup MySQL Database & Redis
Create the MySQL 8.0 relational database schema and verify the in-memory Redis message broker connection.
WhatsOmni relies on MySQL 8.0 (or MariaDB 10.11+) with full utf8mb4 multibyte character support to store multi-tenant records, visual flow graphs, and message transcripts. In-memory Redis is used as the asynchronous queue broker and WebSockets cache store.
Create MySQL Database
Log in to your MySQL terminal client or server CLI and create the dedicated database instance with strict UTF-8 collation:
mysql -u root -p -e "CREATE DATABASE whatsomni_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
php artisan migrate during configuration, Laravel 12 automatically detects if the database does not exist on your MySQL server and prompts: "The database whatsomni_db does not exist on the mysql connection. Would you like to create it? (yes/no)". Simply press Enter (yes) and Laravel will automatically create the database with full utf8mb4_unicode_ci support and execute all migrations for you.
Verify Redis Service Connection
Ensure that the Redis server daemon is running and listening on default port 6379:
redis-cli ping
# Expected response: PONG
Using Graphical Database Clients
If you prefer a visual database manager to inspect tables or manage database instances, use any of the following tools:
| Database Client | Configuration Steps | Recommended Driver |
|---|---|---|
| TablePlus | Create a new MySQL connection with Host: 127.0.0.1, Port: 3306, User: root, and Database: whatsomni_db. |
MySQL 8.0 Driver |
| phpMyAdmin | Access your phpMyAdmin web dashboard, navigate to Databases, enter whatsomni_db with collation utf8mb4_unicode_ci, and click Create. |
Web UI |
| DBeaver | Click New Database Connection ➔ MySQL, input credentials, test the connection, and apply. | JDBC Connector |
Install Required Dependencies
Download and install PHP Composer packages for Laravel 12 and NPM dependencies for Next.js 16 and Baileys worker.
WhatsOmni is architected with modern modular services. Follow the steps below to verify your local CLI runtimes and install required third-party packages for all three layers.
Verify CLI Runtimes
Verify that your system meets the minimum runtime version constraints before proceeding with package installation:
php -v # Must be PHP 8.2 or 8.3
composer -v # PHP Dependency Manager
node -v # Must be Node.js 18.18+ or 20.x LTS
npm -v # Node Package Manager
Install Backend PHP Dependencies
Navigate to the backend/ directory and install Composer dependencies with optimized class mapping:
cd backend
composer install --optimize-autoloader
Install Frontend Next.js Dependencies
Switch to the frontend/ directory and install Node.js modules for the React 19 client and UI components:
cd ../frontend
npm install
Install WhatsApp Baileys Worker Dependencies
Switch to the baileys-worker/ microservice directory and install its required WebSocket and cryptography packages:
cd ../baileys-worker
npm install
Core Package Breakdown
| Framework / Layer | Primary Libraries & Packages | Purpose |
|---|---|---|
| Laravel Backend | laravel/framework (12.x), laravel/sanctum, laravel/reverb, predis/predis, stripe/stripe-php, resend/resend-php |
REST API, token authentication, live WebSocket streams, and Stripe billing. |
| Next.js Frontend | next (16.x), react (19.x), @xyflow/react (React Flow), lucide-react, tailwindcss (v4), next-intl, sonner |
Interactive SSR/ISR dashboard, flow canvas, 10-language translations, and dark mode. |
| Baileys Worker | @whiskeysockets/baileys, express, ws, pino, qrcode-terminal |
Unofficial WhatsApp Multi-Device session manager and QR stream pairing. |
Set Up Configuration Files (.env)
Create your environment settings files to connect database tables, Redis queues, Reverb WebSockets, and external APIs.
Both frontend and backend services utilize standardized .env files to manage runtime environment variables, database credentials, WebSocket broadcast ports, and security encryption keys.
Copy Environment Templates
Run the following commands from the root directory to generate active settings files from templates:
# 1. Copy backend environment configuration
cp backend/.env.example backend/.env
# 2. Copy frontend Next.js environment configuration (.env.local or .env)
cp frontend/.env.example frontend/.env.local
# 3. Copy WhatsApp Baileys microservice environment configuration
cp baileys-worker/.env.example baileys-worker/.env
Generate Application Key & Run Migrations
Generate the Laravel 32-byte AES encryption key, create the public storage symbolic link, and execute the database migration and seeder suite:
cd backend
php artisan key:generate
php artisan storage:link
php artisan migrate --seed
php artisan migrate --seed will prompt: "The database whatsomni does not exist on the mysql connection. Would you like to create it? (yes/no)". Type yes (or press Enter) and Laravel 12 will automatically create the database and seed the default records.
.env files are strictly reserved for core low-level infrastructure (Database credentials, Redis host, Reverb WebSocket ports, Search Engine daemon, and Worker microservice URL). All third-party integration keys and OAuth client credentials—including Payment Gateways (Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, MyFatoorah), Social & Messaging Channels (Meta, WhatsApp Cloud API, Instagram, Messenger, TikTok, LinkedIn, Telegram, SMS Gateways), CRM & Appointments (Google Sheets/Calendar, HubSpot, Salesforce, Zoho), Video Meetings (Zoom, Microsoft Teams), E-Commerce (Shopify, WooCommerce), Transactional Email (Resend, SMTP), and Central AI Providers (OpenAI, Claude, Gemini, Groq, DeepSeek, xAI, Mistral, OpenRouter)—are configured and managed directly inside the Super Admin Control Panel (stored encrypted with AES-256 in the database). You never need to edit .env files or restart background services when configuring or rotating integration keys!
Backend Configuration Parameters (backend/.env)
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| APP_NAME | WhatsOmni |
Platform name used in email templates and system notifications. |
| APP_ENV | local |
Application runtime environment mode (local or production). |
| APP_KEY | base64:... |
32-byte AES encryption key generated via php artisan key:generate. |
| APP_DEBUG | true |
Detailed error stack traces (must be false in production). |
| APP_TIMEZONE | UTC |
Default application server time zone. |
| APP_URL | http://localhost:8000 |
Full backend REST API origin URL. Used as the authoritative host for OAuth callback endpoints (TikTok, LinkedIn, Meta), webhook receivers (/api/webhooks/...), and automation webhook triggers (/api/v1/webhooks/flows/...). |
| FRONTEND_URL | http://localhost:3000,http://localhost:3001,http://127.0.0.1:3000,http://127.0.0.1:3001 |
Comma-separated frontend SPA client origins for CORS policy and post-OAuth redirection (safely redirecting tenants back to /channels or /ecommerce/stores after completing third-party OAuth). |
| SANCTUM_STATEFUL_DOMAINS | localhost:3000,localhost:3001,127.0.0.1:3000,127.0.0.1:3001 |
Hostnames allowed for stateful Sanctum session cookies. |
| DB_CONNECTION | mysql |
Database driver engine (mysql, pgsql, or sqlite). |
| DB_HOST | 127.0.0.1 |
MySQL database server host IP or domain. |
| DB_PORT | 3306 |
MySQL database listening port. |
| DB_DATABASE | whatsomni |
Name of your MySQL database schema. |
| DB_USERNAME | root |
Database user authentication username. |
| DB_PASSWORD | (your_password) |
Database user authentication password. |
| SESSION_DRIVER | file |
Session storage driver (file, redis, or database). |
| BROADCAST_CONNECTION | reverb |
Real-time message broadcasting driver via Laravel Reverb. |
| QUEUE_CONNECTION | sync (or redis) |
Asynchronous job queue broker (redis recommended for production). |
| CACHE_STORE | database (or redis) |
Cache repository driver. |
| REDIS_HOST | 127.0.0.1 |
Redis server hostname or IP address. |
| REDIS_PORT | 6379 |
Redis server default listening port. |
| REVERB_APP_ID | your_reverb_app_id |
Reverb WebSocket server application ID. |
| REVERB_APP_KEY | your_reverb_app_key |
Reverb public application key (must match frontend). |
| REVERB_APP_SECRET | your_reverb_app_secret |
Reverb backend signing secret. |
| REVERB_HOST | localhost |
Reverb WebSocket server host binding. |
| REVERB_PORT | 8080 |
Reverb WebSocket server listening port. |
| REVERB_SCHEME | http |
Reverb protocol scheme (http or https). |
| SCOUT_DRIVER | meilisearch |
Laravel Scout search indexing driver. |
| MEILISEARCH_HOST | http://127.0.0.1:7700 |
Meilisearch vector & full-text search host URL. |
| MEILISEARCH_KEY | masterKey123 |
Meilisearch master API key. |
| BAILEYS_WORKER_URL | http://localhost:5001 |
Bridge endpoint to the WhatsApp Baileys microservice. |
| BAILEYS_SECRET_TOKEN | whatsomni_baileys_secret_key |
Shared HMAC secret token securing microservice communication. |
| AWS_ACCESS_KEY_ID / SECRET | (optional) |
AWS S3 credentials for cloud asset and media file storage. |
| AWS_BUCKET / AWS_DEFAULT_REGION | (optional) / us-east-1 |
AWS S3 bucket name and AWS region identifier. |
| INTEGRATIONS_CONFIG_MODE | database (Default) |
All third-party OAuth credentials, payment gateways, and AI API keys are dynamically configured via the Super Admin Control Panel (/superadmin/settings/integrations). |
Backend Template File (backend/.env.example)
The complete template manifest provided in the backend/ directory:
APP_NAME=WhatsOmni
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://localhost:8000
FRONTEND_URL=http://localhost:3000,http://localhost:3001,http://127.0.0.1:3000,http://127.0.0.1:3001
SANCTUM_STATEFUL_DOMAINS=localhost:3000,localhost:3001,127.0.0.1:3000,127.0.0.1:3001
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
# Database Configuration (MySQL / PostgreSQL / SQLite)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=whatsomni
DB_USERNAME=root
DB_PASSWORD=
# Session Configuration
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
# Broadcasting, Filesystem & Queues
BROADCAST_CONNECTION=reverb
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
# Cache Configuration
CACHE_STORE=database
CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
# Redis Configuration
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
VITE_APP_NAME="${APP_NAME}"
# Laravel Reverb (Realtime WebSocket Server)
REVERB_APP_ID=your_reverb_app_id
REVERB_APP_KEY=your_reverb_app_key
REVERB_APP_SECRET=your_reverb_app_secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
# Meilisearch Scout Vector & Full-Text Search (Knowledge Base)
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=masterKey123
# Google Sheets & Google OAuth Integration
GOOGLE_CLIENT_ID=your_google_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:8000/api/integrations/google/callback
# HubSpot CRM Integration
HUBSPOT_CLIENT_ID=your_hubspot_client_id
HUBSPOT_CLIENT_SECRET=your_hubspot_client_secret
# Salesforce CRM Integration
SALESFORCE_CLIENT_ID=dummy-client-id-for-salesforce-crm
SALESFORCE_CLIENT_SECRET=dummy-client-secret-for-salesforce-crm
# Zoho CRM Integration
ZOHO_CLIENT_ID=dummy-client-id-for-zoho-crm
ZOHO_CLIENT_SECRET=dummy-client-secret-for-zoho-crm
# Zoom Integration
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret
ZOOM_REDIRECT_URI=http://localhost:8000/api/integrations/zoom/callback
# Microsoft Teams Integration
TEAMS_CLIENT_ID=your_teams_client_id
TEAMS_CLIENT_SECRET=your_teams_client_secret
TEAMS_REDIRECT_URI=http://localhost:8000/api/integrations/teams/callback
# Mail & Resend Configuration
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@whatsomni.com"
MAIL_FROM_NAME="${APP_NAME}"
RESEND_KEY=
RESEND_API_KEY=
# AI Provider API Keys (Optional defaults / managed via SuperAdmin DB)
OPENAI_API_KEY=
GROQ_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
# AWS S3 Cloud Storage
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
# Baileys WhatsApp Microservice Worker
BAILEYS_WORKER_URL=http://localhost:5001
BAILEYS_SECRET_TOKEN=whatsomni_baileys_secret_key
Frontend Configuration Parameters (frontend/.env.local)
The Next.js 16 frontend loads variables from frontend/.env.local (or frontend/.env):
| Variable Name | Example / Default Value | Description & Purpose |
|---|---|---|
| NEXT_PUBLIC_BACKEND_URL | http://localhost:8000 |
Base URL pointing to the Laravel backend REST API. Used by the Next.js client & SSR engine for API communication, dynamic developer redirect URIs, webhook endpoint templates, flow triggers, and media asset paths (/storage/...). |
| NEXT_PUBLIC_REVERB_APP_KEY | whatsomni_reverb_key |
Public key matching REVERB_APP_KEY in backend .env. |
| NEXT_PUBLIC_REVERB_HOST | localhost |
WebSocket connection host domain. |
| NEXT_PUBLIC_REVERB_PORT | 8080 |
WebSocket port (use 443 in live production with SSL). |
| NEXT_PUBLIC_REVERB_SCHEME | http |
WebSocket transport protocol (http or https in production). |
Frontend Template File (frontend/.env.example)
The complete template manifest provided in the frontend/ directory:
# WhatsOmni Frontend Environment Configuration
# Backend API Base URL
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
# Realtime WebSocket Broadcasting (Laravel Reverb)
NEXT_PUBLIC_REVERB_APP_KEY=whatsomni_reverb_key
NEXT_PUBLIC_REVERB_HOST=localhost
NEXT_PUBLIC_REVERB_PORT=8080
NEXT_PUBLIC_REVERB_SCHEME=http
Baileys Microservice Configuration (baileys-worker/.env)
| Variable Name | Default Value | Description & Purpose |
|---|---|---|
| PORT | 5001 |
Internal Express microservice port. |
| LARAVEL_API_URL | http://localhost:8000 |
Webhook URL for posting incoming WhatsApp events to Laravel. |
| BAILEYS_SECRET_TOKEN | whatsomni_baileys_secret_key |
Shared HMAC security token matching BAILEYS_SECRET_TOKEN in backend .env. |
Baileys Worker Template File (baileys-worker/.env.example)
The complete template manifest provided in the baileys-worker/ directory:
PORT=5001
LARAVEL_API_URL=http://localhost:8000
BAILEYS_SECRET_TOKEN=whatsomni_baileys_secret_key
Start Local Application
Launch the development server stack natively across terminal tabs or using Docker Compose.
WhatsOmni can be started either natively by running development processes across separate terminal tabs or automatically with a single command via Docker Compose.
Option A: Native Multi-Terminal Startup (Manual Mode)
Open 4 separate terminal windows or tabs to run the services concurrently:
cd backend
php artisan serve --port=8000
cd backend
# Process background jobs, campaigns & AI agent tasks
php artisan queue:listen --tries=1
# In another terminal tab: Start Reverb WebSocket server
php artisan reverb:start --port=8080
cd frontend
npm run dev
cd baileys-worker
node server.js
Option B: Docker Compose Startup (1-Command)
If you have Docker Desktop or Colima installed, launch the entire containerized ecosystem using the Makefile:
# Start all containers in development mode
make dev-up
# Run migrations and initial seeders inside the container
make migrate
make seed
# Stream live container logs
make logs
Local Access Endpoints & Default Credentials
| Service / Panel | Access URL | Role & Notes |
|---|---|---|
| Frontend Web Application | http://localhost:3000 | User signup, workspace onboarding, shared inbox, and visual flow canvas. |
| SaaS Super Admin Console | http://localhost:3000/superadmin/login | Platform configuration, multi-currency Stripe plans, and tenant control plane. Default Login: admin@whatsomni.com / Password123! |
| Backend REST API | http://127.0.0.1:8000/api/health | REST API health probe (returns {"status":"healthy"}). |
| Reverb WebSockets Daemon | ws://127.0.0.1:8080 |
Real-time message streaming server for omnichannel inbox updates. |
| Baileys WhatsApp Microservice | http://127.0.0.1:5001 | Internal socket service for WhatsApp QR code pairing. |
Production Live Deployment
Deploy WhatsOmni on Ubuntu 22.04 / 24.04 LTS servers with Nginx, PHP 8.3-FPM, Supervisor, PM2, and SSL encryption.
For high-availability production environments on cloud providers like DigitalOcean, AWS EC2, Hetzner, or Linode, follow this hardened production guide.
Server Provisioning & Dependencies
Connect to your clean Ubuntu 22.04 or 24.04 server via SSH and install the system packages:
# 1. Update system packages
sudo apt update && sudo apt upgrade -y
# 2. Install PHP 8.3-FPM, MySQL drivers, Redis, and extensions
sudo apt install -y php8.3-fpm php8.3-cli php8.3-mysql php8.3-mbstring \
php8.3-xml php8.3-bcmath php8.3-curl php8.3-zip php8.3-gd php8.3-sqlite3 \
php8.3-redis unzip curl git nginx supervisor redis-server
# 3. Install Composer globally
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# 4. Install Node.js 20 LTS & PM2 process manager
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g pm2
Deploy Code & Configure Permissions
Clone the project repository into /var/www/whatsomni and build the backend application:
# 1. Clone repository
cd /var/www
sudo git clone <YOUR_REPOSITORY_URL> whatsomni
sudo chown -R $USER:www-data /var/www/whatsomni
# 2. Deploy Backend
cd /var/www/whatsomni/backend
composer install --no-dev --optimize-autoloader
cp .env.example .env
nano .env # Fill in production DB, APP_URL, FRONTEND_URL, and Reverb keys
# 3. Initialize Key, Storage Link & Database Migrations
php artisan key:generate
php artisan storage:link
php artisan migrate --force
# 4. Cache configurations for peak production performance
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
# 5. Set proper file permissions
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache
Build Frontend & Manage PM2 Services
Build the Next.js frontend production bundle and launch the microservices under PM2:
# 1. Build and Start Frontend (Port 3000)
cd /var/www/whatsomni/frontend
npm ci
cp .env.example .env.production
nano .env.production # Set NEXT_PUBLIC_BACKEND_URL and Reverb keys
npm run build
pm2 start npm --name "whatsomni-frontend" -- start -- -p 3000
# 2. Start WhatsApp Baileys Worker (Port 5001)
cd /var/www/whatsomni/baileys-worker
npm ci
cp .env.example .env
mkdir -p storage && sudo chown -R $USER:www-data storage
pm2 start server.js --name "baileys-worker"
# 3. Save PM2 state for automatic reboot persistence
pm2 save
pm2 startup
Configure Supervisor Daemons
Create dedicated Supervisor configurations to keep the Laravel Queue Worker and Reverb WebSockets permanently active:
[program:whatsomni-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/whatsomni/backend/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/whatsomni/backend/storage/logs/worker.log
stopwaitsecs=360
[program:whatsomni-reverb]
command=php /var/www/whatsomni/backend/artisan reverb:start --host=0.0.0.0 --port=8080
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/www/whatsomni/backend/storage/logs/reverb.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
Configure System Crontab
Add the Laravel Task Scheduler to the system crontab (`sudo crontab -e -u www-data`):
* * * * * cd /var/www/whatsomni/backend && php artisan schedule:run >> /dev/null 2>&1
Nginx VirtualHost & Free Let's Encrypt SSL
Create the Nginx configuration file at /etc/nginx/sites-available/whatsomni:
# 1. Frontend SPA (yourdomain.com)
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 2. Backend REST API & Reverb WebSockets (api.yourdomain.com)
server {
listen 80;
server_name api.yourdomain.com;
root /var/www/whatsomni/backend/public;
index index.php;
# Reverb WebSocket Proxy
location /app {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
# Laravel REST API Routing
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
sudo ln -s /etc/nginx/sites-available/whatsomni /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
# Issue Let's Encrypt SSL Certificates
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d api.yourdomain.com
Payment Gateways & Global Billing
WhatsOmni provides a comprehensive billing architecture with 7 enterprise payment gateways (Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, and MyFatoorah). Platform operators can enable one or multiple gateways simultaneously, allowing global customers to subscribe using their preferred regional currencies, credit cards, mobile wallets, UPI, Pix, and instant digital payment systems.






Gateway 1: Stripe Setup & Webhooks
pk_live_...) and reveal the Secret key (sk_live_...). Enter these into Super Admin → Settings → Gateways.https://api.yourdomain.com/api/billing/webhook
Select events:
checkout.session.completed, customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed. Copy the generated Signing secret (whsec_...).
Gateway 2: PayPal Subscriptions Setup
https://api.yourdomain.com/api/billing/paypal/webhook and subscribe to BILLING.SUBSCRIPTION.ACTIVATED, BILLING.SUBSCRIPTION.CANCELLED, PAYMENT.SALE.COMPLETED. Copy the Webhook ID.Gateway 3: Razorpay Setup (India / UPI / Cards)
rzp_live_...) and Key Secret.https://api.yourdomain.com/api/billing/razorpay/webhook. Set a secret passkey and subscribe to payment.captured, subscription.charged, subscription.cancelled.Gateway 4: Paystack Setup (Africa / NGN / GHS / ZAR)
pk_live_...) and Secret Key (sk_live_...). Set the Live Webhook URL to https://api.yourdomain.com/api/billing/paystack/webhook.Gateway 5: Flutterwave Setup (Cards & Mobile Money)
https://api.yourdomain.com/api/billing/flutterwave/webhook and define a Secret Hash matching your backend configuration.Gateway 6: Mercado Pago Setup (Latin America / Pix / Cards)
APP_USR-... or TEST-...) and Access Token (APP_USR-... or TEST-...).https://api.yourdomain.com/api/webhooks/billing/mercadopago. Select subscription events (subscription_preapproval) and payment events. Copy the Webhook Secret Key for HMAC signature verification.Gateway 7: MyFatoorah Setup (GCC / MENA / KNET / Mada)
https://api.yourdomain.com/api/webhooks/billing/myfatoorah. Enable transaction status notifications and copy the Secret Key to verify inbound webhook signatures.Super Admin Payment Gateways Configuration
In WhatsOmni, payment gateway credentials are not stored in static environment files. Super Admins configure each payment gateway dynamically directly in the Super Admin Control Panel → Settings → Payment Gateways (/superadmin/settings/gateways). Settings are saved encrypted in the database and apply instantly without server restarts:
| Payment Gateway | Super Admin UI Fields (/superadmin/settings/gateways) | Capabilities & Webhook Endpoint |
|---|---|---|
![]() |
Mode (Test / Live)Publishable Key (pk_...)Secret Key (sk_...)Webhook Secret (whsec_...)
|
Multi-currency credit/debit card subscriptions, Apple Pay, Google Pay. Webhook URL: https://api.yourdomain.com/api/billing/stripe/webhook
|
|
|
Mode (Sandbox / Live)Client IDClient SecretWebhook ID
|
Global PayPal wallet payments and recurring subscription billing. Webhook URL: https://api.yourdomain.com/api/billing/paypal/webhook
|
![]() |
Mode (Test / Live)Key ID (rzp_...)Key SecretWebhook Secret
|
Indian Rupee (INR) payments, UPI, NetBanking, and recurring mandate cards. Webhook URL: https://api.yourdomain.com/api/billing/razorpay/webhook
|
![]() |
Mode (Test / Live)Public Key (pk_...)Secret Key (sk_...)Webhook Secret
|
African payment processing across Nigeria (NGN), Ghana (GHS), South Africa (ZAR), and Kenya (KES). Webhook URL: https://api.yourdomain.com/api/billing/paystack/webhook
|
![]() |
Mode (Test / Live)Public Key (FLWPUBK_...)Secret Key (FLWSECK_...)Secret Hash / Encryption Key
|
Pan-African payments, Mobile Money (M-Pesa, MTN, Airtel), and international card processing. Webhook URL: https://api.yourdomain.com/api/billing/flutterwave/webhook
|
![]() |
Mode (Sandbox / Live)Public Key (APP_USR-... / TEST-...)Access Token / Secret KeyWebhook Secret
|
Latin American subscriptions and payments (BRL, ARS, MXN, CLP, COP, PEN, UYU, USD), Pix, cards, and recurring preapproval subscriptions. Webhook URL: https://api.yourdomain.com/api/webhooks/billing/mercadopago
|
![]() |
Mode (Sandbox / Live)API Key / TokenPublic KeyWebhook Secret
|
GCC and Middle Eastern payments (KWD, SAR, AED, BHD, QAR, OMR, EGP, JOD, USD, EUR), KNET, Mada, Apple Pay, and automated recurring subscription invoices. Webhook URL: https://api.yourdomain.com/api/webhooks/billing/myfatoorah
|
Google Calendar & Sheets Setup
The Google integration provides 2-way Google Calendar synchronization for multi-host appointment scheduling, busy-slot conflict detection, and real-time lead appending to Google Sheets directly from Visual Flows.
Create Google Cloud Project & Enable APIs
- Go to the Google Cloud Console and create a new project named WhatsOmni Integration.
- Navigate to APIs & Services → Library.
- Search for and enable both of the following APIs:
- Google Calendar API
- Google Sheets API
Configure OAuth Consent Screen & Credentials
- Navigate to APIs & Services → OAuth consent screen.
- Select External User Type and click Create.
- Fill in the Application Name (
WhatsOmni), User Support Email, and Developer Contact Email. - Add the required OAuth scopes:
https://www.googleapis.com/auth/calendar.events(Manage calendar appointments)https://www.googleapis.com/auth/spreadsheets(Append and update rows in Google Sheets)
- Go to APIs & Services → Credentials, click Create Credentials → OAuth client ID.
- Select Web application as the Application Type.
- Under Authorized redirect URIs, add your backend callback endpoint:
https://api.yourdomain.com/api/integrations/google/callback - Click Create and copy the generated Client ID and Client Secret. Enter them directly into the Super Admin Control Panel → Settings → Integrations (Google).
Super Admin Google Integration Configuration
Google OAuth credentials are not configured in static .env files. The platform administrator configures Google developer credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and loaded at runtime:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Google Client ID | Settings → Integrations → Google |
Google Cloud OAuth 2.0 Web Application Client ID for tenant authorization handshakes. |
| Google Client Secret | Settings → Integrations → Google |
Confidential OAuth 2.0 Client Secret token stored encrypted in database. |
| Authorized Redirect URI | Settings → Integrations → Google |
Authoritative OAuth callback endpoint (https://api.yourdomain.com/api/integrations/google/callback). |
Transactional Email (Resend & SMTP)
In WhatsOmni, transactional email dispatch is managed dynamically through the Super Admin Control Plane and stored encrypted in the database. You do not need to modify static .env files or restart backend server processes to change mail providers or update credentials.
Setup Option 1: Resend API (Recommended)
Resend provides ultra-fast delivery, real-time analytics, and verified domain reputation without legacy SMTP overhead:
- Create a free account at resend.com.
- Navigate to Domains and add your sending domain (e.g.,
yourdomain.com). Add the provided DKIM and SPF DNS records to your DNS provider (Cloudflare, GoDaddy, Route53, etc.). - Go to API Keys and create an API key with Full Access permissions (starts with
re_...). - Log in to your WhatsOmni Super Admin Dashboard, navigate to Settings → Mail Configuration, and select Resend as the driver:
- API Key: Paste your
re_...API token. - From Address: Enter your verified sending email (e.g.,
notifications@yourdomain.com). - From Name: Enter your brand/platform name (e.g.,
WhatsOmni).
- API Key: Paste your
- Enter your personal email in the Test Recipient input and click Send Test Email to verify the connection live.
- Click Save Settings to activate.
Setup Option 2: Custom SMTP Server Relay
If you use a traditional transactional SMTP relay provider (such as Amazon SES, Postmark, SendGrid, Mailgun, Brevo, or a private Postfix server):
- Log in to your WhatsOmni Super Admin Dashboard and navigate to Settings → Mail Configuration.
- Select SMTP as the mail driver and fill in your relay parameters:
- SMTP Host: Your mail server hostname (e.g.,
smtp.mailgun.orgoremail-smtp.us-east-1.amazonaws.com). - SMTP Port:
587(for TLS / STARTTLS) or465(for SSL). - Encryption: Select
TLS,SSL, orNone. - Username: Your SMTP username or API user.
- Password: Your SMTP password or relay secret key.
- From Email Address: The sender address verified on your SMTP account.
- From Sender Name: The sender display name visible in the inbox.
- SMTP Host: Your mail server hostname (e.g.,
- Enter your email into the Test Recipient box and click Send Test Email. WhatsOmni will attempt an immediate live SMTP handshake and confirm success.
- Click Save Settings to persist your configuration.
Database Storage & Runtime Resolution
| Setting Key (Database) | Supported Values | System Role & Behavior |
|---|---|---|
| mail_driver | resend | smtp |
Active transactional mail transport driver loaded by Laravel at runtime. |
| mail_from_address | noreply@yourdomain.com |
Global sender email address displayed on all transactional emails. |
| mail_from_name | WhatsOmni Notifications |
Display name shown to recipients in their email client inbox. |
| mail_resend_api_key | re_123456789_... |
Encrypted Resend API authentication bearer token. |
| mail_smtp_host | smtp.mailgun.org |
Remote hostname for standard SMTP mail relays. |
| mail_smtp_port | 587 / 465 |
TCP network port for the SMTP connection. |
| mail_smtp_username | postmaster@yourdomain.com |
SMTP authentication login credential. |
| mail_smtp_password | •••••••••••• |
Encrypted SMTP relay password or secret token. |
| mail_smtp_encryption | tls | ssl | none |
Socket transport layer security protocol. |
HubSpot CRM Integration
Connect HubSpot CRM to synchronize omnichannel contacts, push conversation summaries, and trigger deal pipeline creation whenever an AI chatbot or visual flow qualifies a new inbound prospect.
Create HubSpot Developer App
- Log in to your HubSpot Developer Account and click Create app.
- Enter an App Name (e.g.
WhatsOmni CRM Bridge) and set up the logo and description. - Navigate to the Auth tab and enter your callback redirect URL:
https://api.yourdomain.com/api/integrations/crm/callback/hubspot - Under Scopes, select the following permissions:
crm.objects.contacts.read&crm.objects.contacts.writecrm.objects.deals.read&crm.objects.deals.writecrm.schemas.contacts.read
- Save changes and copy the Client ID and Client Secret. Enter them into the Super Admin Control Panel → Settings → Integrations (HubSpot CRM).
Super Admin HubSpot CRM Configuration
HubSpot OAuth credentials are not configured in static .env files. The platform administrator configures HubSpot developer credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and applied instantly:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| HubSpot Client ID | Settings → Integrations → HubSpot |
HubSpot Developer App Client ID for OAuth handshake authentication. |
| HubSpot Client Secret | Settings → Integrations → HubSpot |
Confidential Client Secret token stored encrypted for token exchange. |
| Redirect Callback URI | Settings → Integrations → HubSpot |
Authorized callback route (https://api.yourdomain.com/api/integrations/crm/callback/hubspot). |
Salesforce CRM Integration
Integrate Salesforce CRM to automatically convert high-intent WhatsApp and Instagram conversations into Salesforce Leads, update Opportunities, and trigger enterprise sales rep assignment.
Create Salesforce Connected App
- Log in to your Salesforce Setup Console (
Setup → App Manager). - Click New Connected App in the top right corner.
- Enter Connected App Name (
WhatsOmni Connector) and Contact Email. - Check Enable OAuth Settings.
- Set the Callback URL:
https://api.yourdomain.com/api/integrations/crm/callback/salesforce - Under Selected OAuth Scopes, add:
Manage user data via APIs (api)Perform requests at any time (refresh_token, offline_access)
- Save the app, click Manage Consumer Details, and copy the Consumer Key (Client ID) and Consumer Secret. Enter them into the Super Admin Control Panel → Settings → Integrations (Salesforce CRM).
Super Admin Salesforce CRM Configuration
Salesforce credentials are not configured in static .env files. Super Admins configure Salesforce Connected App credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and applied instantly:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Salesforce Consumer Key | Settings → Integrations → Salesforce |
Salesforce Connected App Consumer Key (Client ID) for enterprise OAuth flows. |
| Salesforce Consumer Secret | Settings → Integrations → Salesforce |
Confidential Consumer Secret token stored encrypted in database. |
| Callback URL | Settings → Integrations → Salesforce |
Authorized OAuth callback endpoint (https://api.yourdomain.com/api/integrations/crm/callback/salesforce). |
Zoho CRM Integration
Configure Zoho CRM Server-Based Client credentials to synchronize customer contacts, manage deals, and update lead status across US, EU, and IN regional data center clusters.
Create Zoho Server-Based Application
- Visit the Zoho API Console.
- Click Add Client and choose Server-based Applications.
- Enter Client Name (
WhatsOmni) and Homepage URL. - Under Authorized Redirect URIs, enter:
https://api.yourdomain.com/api/integrations/crm/callback/zoho - Click Create and copy the Client ID and Client Secret from the Client Secret tab. Enter them into the Super Admin Control Panel → Settings → Integrations (Zoho CRM).
Super Admin Zoho CRM Configuration
Zoho CRM credentials are not configured in static .env files. Super Admins configure Zoho Server-Based Client credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and applied instantly:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Zoho Client ID | Settings → Integrations → Zoho |
Zoho Server-Based Client ID generated in Zoho API Console. |
| Zoho Client Secret | Settings → Integrations → Zoho |
Confidential Zoho Client Secret token stored encrypted in database. |
| Authorized Redirect URI | Settings → Integrations → Zoho |
Authorized callback URL (https://api.yourdomain.com/api/integrations/crm/callback/zoho). |
Meta (WhatsApp, Instagram & Messenger)
Connect Meta for Developers to manage WhatsApp Cloud API (via seamless Embedded Signup or Manual BYOK), Facebook Page Messenger, and Instagram Direct customer inquiries, plus automated feed and reel publishing via the Social Posts Studio.
WhatsApp Cloud API: Onboarding Modes
whatsapp_business_messaging permissions, and supply their Phone Number ID and WABA ID.Create Meta Business App & Permissions
- Visit developers.facebook.com → My Apps → Create App.
- Select Business as the App Type and name it
WhatsOmni Suite. - Add the WhatsApp, Messenger, and Instagram Graph API products to your app.
- Navigate to App settings → Basic, copy your App ID and App Secret.
- Under Facebook Login for Business → Configurations, create a configuration for Embedded Signup with permissions:
whatsapp_business_messaging,whatsapp_business_management,pages_show_list,pages_messaging,instagram_basic,instagram_manage_messages,pages_manage_posts,instagram_content_publish. - Under Facebook Login for Business → Settings, add the OAuth Redirect URIs:
https://api.yourdomain.com/api/integrations/messenger/oauth/callbackhttps://api.yourdomain.com/api/integrations/instagram/oauth/callbackhttps://api.yourdomain.com/api/integrations/whatsapp/embedded/callback - Configure Webhooks under WhatsApp & Messenger Webhooks:
Callback URL:https://api.yourdomain.com/api/webhooks/channel/{connection_id}
Verify Token: Set your custom secret string matching your channel setup.
Super Admin Meta & Channels Configuration
Meta credentials are not configured in static .env files. The platform administrator sets up the Meta App credentials dynamically in the Super Admin Control Panel → Settings → Meta (or Super Admin → Channels). Settings are saved encrypted in the database and loaded at runtime:
| Super Admin Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Meta App ID | Settings → Meta & Channels |
Meta App ID used for WhatsApp Embedded Signup, Facebook Page OAuth, and Instagram Direct messaging. |
| Meta App Secret | Settings → Meta & Channels |
Confidential App Secret key used to exchange OAuth authorization codes for long-lived system tokens. |
| Embedded Signup Config ID | Settings → Meta & Channels |
Configuration ID generated in Facebook Login for Business to launch the 1-click WhatsApp onboarding modal. |
| Webhook Verify Token | Settings → Meta & Channels |
Custom verification token verified during Meta Webhook subscription handshakes. |
TikTok (Direct Messages & Video Kit)
Connect TikTok for Developers to manage direct customer conversations in the Unified Inbox with AI Copilot support, and schedule high-impact 9:16 short-form video posts and reels directly from the Social Posts Studio.
Create TikTok Developer App
- Visit the TikTok for Developers Portal and click Create an App.
- Add the Login Kit for Web product. Configure the Redirect URI:
https://api.yourdomain.com/api/integrations/tiktok/oauth/callback - Add the Direct Message API and Video Kit for Web products.
- Request the required permissions:
user.info.basic&user.info.profile(Account profile details)im.share& Direct Messaging scopes (2-way chat synchronization)video.upload&video.publish(Automated video scheduling)
- Copy your Client Key and Client Secret from App Details.
- Configure the Webhook receiver URL:
https://api.yourdomain.com/api/webhooks/channel/{connection_id}
Verify that your server handles TikTok's verification challenge via thett-security-tokenheader.
Super Admin TikTok Channel Configuration
TikTok credentials are not configured in static .env files. Super Admins configure TikTok developer credentials directly in the Super Admin Control Panel → Channels → TikTok (/superadmin/channels). Credentials are stored encrypted in the database and apply instantly:
| Super Admin Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Client Key | Channels → TikTok Settings |
TikTok for Developers App Client Key for Login Kit and DM synchronization. |
| Client Secret | Channels → TikTok Settings |
Confidential App Client Secret used for OAuth token exchanges and video uploading. |
| Webhook Security Token | Channels → TikTok Settings |
Signature token passed in tt-security-token headers for webhook event validation. |
LinkedIn (Content Publishing & Pages)
Connect LinkedIn Developer Portal to publish and schedule rich text updates, multi-image carousels, and high-definition video posts across Personal Profiles and Organization Company Pages from the WhatsOmni Social Posts Studio.
Create LinkedIn Developer App
- Sign in to the LinkedIn Developer Portal → Create App.
- Associate your LinkedIn Company Page and upload your app logo.
- Under the Products tab, add:
- Share on LinkedIn (Enables personal member profile publishing)
- Sign In with LinkedIn using OpenID Connect
- Community Management API (Required for Company Page administration)
- Under the Auth tab, configure the Authorized Redirect URL:
https://api.yourdomain.com/api/integrations/linkedin/callback - Copy the Client ID and Primary Client Secret.
Super Admin LinkedIn Channel Configuration
LinkedIn credentials are not configured in static .env files. Super Admins configure LinkedIn developer credentials directly in the Super Admin Control Panel → Channels → LinkedIn (/superadmin/channels). Credentials are stored encrypted in the database:
| Super Admin Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Client ID | Channels → LinkedIn Settings |
LinkedIn OAuth 2.0 Application Client ID. |
| Primary Client Secret | Channels → LinkedIn Settings |
Confidential Client Secret token for B2B Post and Video publishing access. |
| Supported Scope Types | Channels → LinkedIn Settings |
Organization Company Pages (Community Management API) and Personal Member Profiles (Share on LinkedIn). |
Zoom Video Conferencing
Connect Zoom App Marketplace to automatically create distinct Zoom meeting links, join URLs, and passcodes whenever clients schedule appointments via staff booking pages or chatbot prompts.
Create Zoom OAuth Application
- Sign in to the Zoom App Marketplace.
- Click Develop → Build App → General App.
- Under OAuth, enter your Redirect URL:
https://api.yourdomain.com/api/integrations/meetings/callback - Add the required Scopes:
meeting:write:admin&meeting:write(Create and manage video meetings)user:read:admin&user:read(Verify staff host profiles)
- Copy the Client ID and Client Secret from the App Credentials page. Enter them directly into the Super Admin Control Panel → Settings → Integrations (Zoom).
Super Admin Zoom Integration Configuration
Zoom credentials are not configured in static .env files. Super Admins configure Zoom App Marketplace OAuth credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and applied instantly:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Zoom Client ID | Settings → Integrations → Zoom |
Zoom Marketplace OAuth App Client ID. |
| Zoom Client Secret | Settings → Integrations → Zoom |
Confidential Zoom OAuth Client Secret stored encrypted in database. |
| Redirect Callback URI | Settings → Integrations → Zoom |
Callback URI receiving OAuth grant tokens (https://api.yourdomain.com/api/integrations/meetings/callback). |
Microsoft Teams Integration
Connect Microsoft Entra ID (Azure AD) to enable corporate Microsoft 365 calendar scheduling and automatically generate Microsoft Teams video conference join links for scheduled staff consultations.
Register Application in Azure Portal
- Sign in to the Azure Portal → Microsoft Entra ID → App registrations.
- Click New registration, name it
WhatsOmni Teams Integration. - Under Supported account types, choose Accounts in any organizational directory (Multitenant) and personal Microsoft accounts.
- Set Redirect URI (Web):
https://api.yourdomain.com/api/integrations/meetings/callback - Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions and add:
OnlineMeetings.ReadWrite(Create online meeting links)User.Read(Access user profile)offline_access(Maintain long-lived refresh tokens)
- Go to Certificates & secrets → New client secret, create a secret and copy its Value.
- Copy the Application (client) ID and Client Secret Value. Enter them directly into the Super Admin Control Panel → Settings → Integrations (Microsoft Teams).
Super Admin Microsoft Teams Configuration
Microsoft Entra ID / Teams credentials are not configured in static .env files. Super Admins configure Microsoft Azure application credentials directly in the Super Admin Control Panel → Settings → Integrations (/superadmin/settings/integrations). Settings are saved encrypted with AES-256 in the database and applied instantly:
| Super Admin UI Field | Location in Super Admin | Description & System Role |
|---|---|---|
| Application (Client) ID | Settings → Integrations → Microsoft Teams |
Microsoft Entra Application (Client) ID for corporate Teams meeting generation. |
| Client Secret Value | Settings → Integrations → Microsoft Teams |
Microsoft Entra Client Secret Value stored encrypted in database. |
| Redirect Callback URI | Settings → Integrations → Microsoft Teams |
OAuth callback endpoint (https://api.yourdomain.com/api/integrations/meetings/callback). |
Meilisearch Vector & Knowledge Base
Meilisearch powers the AI Assistant Knowledge Base, vector embeddings, PDF document search, and real-time multi-tenant product catalog lookups with sub-50ms response times.
Install & Start Meilisearch
Install Meilisearch on Ubuntu or run via Docker:
# Download and install binary
curl -L https://install.meilisearch.com | sh
sudo mv meilisearch /usr/local/bin/
# Start Meilisearch with Master Key
meilisearch --http-addr '127.0.0.1:7700' --master-key='your_secure_master_key'
Meilisearch Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| SCOUT_DRIVER | meilisearch |
Laravel Scout engine driver. |
| MEILISEARCH_HOST | http://127.0.0.1:7700 |
Host address and port for the Meilisearch instance. |
| MEILISEARCH_KEY | your_secure_master_key |
Master authorization API key for index management and queries. |
Import & Index Knowledge Articles
Sync all knowledge base articles into the search engine:
php artisan scout:import "App\Models\KnowledgeArticle"
WhatsApp Microservice & Cloud API
WhatsOmni supports a powerful Dual WhatsApp Architecture: instant QR-code device pairing via the native Baileys Microservice, or enterprise official high-volume messaging via the Meta WhatsApp Cloud API.
Mode A: Baileys Microservice (QR Code Pairing)
The Baileys worker is a Node.js microservice running on port 5001 that maintains persistent WebSocket connections with WhatsApp Web:
- Start the worker microservice:
cd baileys-worker && npm start - In your tenant dashboard, navigate to Channels → Connect WhatsApp.
- Select Scan QR Code, open WhatsApp on your phone (Linked Devices → Link a Device), and scan the live QR code generated in the dashboard.
- Session credentials are saved in
baileys-worker/sessions/and synchronized in real-time.
Mode B: Official Meta WhatsApp Business Cloud API
For high-throughput enterprise messaging with green badge verified numbers:
- Go to Meta for Developers → WhatsApp → API Setup.
- Copy your Phone Number ID, WhatsApp Business Account (WABA) ID, and generate a Permanent System User Access Token.
- Configure Webhooks under WhatsApp → Configuration:
Callback URL:https://api.yourdomain.com/api/webhooks/channel/{connection_id}(where{connection_id}is the channel connection ID shown on your channel setup screen)
Verify Token: Enter your configured webhook token matching the channel settings. - Subscribe to the
messageswebhook topic. - Enter the credentials into your tenant channel settings in WhatsOmni.
Baileys Worker Configuration Parameters
| Variable Name | Default Value | Description & Purpose |
|---|---|---|
| BAILEYS_WORKER_URL | http://localhost:5001 |
Backend .env pointer to the running Node.js Baileys microservice. |
| BAILEYS_SECRET_TOKEN | whatsomni_baileys_secret_key |
Shared HMAC security token matching between backend and worker. |
| PORT | 5001 |
HTTP port on which the Baileys Express server listens for requests. |
| LARAVEL_API_URL | http://localhost:8000 |
Laravel API base URL where the Baileys worker posts incoming WhatsApp events. |
Dashboard & Workspace Navigation
The WhatsOmni Customer Dashboard provides an intuitive, high-performance command center designed for modern sales, support, and marketing teams to orchestrate customer journeys across all messaging channels from a single unified interface.
Workspace Switcher & Multi-Brand Management
If your subscription plan supports multiple workspaces, you can manage different brands, company subsidiaries, or client accounts under a single login. Click the Workspace Selector in the top-left corner of the sidebar to switch between workspaces instantly without logging out.
Team Member Roles & Permissions Matrix
Invite team members and assign granular permission roles to control data access and security across your organization:
| Role | Scope & Level | Permissions & Capabilities |
|---|---|---|
| Workspace Owner | Full Workspace Control | Manage billing plans, invite/remove admins, delete workspace, configure custom domains, and manage platform API keys. |
| Administrator | Operations & Setup | Connect messaging channels, build AI agents, create visual flows, configure CRM pipelines, and manage staff schedules. |
| Support Agent | Support & CRM | View assigned unified inbox conversations, send messages, claim chats, update contact tags, and move deal stages. |
| Observer / Analyst | Read-Only Access | View analytics reports, review conversation logs, and inspect deal boards without editing or sending permissions. |
Multi-Workspace Management
Manage multiple distinct brands, corporate subsidiaries, or agency client accounts from a single user login. Each workspace maintains strict data isolation, dedicated messaging channels, separate CRM deal boards, custom visual flows, and allocated plan quotas.
workspace_id with zero leakage.Managing Workspaces Workflow
Channel Management (9 Channels)
WhatsOmni unifies customer interactions and social publishing across 9 communication channels into one real-time workspace stream. Connect direct messaging lines, social profiles, email boxes, and SMS carriers effortlessly.







Channel Assignment & Shared Inbox Isolation
In enterprise organizations with multiple brands or specialized departments (e.g. Sales, Technical Support, Billing), administrators can assign specific channels to designated team members. Agents only see and interact with messages from their assigned channels, preventing clutter and ensuring privacy.
How to Configure Channel Assignments
Unified Team Inbox & AI Copilot
The Unified Team Inbox consolidates customer messages across all 9 supported channels into a single shared inbox with real-time WebSocket updates, contact CRM drawer, E-Commerce cart context, and native AI Copilot assistance.
AI Copilot Core Capabilities
Conversation Lifecycle & Status Management
Team Collaboration & Private Notes
- Private Team Notes (Yellow Mode): Toggle to Private Note mode to post internal comments visible only to team members. Use
@colleaguementions to collaborate on complex escalation cases without the customer seeing the thread. - E-Commerce Live Context Drawer: If the contact has active carts or previous orders on connected Shopify or WooCommerce stores, their items, total value, and shipping status display immediately in the right sidebar.
Quick Replies Studio
The Quick Replies Studio allows customer service and sales teams to build, categorize, and instantly dispatch pre-approved canned responses with dynamic contact variables and rich media attachments using slash shortcut syntax (/shortcut).
/ followed by any keyword (e.g., /pricing, /refund) directly in the message composer to instantly populate replies.{{contact.first_name}}, {{agent.name}}, {{contact.email}}, and {{workspace.name}}.Quick Reply Creation & Dispatch Flow
welcome-enterprise), and select the target department category.{{contact.first_name}}. Upload any supporting media files or PDF documents./, select the desired shortcut snippet from the auto-complete dropdown, review the merged text, and hit Send.Meta Ads (Click-to-Chat) & Lead Journeys
Connect your Facebook and Instagram ad campaigns directly to WhatsApp, Messenger, and Instagram Direct. WhatsOmni captures campaign metadata, triggers zero-latency AI qualification chatbots, and tracks conversion ROAS across your deal pipeline.
Meta Ads Ingestion & Automated Pipeline Flow
Visual Drag-and-Drop Flow Builder
The Visual Flow Builder lets you design sophisticated multi-step conversational journeys, automated lead qualification sequences, appointment booking funnels, and CRM synchronizations on an intuitive drag-and-drop canvas without writing code.
Visual Lead Qualification Architecture
demo, quote, or scans a WhatsApp promotional QR code.$5,000 deal in CRM and routes to the Calendar Booking node; otherwise, it sends self-service product documentation.AI Agents & Knowledge Base (RAG)
WhatsOmni features an enterprise Retrieval-Augmented Generation (RAG) AI Engine. Upload your company's product manuals, return policies, pricing documents, and website URLs to train an autonomous AI Assistant that delivers grounded, hallucination-free support across all channels.
Supported Knowledge Ingestion Sources
| Source Type | Supported Formats / Connectivity | Processing & Sync Pipeline |
|---|---|---|
Document Filesfile |
PDF, TXT, DOC, DOCX, CSV, JSON, XLSX, Markdown (.md) | Automatic OCR, heading extraction, contextual chunking. |
Web Documentationurl |
Public website URLs, API docs, helpdesk portals, blogs | Recursive web crawler with HTML sanitizer & link follower. |
Direct Q&A Pairsqa |
Exact question and factual answer pairs | Direct vector indexing for guaranteed 100% precision answers. |
Google Sheetssheet |
Live Google Sheets spreadsheet synchronization | Scheduled automated polling & instant index refreshing. |
Configuring an AI Assistant Persona
- System Prompt & Persona: Define agent identity, tone (e.g. professional, empathetic, concise), refund policy guidelines, and custom greetings.
- Creativity & Temperature: Set between
0.0(strictly factual based solely on documents) and0.7(creative and conversational). - Foundation Model Selection: Choose from OpenAI GPT-4o, Anthropic Claude 3.5 Sonnet, Google Gemini 2.0 Flash, DeepSeek R1, or Groq Llama 3.3.
Autonomous Human Agent Handoff
Configure smart safety triggers that seamlessly transfer conversations to human support agents:
human, agent, representative, or speak to person.Deals & CRM Pipelines
Track revenue opportunities, manage sales stages, and qualify prospects directly alongside your customer chats with the native WhatsOmni CRM Pipeline and bi-directional external CRM synchronization.
Automated Deal Progression via Chat Workflows
- Auto Deal Creation: When a prospect completes a lead qualification flow on WhatsApp, a deal is instantly created with budget estimates.
- Stage Advancement on Booking: When the client books a meeting slot on the calendar, the deal automatically advances to Demo Scheduled and assigns the staff host.
- Bi-Directional External Sync: Any update made in WhatsOmni synchronizes automatically with HubSpot, Salesforce, or Zoho CRM.
Calendar & Appointments
WhatsOmni eliminates scheduling friction by enabling clients to book consultations, product demos, and support appointments directly inside WhatsApp, conversational DMs, or public booking links with dynamic 2-way Google and Microsoft 365 calendar synchronization.
Automated WhatsApp Reminder Sequence
Advanced E-Commerce Suite & Shopping Chatbot
Transform WhatsApp, Instagram Direct, and Messenger into high-converting conversational storefronts. WhatsOmni delivers 2-way product & order synchronization with Shopify & WooCommerce, an AI Conversational Shopping Assistant with real-time stock and order lookup, native WhatsApp catalogs, dynamic single-use coupon generation, and an automated 3-stage cart recovery engine.
/track-order).The 3-Stage Automated Cart Recovery Sequence
SAVE10-8492) automatically applied upon checkout link click.E-Commerce Setup, Sync & Chatbot Activation
https://api.yourdomain.com/api/webhooks/ecommerce/shopify or woocommerce for instant order and cart events.ProcessAbandonedCartJob on Redis. If the customer does not complete checkout within the set interval, high-converting WhatsApp recovery templates are sent automatically.Broadcast Campaigns & Anti-Ban Architecture
Execute enterprise-grade mass outreach campaigns across WhatsApp (Baileys QR & Meta Cloud API), Telegram, SMS, and Email. WhatsOmni features an intelligent anti-ban rate-limiting engine with randomized jitter, a two-tier non-blocking asynchronous Redis queue pipeline, in-flight pause/resume controls, and zero-duplicate crash resumption.
Baileys vs Meta WhatsApp Cloud API Campaign Comparison
| Campaign Feature | WhatsApp (Baileys Engine) | WhatsApp (Meta Official Cloud API) |
|---|---|---|
| Anti-Ban Pacing | 4s–8s random delay + 45s cooldown block every 50 msgs |
0.2s micro-stagger (Up to 80 msgs/sec tier limit) |
| Template Approval | No pre-approval required. Freeform text, media & variables. | Requires official Meta-approved HSM template approval. |
| Queue Architecture | Redis 2-tier asynchronous background worker with mutex lock. | Direct bulk REST API payload with asynchronous webhook listener. |
| In-Flight Controls | Instant Pause, Resume from last index, and Abort queue. | Instant Pause, Resume, and Abort queue. |
| Zero-Duplicate Resumption | Status checkpointing: resumes uncompleted recipients seamlessly. | Status checkpointing: resumes uncompleted recipients seamlessly. |
Campaign Launch Workflow
{{name}}, {{company}}, or {{custom_field}}.Custom Roles & 19-Module Granular RBAC
Enforce zero-trust operational security across your organization. WhatsOmni’s Custom Role Builder (located at /settings/team under the Roles tab) allows workspace owners to create custom staff roles with granular Read and Write permission scopes across all 19 functional workspace modules grouped into 5 core platform categories.
/settings/team with instantaneous authorization updates across active browser sessions.The Complete 19-Module Permission Matrix
| Category & Module Key | Functional Domain & Operational Scope | Permission Actions Available |
|---|---|---|
1. Overview Dashboarddashboard (Analyze & Core) |
KPI telemetry, real-time analytics & workspace overview metrics. | Read Write |
2. Shared Inboxinbox (Analyze & Core) |
Omnichannel customer conversations, real-time chat, and internal notes. | Read Write |
3. AI ChatBotchatbot (AI & Automation) |
Automated conversational AI bots, qualification funnels, and fallback rules. | Read Write |
4. Automation Flowsflows (AI & Automation) |
Visual workflow canvas, branching decision logic, triggers & webhook actions. | Read Write |
5. Knowledge Baseknowledge_base (AI & Automation) |
Document ingestion (PDF, DOCX, CSV, URLs, Q&A, Google Sheets) & vector search. | Read Write |
6. AI Agentsagents (AI & Automation) |
Autonomous AI execution agents, personas, and specialized task dispatchers. | Read Write |
7. Channels Connectchannels (Communication) |
Connect and configure 9 messaging gateways (WhatsApp, IG, FB, Telegram, TikTok, LinkedIn, SMS, Email). | Read Write |
8. Social Postssocial_posts (Communication) |
Cross-platform content composer, media publisher, AI copywriter & calendar scheduler. | Read Write |
9. Campaignscampaigns (Communication) |
Outbound bulk broadcasts, drip messaging sequences, jitter pacing & conversion metrics. | Read Write |
10. Message Templatestemplates (Communication) |
Pre-approved Meta HSM blueprints, interactive WhatsApp templates & canned snippets. | Read Write |
11. Contacts Directorycontacts (CRM & Audience) |
Customer CRM profiles, custom attributes, tag management & audience segments. | Read Write |
12. Staff Directorystaff (CRM & Audience) |
Staff members directory, departmental assignments, and shift schedules. | Read Write |
13. CRM Pipeline & Dealsdeals (CRM & Audience) |
Kanban sales pipeline stages, deal monetary values, stage progression & win/loss tracking. | Read Write |
14. Calendar & Bookingscalendar (CRM & Audience) |
Appointment schedules, staff availability slots, and public booking page links. | Read Write |
15. Integrationsintegrations (Settings) |
Connect third-party apps, E-commerce stores (Shopify, WooCommerce), webhooks & REST APIs. | Read Write |
16. Team & Role Accessteam (Settings) |
Teammates directory, seat allocations, custom role builder & channel permissions. | Read Write |
17. Billing & Plansbilling (Settings) |
Workspace subscription tier, Stripe payment methods, add-on quotas & invoice history. | Read Write |
18. Workspace Settingssettings (Settings) |
Business profile details, timezone, base currency, white-label branding & device sessions. | Read Write |
19. Help & Ticketshelp (Settings) |
Knowledge documentation base, helpdesk ticketing, and support desk requests. | Read Write |
Custom Role Creation Workflow
Read and Write checkboxes for each of the 19 platform modules. You can also click Read All or Write All per category for instant one-click provisioning.Dashboard & Platform Telemetry
The Super Admin Dashboard (located at /superadmin/dashboard) provides platform operators with real-time operational telemetry, aggregate revenue metrics, workspace growth rates, channel adoption statistics, and live security audit logs.
is_super_admin = true in the database. Super Admin sessions are protected with distinct cookie authentication (whatsomni_admin_logged_in) and dedicated CSRF tokens.tenant.impersonate
admin@whatsomni.com
impersonated workspace "Apex Logistics" (ID: ws_842a)
plan.updated
admin@whatsomni.com
updated monthly pricing for "Enterprise Scale" plan
settings.mail_saved
admin@whatsomni.com
verified Resend API driver connection via live test email
Dedicated Analytics & Reports Console
Navigate to Analytics & Reports (/superadmin/analytics) for in-depth platform performance analysis:
Tenants & Global Users
The Tenants and Users modules give Super Admins complete operational oversight over all registered business workspaces, workspace team members, and user credentials across the platform.
One-Click Ghost Impersonation Architecture
/superadmin/tenants table. The backend generates an ephemeral SSO session token and sets tenant context.Plans & Subscriptions
The Plans module (/superadmin/plans) enables platform operators to build, price, and manage multi-currency subscription tiers, feature limit matrices, and automated billing integrations across Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, and MyFatoorah.
Multi-Currency Global Pricing Engine
WhatsOmni allows Super Admins to define explicit localized prices per currency or let the dynamic GeoIP engine convert automatically from the base platform currency:
| Currency | Monthly Rate | Annual Rate (Discounted) | Gateway Binding Support |
|---|---|---|---|
| USD ($) | $49.00 / mo |
$470.00 / yr (20% off) |
Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, MyFatoorah |
| EUR (€) | €45.00 / mo |
€430.00 / yr |
Stripe, PayPal, Razorpay, MyFatoorah |
| INR (₹) | ₹3,999 / mo |
₹38,000 / yr |
Razorpay (UPI / Cards / NetBanking), Stripe |
| GBP (£) | £39.00 / mo |
£375.00 / yr |
Stripe, PayPal, MyFatoorah |
| BRL (R$) | R$ 249.00 / mo |
R$ 2,390.00 / yr |
Mercado Pago (Pix / Cards / Preapproval), Stripe, PayPal |
| SAR (﷼) | SAR 189.00 / mo |
SAR 1,800.00 / yr |
MyFatoorah (Mada / Apple Pay / Cards), Stripe |
| KWD (KD) | KD 15.000 / mo |
KD 145.000 / yr |
MyFatoorah (KNET / Cards) |
| NGN (₦) | ₦65,000 / mo |
₦624,000 / yr |
Paystack, Flutterwave |
| KES (KSh) | KSh 6,500 / mo |
KSh 62,400 / yr |
Flutterwave (M-Pesa / Cards), Paystack |
Plan Quotas & Limits Schema
| Quota Field | Data Type | Platform Enforcement & Business Scope |
|---|---|---|
trial_days |
Integer (e.g. 14) |
Complimentary trial duration granted upon tenant workspace registration. |
max_team_members |
Integer (e.g. 10) |
Maximum staff user seats allowed per workspace. |
max_channels |
Integer (e.g. 5) |
Maximum concurrent messaging channels (WhatsApp, Instagram, Telegram, etc.). |
max_automations |
Integer (e.g. 25) |
Maximum published visual flow automations. |
flow_credits |
Integer (e.g. 50,000) |
Monthly execution credit pool for flow builder nodes and AI assistant prompts. |
own_crm_access |
Boolean (true/false) |
Toggles tenant access to the native Deal Kanban Pipeline & Contact CRM. |
Multi-Currency & GeoIP Engine
The Currencies module (/superadmin/currencies) and GeoIP Localization Engine provide automated currency rate synchronization, visitor country-to-currency auto-detection, and intelligent gateway payment routing across 150+ countries.
CF-IPCountry or MaxMind IP headers to automatically switch landing & checkout currency.Payment Gateway Currency Routing Compatibility Matrix
| Payment Gateway | Primary Currencies Supported | Recurring Billing Mechanism | Webhook Status |
|---|---|---|---|
![]() |
USD, EUR, GBP, CAD, AUD, SGD, JPY |
Stripe Billing (Cards / SEPA) | Auto-Handled |
|
|
USD, EUR, GBP, AUD, CAD, BRL |
PayPal Billing Agreements / Vault | Auto-Handled |
![]() |
INR (Primary), USD, AED, EUR |
Cards, UPI AutoPay, NetBanking | Auto-Handled |
![]() |
NGN, GHS, ZAR, KES, USD |
Tokenized Card Subscriptions & Bank Debit | Auto-Handled |
![]() |
NGN, KES, GHS, UGX, TZS, ZAR, USD |
Cards, M-Pesa Mobile Money, Bank Account | Auto-Handled |
![]() |
ARS, BRL, CLP, COP, MXN, PEN, UYU, USD |
Preapproval Subscriptions & Pix / Cards | Auto-Handled |
![]() |
KWD, SAR, AED, BHD, QAR, OMR, JOD, EGP, USD, EUR |
Recurring Payment Invoices (KNET / Mada / Cards) | Auto-Handled |
GeoIP Detection & Price Conversion Pipeline
cf-ipcountry / x-country-code header (e.g. IN, NG, GB, US).IN → INR, NG → NGN, GB → GBP). If no direct match exists, it gracefully falls back to the default Base Currency.Channels & Integrations Switchboard
The Channels and Integrations control centers enable Super Admins to globally enable or disable messaging gateways, configure master SMS carrier credentials, and verify external service connectivity across all 9 platform channels.
Integrations Health & Super Admin Management
| Integration Provider | Super Admin Configuration Location | Platform Capability & Scope |
|---|---|---|
| Google Sheets & Calendar | Settings → Integrations → Google |
Automated lead sync to spreadsheets & 2-way staff schedule booking (AES-256 encrypted in DB). |
| Zoom & Microsoft Teams | Settings → Integrations → Zoom / Teams |
Dynamic online meeting link generation for booked appointments (AES-256 encrypted in DB). |
| HubSpot, Salesforce, Zoho | Settings → Integrations → CRM |
Bi-directional CRM contact and deal stage synchronization (AES-256 encrypted in DB). |
| Shopify & WooCommerce | Settings → Integrations → E-Commerce |
Bi-directional catalog sync, cart abandonment tracking & WhatsApp shopping chatbots. |
| Meta (WhatsApp, Instagram, FB) | Settings → Meta & Channels |
Embedded Signup, Graph API OAuth, Direct Messaging & Social Post publishing. |
| SMS Gateways (Twilio, Vonage, Plivo) | Channels → SMS Settings |
Master global 2-way SMS carrier credentials and number routing. |
AI Providers & Intelligent Routing
The AI Providers module (/superadmin/ai-providers) is the central orchestration engine for AI models across WhatsOmni. Super Admins can manage foundation model credentials, switch between the 2 operational architectures (BYOK and Master Fixed), and map individual platform features to specific LLMs.
Feature Routing Matrix (Master Fixed Mode)
| Platform Feature | Recommended LLM Model | Performance & Cost Rationale |
|---|---|---|
| AI Chatbot Conversations | OpenAI GPT-4o / Claude 3.5 Sonnet |
High reasoning fidelity, multi-turn context retention, and strict policy adherence. |
| Visual Flow AI Execution | Gemini 2.0 Flash / Groq Llama 3.3 |
Sub-300ms ultra-fast inference for rapid conditional branching. |
| Conversation Summaries | Claude 3.5 Haiku / GPT-4o-mini |
Cost-effective token throughput for high-volume chat summarization. |
| Sentiment Analysis | Groq Llama 3.3 70B |
Instant classification for automatic human agent handoff triggers. |
| Knowledge Base Embeddings | text-embedding-3-small |
High-dimensional semantic vector indexing for Meilisearch RAG lookups. |
Settings, Gateways & White-Labeling
The Settings (/superadmin/settings), Payment Gateways (/superadmin/settings/gateways), Support Tickets (/superadmin/tickets), and Pages (/superadmin/pages) modules provide full white-label customization, team delegation, transactional mail management, 7 global payment gateway configurations (Stripe, PayPal, Razorpay, Paystack, Flutterwave, Mercado Pago, and MyFatoorah), and tenant support operations.






Global Payment Gateways Configuration Workflow
https://api.yourdomain.com/api/v1/webhooks/[gateway]) and paste it into your provider dashboard. Enter the webhook signing secret to enable instant automated subscription provisioning and renewal invoice generation.