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, 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, 5 global payment gateways, enterprise anti-ban broadcast campaigns, and automated e-commerce cart recovery 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-generated response, appointment booking, social media post, deal stage transition, 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:
- Key Source: Supplied by tenant workspace
- Token Billing: Paid direct to AI provider
- Model Scope: All models on tenant's account
- Key Source: Central Superadmin Vault
- Token Billing: Metered via subscription plans & credits
- Model Scope: Feature-optimized matrix mapping
2. The 10 Native AI Automated Features
WhatsOmni includes a fine-grained AI Feature Routing Matrix that routes specific tasks to the most cost-effective and capable LLM model:
3. Nine Omnichannel Messaging & Publishing Channels
Connect all customer communication and social publishing channels into one unified multi-tenant shared inbox with real-time WebSocket streaming:








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. E-Commerce & Abandoned Cart Recovery Engine
Recover lost sales automatically across WhatsApp and SMS with deep store integrations and delayed background queue workers:


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 11 (PHP 8.2+), Next.js 15 (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 11 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 15 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
Learn how to fully white-label WhatsOmni, update platform brand names, upload custom logos and favicons, configure color design tokens, and customize transactional email templates.
Super Admin Platform Customization
WhatsOmni provides an intuitive, real-time GUI for platform Super Admins under Super Admin Panel → Settings → Customization (/superadmin/settings/customization). Changes made here instantly synchronize across the entire application stack:
| Customization Asset | Description & Behavior | Admin GUI Route | Propagation Target |
|---|---|---|---|
|
Brand Name
|
Sets the official platform name. Replaces all default "WhatsOmni" text across the landing page, navbar, auth pages, copyright notice, and transactional emails. | /settings/customization | Global (All Pages) |
|
Platform Logo
|
Upload PNG, JPEG, WEBP, or SVG logo (up to 2MB). Automatically stored in /storage/branding/ and displayed on all headers, sidebars, and splash screens. |
Upload Logo Button | Header & Sidebars |
|
Primary & Accent Colors
|
Configure the primary action color (default: #4AE54A) and dark foreground token (default: #0A0A0A). Pre-built presets include Neon Green, Royal Blue, Violet Glow, and Sunset Rose. |
Color Palette Presets | UI Buttons & Badges |
|
Email Template Designer
|
Drag-and-drop visual mail designer to customize transactional email headers, logo embedding, button CTA colors, and footer disclaimers. | /superadmin/mail-designer | Outbound Emails |
|
Legal & CMS Pages
|
Publish custom branded Terms of Service, Privacy Policy, Cookie Policy, and Refund Policy pages accessible via public routes (/[slug]). |
/superadmin/cms-pages | Public Legal URLs |
Code-Level Configuration & Fallback Tokens
To hardcode default brand settings, fallback logos, and style tokens directly in the codebase before deploying, update the configuration file located at frontend/src/config/branding.ts:
export const BRANDING_CONFIG = {
// Core branding configurations
defaultName: 'WhatsOmni',
defaultLogo: '/logo.svg',
defaultPrimaryColor: '#4AE54A',
defaultAccentColor: '#0A0A0A',
defaultDomain: 'whatsomni.com',
defaultSupportEmail: 'support@whatsomni.com',
// UI styling tokens (dynamic runtime injects)
styleTokens: {
accentGreen: '#4AE54A',
accentGreenHover: '#3DD43D',
borderFocus: '#0A0A0A',
fgPrimary: '#0A0A0A',
},
// Copywriting details
landing: {
description: 'Bring every conversation into one place. Unified inbox, visual automations, AI agents, and CRM sync.',
trademarkSymbol: '™',
copyrightSuffix: 'All rights reserved.',
sslTag: 'Secure SSL Encrypted',
}
};
Dynamic Runtime Theme Engine
WhatsOmni uses a centralized React Context Provider (BrandingThemeProvider.tsx) that wraps the entire 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 |
Active sidebar indicators, highlight SVG underlines, badges, toggles, and live presence pulse dots. |
--accent-green-2 |
#3DD43D |
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 11 backend REST API, Next.js 15 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 11.x REST API, Eloquent ORM, Reverb WebSockets daemon, Redis queues, and multi-tenant schema isolation. | PHP 8.2 / 8.3 (FPM) |
|
frontend/
|
Next.js 15 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 11 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 11 and NPM dependencies for Next.js 15 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 (11.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 (15.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 11 will automatically create the database and seed the default records.
.env files are strictly reserved for core infrastructure (Database, Redis, WebSockets, Search Engine, OAuth bridges, and Mail relays). Dynamic integrations—such as Meta (Facebook, Instagram & WhatsApp Embedded), TikTok, LinkedIn, Payment Gateways (Stripe, PayPal, Razorpay, Paystack, Flutterwave), and AI Providers—are managed directly inside the Super Admin Control Panel (stored securely in the database). You do not need to configure them in .env files or restart services when updating them!
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. |
| 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. |
| 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. |
| GOOGLE_CLIENT_ID | your_google_client_id.apps.googleusercontent.com |
Google OAuth client ID for Sheets & Calendar integrations. |
| GOOGLE_CLIENT_SECRET | your_google_client_secret |
Google OAuth client secret key. |
| GOOGLE_REDIRECT_URI | http://localhost:8000/api/integrations/google/callback |
Authorized redirect callback URI registered in Google Console. |
| HUBSPOT_CLIENT_ID | your_hubspot_client_id |
HubSpot developer app client identifier. |
| HUBSPOT_CLIENT_SECRET | your_hubspot_client_secret |
HubSpot developer app client secret. |
| SALESFORCE_CLIENT_ID | your_salesforce_client_id |
Salesforce Connected App Consumer Key. |
| SALESFORCE_CLIENT_SECRET | your_salesforce_client_secret |
Salesforce Connected App Consumer Secret. |
| ZOHO_CLIENT_ID | your_zoho_client_id |
Zoho API Console client ID. |
| ZOHO_CLIENT_SECRET | your_zoho_client_secret |
Zoho API Console client secret. |
| ZOOM_CLIENT_ID | your_zoom_client_id |
Zoom Marketplace OAuth Client ID. |
| ZOOM_CLIENT_SECRET | your_zoom_client_secret |
Zoom Marketplace OAuth Client Secret. |
| ZOOM_REDIRECT_URI | http://localhost:8000/api/integrations/zoom/callback |
Authorized redirect callback URI registered in Zoom Marketplace. |
| TEAMS_CLIENT_ID | your_teams_client_id |
Microsoft Entra Application (Client) ID for Teams meetings. |
| TEAMS_CLIENT_SECRET | your_teams_client_secret |
Microsoft Entra Client Secret Value. |
| TEAMS_REDIRECT_URI | http://localhost:8000/api/integrations/teams/callback |
OAuth callback endpoint for Microsoft token authorization. |
| MAIL_MAILER | smtp |
Default mailer driver (smtp, log, or resend). |
| MAIL_HOST / MAIL_PORT | 127.0.0.1 / 2525 |
SMTP mail server host domain and port. |
| MAIL_USERNAME / MAIL_PASSWORD | null / null |
SMTP authentication credentials. |
| MAIL_FROM_ADDRESS / NAME | hello@whatsomni.com / WhatsOmni |
Default sender email address and display name. |
| AWS_ACCESS_KEY_ID / SECRET | (optional) |
AWS S3 credentials for cloud asset and media file uploads. |
| AWS_BUCKET / AWS_DEFAULT_REGION | (optional) / us-east-1 |
AWS S3 bucket name and AWS region identifier. |
| OPENAI_API_KEY / GROQ_API_KEY | (optional defaults) |
Optional default fallback API keys (Primary management in Super Admin UI). |
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 15 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. |
| 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 5 enterprise payment gateways. Platform operators can enable one or multiple gateways simultaneously, allowing global customers to subscribe using their preferred regional currencies, credit cards, mobile wallets, UPI, 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.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
|
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.
Google Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| GOOGLE_CLIENT_ID | 123456...apps.googleusercontent.com |
Google Cloud OAuth 2.0 Client ID for tenant authentication. |
| GOOGLE_CLIENT_SECRET | GOCSPX-abc123xyz... |
Google Cloud OAuth 2.0 Client Secret token. |
| GOOGLE_REDIRECT_URI | http://localhost:8000/api/integrations/google/callback |
Authorized callback route receiving authorization codes from Google. |
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 into your backend environment file.
HubSpot Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| HUBSPOT_CLIENT_ID | 4a81b2c3-... |
HubSpot App Client ID for OAuth handshake authentication. |
| HUBSPOT_CLIENT_SECRET | 99e8d7c6-... |
Confidential Client Secret token for token exchange. |
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.
Salesforce Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| SALESFORCE_CLIENT_ID | 3MVG9... |
Salesforce Connected App Consumer Key. |
| SALESFORCE_CLIENT_SECRET | 890123456... |
Salesforce Connected App Consumer Secret token. |
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.
Zoho Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| ZOHO_CLIENT_ID | 1000.ABCDEF... |
Zoho Server-Based Client ID. |
| ZOHO_CLIENT_SECRET | a1b2c3d4e5... |
Zoho Client Secret token. |
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/oauth/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.
Zoom Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| ZOOM_CLIENT_ID | abc123xyz... |
Zoom Marketplace OAuth Client ID. |
| ZOOM_CLIENT_SECRET | secret987654... |
Zoom Marketplace OAuth Client Secret. |
| ZOOM_REDIRECT_URI | http://localhost:8000/api/integrations/meetings/callback |
Callback URI receiving OAuth grant tokens from Zoom. |
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 from the Overview tab.
Microsoft Teams Configuration Parameters
| Variable Name | Example / Default Value | Description & System Role |
|---|---|---|
| TEAMS_CLIENT_ID | 12345678-abcd-... |
Microsoft Entra Application (Client) ID. |
| TEAMS_CLIENT_SECRET | abc~xyz123... |
Microsoft Entra Client Secret Value. |
| TEAMS_REDIRECT_URI | http://localhost:8000/api/integrations/meetings/callback |
OAuth callback endpoint for Microsoft token authorization. |
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
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, and AI Copilot assistance.
Conversation Lifecycle & Status Management
Canned Responses, Dynamic Variables & Private Notes
- Slash Commands (
/): Type/into the message composer to open your team's pre-approved library of canned responses. Use dynamic tags like{{contact.first_name}},{{agent.name}}, or{{workspace.name}}to personalize answers instantly. - 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.
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
Cart Recovery Engine
Over 70% of online shopping carts are abandoned before checkout. The WhatsOmni Abandoned Cart Recovery Engine re-engages shoppers on WhatsApp with high-converting personalized sequences and one-click checkout URLs.
SAVE10) automatically applied upon checkout link click.Connecting E-Commerce Stores (Shopify & WooCommerce)
- Shopify Store Webhooks: In your Shopify Admin, navigate to Settings → Notifications → Webhooks and create webhooks pointing to
https://api.yourdomain.com/api/webhooks/ecommerce/shopifyfor Checkout creation, Checkout update, and Order creation with JSON formatting. - WooCommerce REST Webhooks: In WordPress Admin, go to WooCommerce → Settings → Advanced → Webhooks and create webhooks pointing to
https://api.yourdomain.com/api/webhooks/ecommerce/woocommerce?connection_id={id}for Order created and Order updated. - WhatsOmni automatically ingests abandoned cart items, line-item totals, and customer contact data, triggering automated recovery sequences via
SendAbandonedCartRecoveryJobon Redis queues.
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, and Flutterwave.
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 |
| EUR (€) | €45.00 / mo |
€430.00 / yr |
Stripe, PayPal, Razorpay |
| INR (₹) | ₹3,999 / mo |
₹38,000 / yr |
Razorpay (UPI / Cards / NetBanking), Stripe |
| GBP (£) | £39.00 / mo |
£375.00 / yr |
Stripe, PayPal |
| 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 |
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 & Environment Diagnostics
| Integration Provider | Backend Env Requirements | Platform Capability & Scope |
|---|---|---|
| Google Sheets & Calendar | GOOGLE_CLIENT_ID / SECRET |
Automated lead sync to spreadsheets & 2-way staff schedule booking. |
| Zoom & Microsoft Teams | ZOOM_CLIENT_ID / TEAMS_CLIENT_ID |
Dynamic online meeting link generation for booked appointments. |
| HubSpot, Salesforce, Zoho | HUBSPOT_CLIENT_ID / SALESFORCE_CLIENT_ID |
Bi-directional CRM contact and deal stage synchronization. |
| Shopify & WooCommerce | Webhook Receiver (No static key needed) | Automated cart abandonment detection & WhatsApp recovery funnels. |
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, 5 global payment gateway configurations, 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.