Introduction

Overview of OvoWpp - Complete Cross Platform WhatsApp CRM and Marketing Tool | SaaS

OvoWpp is a complete cross-platform SaaS-based WhatsApp CRM and marketing solution designed to help businesses connect, engage, and convert effortlessly. With powerful web and mobile apps, and a centralized admin panel for full control, OvoWpp makes it easy to manage customer communication and automate campaigns. Whether you're handling customer, sending bulk messages, or building a CRM & Marketing Tool, OvoWpp offers everything in one subscription-based platform — giving you all the tools to grow your brand through WhatsApp with the simplicity and scalability of SaaS.

Thank you for choosing OvoWpp If you have any questions not covered in this documentation, please feel free to reach out to us via email. We’re here to assist and will respond as promptly as possible. Thank you again!

Prerequisites

All the prerequisites before starting with OvoWpp.

  1. Meta WhatsApp Business API: OvoWpp is built to integrate directly with the official WhatsApp Business API provided by Meta. To use OvoWpp effectively, each subscribed user must have a verified WhatsApp Business Account with API access granted through Meta’s platform. This access enables powerful features such as message automation, chatbot integration, and full CRM capabilities, ensuring compliance and security. Please ensure the subscribed user WhatsApp number is approved and properly configured for API access before onboarding. For detailed information and application, visit the WhatsApp Business API Documentation
  2. Pusher: Pusher is a reliable service for implementing real-time features such as live updates and instant messaging in OvoWpp. To set it up, create an account on the Pusher Dashboard and generate your app credentials. You’ll need to configure these credentials in your application to establish a seamless connection. Pusher provides easy-to-follow Setup Documentation to guide you through the integration process. Ensure you enable the required channels and events for optimal functionality.
  3. Google Firebase: Firebase is a powerful backend platform provided by Google, essential for integrating features such as push notifications into OvoWpp. To get started, you need to set up your project in the Firebase Console and configure it with your app. The setup involves creating a Firebase project, enabling necessary services, and downloading the configuration files to integrate with the app. For more info visit the Google Firebase

Server Requirements

All server requirements are stated bellow

Platform

  • PHP Version 8.3 or 8.3+
  • MySQL Version 8.0+ or MariaDB version 10.6+
  • Apache with mod_rewrite enabled (or Nginx with an equivalent front-controller rule). The shipped .htaccess routes every request to index.php, so AllowOverride All must be active for the site directory.
  • Outbound HTTPS access from the server, so the setup wizard can reach the license server during purchase verification.

Required PHP Extensions

  • BCMath PHP Extension
  • Ctype PHP Extension
  • cURL PHP Extension
  • DOM PHP Extension
  • Fileinfo PHP Extension
  • GD PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PCRE PHP Extension
  • PDO PHP Extension
  • pdo_mysql PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Filter PHP Extension
  • Hash PHP Extension
  • Session PHP Extension
  • Zip PHP Extension (also required by the Addon Manager)
  • allow_url_fopen()
  • file_get_contents()

Writable Paths

The setup wizard creates the configuration file and builds the database for you, so the following paths have to be writable by the web server. On most cPanel hosting a permission of 755 is enough.

  • core/ — the .env file is generated here on the very first page load.
  • core/.env — created automatically; the wizard writes your database credentials into it.
  • core/storage
  • core/storage/app
  • core/storage/framework
  • core/storage/logs
  • core/bootstrap/cache
  • core/addons and core/storage/app/temp/addon — only needed if you plan to install addons such as LeadWpp or TeleWpp from the Addon Manager.

Installation

Application installation process

Before you begin

  • Your hosting meets everything listed under Server Requirements.
  • You have your purchase code and account username from your CodeCanyon downloads page (Download → License certificate & purchase code).
  • You can create a MySQL database and database user on your hosting.

Part 1 — Upload the files

  • Step 1: Download the package from your CodeCanyon account and upload it to your server. Uploading the ZIP and extracting it on the server through your control panel’s File Manager is far faster than uploading the extracted files over FTP.
  • Step 2: Extract the downloaded file. Inside you will find a Files folder containing Laravel (the web application) and Flutter (the mobile app source, not needed for the web installation).
  • Step 3: Move everything inside Files/Laravel into the directory your domain points at (usually public_html, or the subfolder you want to run the site from). That is five items:
    • index.php
    • .htaccess (a hidden file — enable “Show hidden files” in your File Manager so it is not left behind)
    • assets folder
    • build folder
    • core folder

Part 2 — Create an empty database

  • Step 4: Using the MySQL Database Wizard in your control panel, create a database, create a database user, and assign that user to the database with All Privileges. Write down the database name, username and password — the wizard asks for them in a moment.

Part 3 — Run the setup wizard

Open your site in a browser (for example https://your-domain.com). A fresh copy redirects automatically to https://your-domain.com/install. The wizard has four screens and a progress bar showing where you are.

  • Step 5 — Requirements: The wizard checks your PHP version, every required PHP extension, and every writable path, and marks each one pass or fail. When everything passes, click Continue.
  • Step 6 — Verify Your Purchase: Enter your Purchase Code and your Account Username, then click Verify and continue. Your server contacts our license server over HTTPS to confirm the code is genuine and registers the domain against your licence.
  • Step 7 — Database Connection: Enter the details of the empty database you created in Step 4 and click Test connection and continue. The credentials are tested before anything is written to disk, so a typo simply shows an error instead of leaving a broken configuration behind.
    • Database host — usually localhost
    • Port — usually 3306
    • Database name, Database username, Database password
  • Step 8 — Administrator Account: Enter the full name, username, email address and password (at least 8 characters) for your admin account, then click Install now.
  • Step 9 — Done: The wizard confirms the installation and offers Visit site and Go to admin panel. Sign in at https://your-domain.com/admin using the username and password you just chose in Step 8.

After the installation

Installing from the command line (optional)

If you have SSH access and prefer the terminal, the wizard’s equivalent is a handful of commands. Copy core/.env.example to core/.env, fill in your DB_* values and APP_URL, then run:

cd core
php artisan key:generate --force
php artisan migrate --seed --force

Then sign in at /admin. The seeded placeholder administrator is admin / admin when you install this way, so change it immediately from Admin Panel → Profile. The browser wizard is the recommended route precisely because it never creates that account.

Folder Structure

Important details about the application folder structure

  • assets
  • build
  • core
  • .htaccess
  • index.php
  • In the assets folder, you'll find all the necessary assets such as CSS, JS, and images. If you need to edit or modify any CSS or JS, this is the folder to access.
  • The build folder holds the compiled files for the drag-and-drop chatbot flow builder. It is generated by the build process — do not edit it by hand, and do not delete it or the flow builder will not load.
  • The core folder contains the core Laravel files, maintaining the full MVC structure of the project for seamless functionality and organization.

Files inside core worth knowing about

  • core/.env — your configuration: database credentials, app URL, application key. It is created automatically on first load and filled in by the setup wizard. Never overwrite this file when updating, and never share it.
  • core/storage/installed — the installation lock file. Its presence tells the application the setup wizard has already been completed. Do not delete it.
  • core/addons — where addons such as LeadWpp and TeleWpp are unpacked when you install them from the Addon Manager. Empty on a fresh copy, and it must be preserved when updating.
  • core/storage — uploaded files, logs and caches. Preserve this directory when updating.
  • core/database/migrations — the definition of every database table. These run automatically during installation and during updates; there is no SQL dump in the package.

Update & Upgrade

Moving an existing installation to a newer release

Step 1 — Take a backup

  • Export your database (cPanel → phpMyAdmin → Export, or “Backup Wizard”).
  • Download a copy of your whole site directory — at minimum core/.env, core/storage and core/addons.

Put the site into maintenance mode from Admin Panel → System Configuration while you work, so users are not writing data mid-update.

Step 2 — Replace the application files

Download the new release from CodeCanyon, extract it, and upload the contents of Files/Laravel over your existing installation, overwriting when prompted.

Step 3 — Run the database migration

New releases add tables and columns. Applying them is one command, run from the core directory over SSH or your control panel’s Terminal:

cd core
php artisan migrate --force
php artisan optimize:clear

The migrations are safe to re-run: each one checks whether its table already exists and skips it, so nothing is duplicated and no existing data is touched. optimize:clear flushes the cached configuration and views so the new code takes effect immediately.

Step 4 — Upgrading from v2.3 or earlier (one-time)

Installations created before v2.4 built their schema by importing install/database.sql, so every table already exists but no migration is recorded. Run the baseline command once before your first migration, so the migration history reflects reality and future updates only apply genuinely new changes:

cd core
php artisan ovowpp:baseline-migrations --dry-run
php artisan ovowpp:baseline-migrations
php artisan migrate --force
php artisan optimize:clear

The --dry-run pass only lists what would be recorded and writes nothing, so you can review it first. The command records the existing migrations as applied without running them — it never alters your data.

Step 5 — Verify

  • Sign in to /admin and check Application Information shows the new version.
  • Open Addon Manager and confirm your addons are still listed and enabled.
  • Check Cron Job Setting — the last run time should still be advancing.
  • Turn maintenance mode back off.

Troubleshooting

Common installation problems and how to fix them

“Setup cannot continue: … is not writable”

The application could not create core/.env. Set the core directory to 755 (or make it writable by the web server user) and reload the page. This message is deliberate — it replaces the confusing “No application encryption key” error that the same problem used to produce.

The wizard never appears / the home page 404s

The .htaccess file is missing from your site root, or mod_rewrite / AllowOverride All is not enabled. Re-upload .htaccess with hidden files visible, and ask your host to confirm rewrites are allowed for your directory. You can also reach the wizard directly at https://your-domain.com/install.

Requirements screen shows a red cross

A missing PHP extension must be enabled by your hosting provider (in cPanel this is usually Select PHP Version → Extensions). A path marked “Not writable” needs its permission set to 755. The checks re-run on every page load, so just reload after fixing.

“The license server could not be reached”

Your server has no outbound HTTPS access, or a firewall is blocking it. Ask your host to allow outbound connections on port 443, then try again. If the purchase code itself is rejected, check that you pasted the purchase code (not the licence certificate number) and that the account username matches the account that bought the item.

“Could not connect” on the database screen

The message shown is the database server’s own error. The usual causes are: the database user has not been added to the database with All Privileges; the host is not localhost on your platform; or the full prefixed name (for example cpaneluser_ovowpp) was not used. Nothing has been written to disk at this point, so simply correct the details and submit again.

“Installation failed” on the last step

The error text on screen comes straight from the database. Most often the database was not empty, or the database user lacks CREATE/ALTER rights. Empty the database completely (drop all tables), confirm the user’s privileges, and run the wizard again from the start.

The wizard opens again on an installed site

core/storage/installed was deleted and the application cannot read your database. Restore the correct DB_* values in core/.env; as soon as the database is reachable the lock file is recreated by itself and the wizard closes.

Admin Dashboard

Overview of the admin dashboard

Plan

Overview of the platform pricing plan

Subscription History

Overview of the subscription history

User

Overview of the platform Users

Manage Deposit

Overview of the platform Deposit

Manage Withdrawals

Overview of the platform Withdrawals

Payment Gateway

Overview of the platform-integrated payment gateway

Withdrawal Methods

Withdrawal methods overview

General Setting

General settings overview

Brand Setting

Brand settings overview

System Configuration

System configuration overview

Notification Setting

Notification setting overview

Pusher Setting

Pusher setting overview

Get Pusher App Credentials

  1. Sign Up or Log In to Pusher: Visit the official Pusher website and create an account if you don’t already have one. If you already have an account, log in to access your dashboard.
  2. Create a New App: Once logged in, navigate to the "Apps" section of your dashboard. Click on the Create App button and fill in the required details such as app name, cluster region, and type of app (e.g., Channels).
  3. Configure App Settings: After creating the app, go to the app’s settings page. Here, you can enable or disable features like client events, presence channels, or authentication as per your requirements.
  4. Get Your App Credentials: Navigate to the App Keys or Credentials section. Copy the following details:App ID,Key,Secret and Cluster
  5. Update Pusher Settings: Log in to the admin panel, go to General Settings, and configure the credentials in the Pusher Settings section.

Still facing issues configuring Pusher credentials? Watch our step-by-step video guide to get it resolved quickly!

S3 Cloud Storage

S3 Cloud Storage settings overview

Follow the steps:

  1. Enable S3 Storage: Toggle the switch on the top right to enable S3 storage usage.
  2. Access Key ID: Enter the S3 access key ID for your bucket credentials.
  3. Secret Access Key: Enter the secret access key corresponding to your access key.
  4. Default Region: Specify the region your bucket resides in (e.g. us-east-1).
  5. Bucket Name: Enter the name of the S3 bucket to be used.
  6. Bucket URL: (Optional) Enter the base URL for publicly accessible files.
  7. Endpoint: (Optional) Provide the custom endpoint URL if using alternative S3-compatible services like DigitalOcean Spaces, MinIO, etc.
  8. Use Path Style Endpoint: Toggle this on if your provider requires path style endpoint (e.g. MinIO or DigitalOcean Spaces).
  9. Test S3 Connection: Scroll down and click the Test Connection button to verify that the credentials and connection to the bucket are valid before submitting.

Cron Job Setup

Set up cron jobs to automate background tasks and ensure your platform functions smoothly.

Follow the steps:

  1. Access Your Hosting Control Panel: Log in to your hosting control panel (e.g., cPanel, Plesk, or VPS terminal access).
  2. Open the Cron Jobs Section: Find and click on the Cron Jobs option under Advanced or Tools section.
  3. Create a New Cron Job: Choose a time interval (recommended: every 1 minute) and go to the your admin dashboard and copy following command.
  4. Save and Activate: Click the Save or Add New Cron Job button. Your scheduled tasks are now automated.
  5. Test It: Navigate to the Cron Job Settings section from your admin dashboard to monitor and verify if the cron jobs are running correctly by reviewing the execution logs.

Need help configuring cron jobs? Watch our quick tutorial to walk you through the process step by step.

WhatsApp Business API Setup

Set up the WhatsApp Business API to enable messaging capabilities and communicate with your users through WhatsApp in a secure and scalable way.

Follow the steps:

  1. Create a Meta Business Account: Visit the Meta Business Suite and create a business account if you don't already have one.
  2. Register a WhatsApp Business Phone Number: Add and verify a phone number through Meta’s WhatsApp Business setup process. This number will be used for sending and receiving messages.
  3. Generate WhatsApp API Credentials: After setting up your number, navigate to the WhatsApp section of your Meta Developer Console and generate your Access Token and Phone Number ID.
  4. Configure in Admin Panel: Log in to your admin dashboard, go to WhatsApp API Settings under General Settings, and enter your Access Token and Phone Number ID to connect your system with the WhatsApp API.
  5. Test Messaging: Once credentials are saved, test sending a message to ensure everything is functioning properly. You should receive a confirmation WhatsApp message.

Need a visual walkthrough? Watch our video tutorial for complete WhatsApp Business API setup.

WhatsApp Embedded Signup

To enable the Embedded Signup flow with the WhatsApp Business API, you must first configure your WhatsApp Business Account (WABA) correctly. The Embedded Signup process allows businesses to onboard directly from your platform without leaving the flow, providing a seamless and streamlined integration experience.

Follow the steps:

  1. Login to your meta app dashboard: Visit the Meta Dashboard and select your app.
  2. Set Up Domain and Privacy Policy URL: For advanced verification, you need to configure your domain and Privacy Policy URL under App Settings → Basic.
  3. Enter Domain and Policy URLs: Enter your domain and policy URLs. The domain name must be your primary domain, as Meta does not support subdomains. Additionally, the Privacy Policy and Terms of Service URLs must be valid and publicly accessible on a live server.
  4. Disable Require App Secret: To ensure the Embedded Signup flow runs successfully, you need to disable the following fields as shown below.
  5. Advanced Verification: To configure Facebook Login for Business, you need to enable advanced verification. Navigate to App Review → Permissions and Features. Ensure that your domain and privacy policy URL are properly set up. If your business is already verified, you may skip this step. Otherwise, submit a request for verification.
  6. Enable Embedded Signup: After your business is successfully verified by Meta, you will see a side menu option called Facebook Login for Business on the left-hand side. Navigate to the Settings section and ensure it matches the example shown below. Confirm that the Valid OAuth Redirect URIs field includes your domain name, ending with /callback. Finally, at the bottom of the list, add your domain in the field “Allowed Domains for the JavaScript SDK.”
  7. Create Configurations: Meta requires a configuration to be created for the Embedded Signup. Navigate to the Configurations section and create a new configuration. We recommend using the option “Create from Template”, as it is the most commonly used template for the Embedded Signup process.
  8. Set Up Credentials in the Admin Dashboard: After successfully creating a configuration, you need to copy the Configuration ID, Meta App ID, and Meta App Secret, and enter them into your Admin Dashboard.

Need a visual walkthrough? Watch the video tutorial below for a clearer understanding of the process.

AI Assistant

The AI Assistant helps users set up an automated reply system for their business based on the provided system prompt information. It enables businesses to respond instantly to customer messages, maintain consistent communication, and improve engagement without manual intervention. Users can customize responses, define behavior through prompts, and ensure their AI assistant aligns perfectly with their brand’s tone and objectives.

OpenAI

  1. Log in to the OpenAI platform dashboard: Visit the OpenAI Dashboard
  2. Create your API key: Go to OpenAI Dashboard and create an API key.
  3. Copy the API key: Copy the API key for setup in the Admin Dashboard.
  4. Set up credentials in the Admin Dashboard: After creating the API key, go to your Admin Dashboard’s AI Assistant page from the Manage Settings menu.
  5. Configure your OpenAI API key: Click on the Configure button in the OpenAI section.
  6. Paste your OpenAI API key: Paste your OpenAI API key into the API Key field and save the changes by clicking the Submit button.

Google Gemini

  1. Login to Google AI Studio: Visit the Google AI Studio
  2. Create your API key: Go to Google AI Studio and create an API key.
  3. Copy the API key: Click on the API key and copy it for setup in the Admin Dashboard.
  4. Set up credentials in the Admin Dashboard: After creating the API key, go to your Admin Dashboard’s AI Assistant page from the Manage Settings menu.
  5. Configure your Gemini API key: Click on the Configure button in the Google Gemini section.
  6. Paste your Gemini API key: Paste your Gemini API key into the API Key field and save the changes by clicking the Submit button.

Addon Manager

Installing, updating and disabling optional addons

Requirements

  • The Zip, Fileinfo, cURL, OpenSSL and JSON PHP extensions.
  • core/addons and core/storage/app/temp/addon writable (755). The temporary folder is created for you if it is missing.
  • Outbound HTTPS access, so the addon’s purchase code can be verified.

The Addon Manager checks all of this before it accepts an upload and tells you precisely which item is missing if something is not in place.

Installing an addon

  • Step 1: Download the addon from your CodeCanyon account and extract it. Inside you will find addon.zip — that is the file to upload. Do not extract addon.zip itself.
  • Step 2: Go to Admin Panel → Addon Manager and click Install New Addon.
  • Step 3: Enter the addon’s purchase code and your account username, choose addon.zip, and submit. Each addon has its own purchase code — it is not the same one you used to install OvoWpp.
  • Step 4: The addon is verified, unpacked into core/addons, and its database tables are created automatically. When it finishes, the addon appears in the list and its menus become available.

Updating an addon

When a new version of an installed addon is released, an Update available badge with the new version number appears beside it in the Addon Manager. This check runs through your cron job, so make sure the cron job is configured.

  • Step 1: Download the new version of the addon from CodeCanyon and locate its addon.zip.
  • Step 2: Click Update now on the badge, then drop the ZIP into the upload area and submit.
  • Step 3: The package is verified against your licence, merged over the installed addon, and any new database changes are applied. Caches are cleared for you.

Enabling and disabling

The toggle beside each addon turns it off and on without removing it. A disabled addon keeps its files and its data, so re-enabling it restores everything exactly as it was.

Extensions

Overview of the platform integrated extensions

Manage SEO

Platform SEO customization overview

Localization

Overview of platform localization settings

Information

Overview of application information and technologies

Support

How to get assistance

Email Us: [email protected]