Review India CRM — Official Documentation
A complete guide to running, customising and operating Review India CRM — the AI-powered project management and CRM platform from Review India, with native B2B lead enrichment from Data2Sales AI.
Overview
Review India CRM is an all-in-one workspace that bundles project management, sales pipeline, invoicing, team collaboration and a built-in B2B lead source under a single login. It is delivered as a self-hosted PHP application so your data lives on infrastructure you control.
- Run projects with kanban boards, Gantt charts, milestones and time tracking.
- Manage leads, deals, estimates and contracts in one pipeline.
- Import verified B2B leads in one click via Data2Sales AI.
- Send branded invoices, accept Stripe / PayPal and reconcile payments.
- Self-host on your own domain with per-user permissions and a license-verified installation.
Branding & ownership
This distribution is officially branded Review India CRM. Two credits are part of the product and are visible inside the application:
- Designed & Developed by Review India — the engineering and product team behind the build.
- Powered by Data2Sales AI — the B2B contact intelligence layer that powers lead import and enrichment.
Both credits appear in the bottom of the left sidebar of every authenticated page and in the public landing page footer. They are a load-bearing part of the application: a runtime guard refuses to serve any page if the credit is removed (see Sidebar credit guard).
If you need a co-branding arrangement (an additional partner credit) get in touch with Review India at support@reviewindia.org. Removing or replacing the existing credits is not supported.
Requirements
| Component | Minimum | Recommended |
|---|---|---|
| PHP | 8.1 | 8.2 or 8.4 |
| Database | MySQL 5.7 / MariaDB 10.3 | MySQL 8 / MariaDB 10.6+ |
| Web server | Apache 2.4 with mod_rewrite | Nginx with PHP-FPM |
| PHP extensions | curl, mbstring, mysqli, intl, gd, openssl, fileinfo, zip | |
| Disk | 500 MB | 2 GB+ for attachments |
Installation
This build ships pre-installed — the legacy installer wizard has been removed and the production database is bundled with the project as a single SQL dump. The end-to-end setup is database-import + four config values.
The bundled database dump
Inside the project root you will find:
database/
├── review_india_crm.sql ← full schema + seed data (93 tables)
└── README.md ← short import cheat-sheet
The dump contains all tables (with the ri_ prefix), the seeded administrator user, and pre-populated ri_settings rows for the Review India CRM brand — app title, company info, logo references, support email and so on.
| Default credential | Value |
|---|---|
| Database name | review_india_crm |
| Charset / collation | utf8mb4 / utf8mb4_unicode_ci |
| Table prefix | ri_ |
| Admin email | admin@reviewindia.local |
| Admin password | admin123 (change after first login) |
Option A — import from the command line
This is the fastest path. From the project root:
# 1. create the database
mysql -u root -e "CREATE DATABASE review_india_crm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 2. import the dump
mysql -u root review_india_crm < database/review_india_crm.sql
On Windows with XAMPP:
"C:\xampp\mysql\bin\mysql.exe" -u root -e "CREATE DATABASE review_india_crm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
"C:\xampp\mysql\bin\mysql.exe" -u root review_india_crm < database\review_india_crm.sql
Option B — import from phpMyAdmin
- Open http://localhost/phpmyadmin.
- Click New in the left sidebar → database name
review_india_crm, collationutf8mb4_unicode_ci→ Create. - Select that database, open the Import tab.
- Click Choose file, select
database/review_india_crm.sqlfrom the project, then Go. - Wait for the success message; you will see all
ri_*tables in the left pane.
Option C — import from Adminer / TablePlus / DBeaver
- Connect with your MySQL root credentials.
- Create a new database
review_india_crm(utf8mb4 / unicode_ci). - Use the tool’s Import SQL file feature and select
database/review_india_crm.sql.
Wire the app to the database
Open app/Config/Database.php and confirm the credentials match your server. The shipped values already match the bundled dump:
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => '',
'database' => 'review_india_crm',
'DBDriver' => 'MySQLi',
'DBPrefix' => 'ri_',
Change only the values that differ on your hosting environment.
Verify the import worked
USE review_india_crm;
SELECT COUNT(*) FROM ri_users; -- must be 1
SELECT COUNT(*) FROM ri_settings; -- must be > 50
SELECT setting_value FROM ri_settings WHERE setting_name='app_title';
-- expected: Review India CRM
If any query returns 0 rows, the import did not complete — re-run option A with a fresh empty database, watching for any error output.
Encryption key
A unique encryption key is set in app/Config/App.php at the line:
public $encryption_key = "<random 15-char hex>";
Generate a fresh one when you migrate to a new domain:
php -r "echo substr(md5(random_bytes(8)), 0, 15);"
App state
The app state at the top of index.php is:
$app_state = "installed";
Leave this as installed. The legacy installer wizard (/install/) is no longer present.
Local dev server
For quick local testing without Apache:
cd <project root>
php -S 127.0.0.1:8765 -t .
Then open http://127.0.0.1:8765.
First login
Default seeded administrator:
Email: admin@reviewindia.local
Password: admin123
On the very first login for any user the application shows a license-verification splash screen (see License verification) and then redirects to the dashboard. Subsequent logins go straight to the dashboard.
Change the default password from My Profile → Change password immediately after first login. The default credential is meant for local installation only.
Architecture
Review India CRM is built on CodeIgniter 4 with the following structure:
| Folder | Purpose |
|---|---|
app/Controllers/ | HTTP entry points for every module (Leads, Projects, Invoices, Signin, Home…). |
app/Models/ | Database access classes used by controllers. |
app/Views/ | Page templates (HTML/PHP) including the new home/ landing page and signin/ auth pages. |
app/Helpers/ | Global helper functions, including branding_helper.php which enforces the credit guard. |
app/Libraries/ | Shared services such as Template, Left_menu, Google integrations. |
assets/ | Bundled JavaScript and CSS (app.all.js, app.all.css, custom-style.css). |
files/system/ | Logos, favicons and other system images that the app reads from settings. |
License verification
On a user’s first authenticated session the app presents an animated splash with four stages:
- Connecting to Review India…
- Connecting to Data2Sales AI server…
- Verifying license key…
- Finalizing…
When the animation completes, the client posts to signin/complete_license_verification. The endpoint stores a per-user setting user_<id>_license_verified=1 and returns the redirect target. After this, the splash never shows again for that user.
To force the splash for an admin user (e.g. for QA), delete the row from the settings table:
DELETE FROM ri_settings WHERE setting_name = 'user_1_license_verified';
Sidebar credit guard
The Review India and Data2Sales AI credits in the sidebar are protected by a runtime integrity check. The guard lives in app/Helpers/branding_helper.php and is invoked by every controller that extends App_Controller:
- If the helper file is missing → HTTP
500on every page. - If the helper output no longer contains Review India, reviewindia.org, Data2Sales AI and bulkdataprovider.com → HTTP
503. - If
app/Views/includes/left_menu.phpno longer referencesri_brand_footer→ HTTP503.
Do not edit, rename or remove these files unless you have a co-branding arrangement with Review India. Doing so will halt the application.
Dashboard
The dashboard is the landing screen after sign-in. It hosts widgets for tasks due today, project status, open invoices, lead-funnel charts and recent activity. Each user can rearrange or hide widgets from Customise dashboard in the topbar.
Projects & tasks
Projects support kanban, Gantt and list views. Each task has labels, custom fields, attachments, sub-tasks, comments, time logs and reminders. Recurring tasks and templates speed up repeating work, and time logs feed both timesheet reports and invoiceable hours.
Leads & CRM
The leads module is the entry point of the CRM funnel. Leads have status, owner, source, labels, custom fields and a contact tree. They convert to clients with one click. The pipeline can be visualised either as a list or a kanban board.
Both the list and kanban views expose an Import B2B Leads From Data2Sales AI button at the top of the page — see the next section.
Data2Sales AI import
Click Import B2B Leads From Data2Sales AI on the Leads page to open bulkdataprovider.com/premium, where you can purchase or download a verified B2B contact list. Exported data is shaped to drop straight into Review India CRM via the standard Import leads button next to it.
| Field in Data2Sales export | Maps to lead field |
|---|---|
| company_name | Company name |
| contact_name | Primary contact |
| phone | Phone |
| industry | Custom field / Source |
| address | Address |
Estimates & invoicing
Build branded estimates and contracts, convert them to invoices in one click, and accept Stripe or PayPal payments. Recurring invoices are supported, and tax/discount rules can be configured per item or per invoice. The invoice logo is read from the invoice_logo setting and currently points to files/system/review-india-logo.png.
Messaging & clients
Built-in chat (powered by Pusher channels named review-india-chat-event / review-india-pusher-event) handles team and client conversations. Clients sign in to a separate portal where they see only their projects, invoices and tickets.
Light / dark theme
A theme toggle is available in the top header (sun ↔ moon icon). Click to switch instantly. The choice is persisted in localStorage.ri_theme on the user’s browser.
- The theme is applied before paint via an inline boot script in
app/Views/includes/head.php, so there is no flash of un-themed content. - The dark stylesheet lives in
assets/css/custom-style.cssunder:root[data-theme="dark"]. - Light mode is the default and uses the stock palette.
Logos & favicon
The logo files are stored in files/system/:
| File | Used for |
|---|---|
| review-india-logo.png | Sidebar logo, sign-in page logo, invoice logo |
| ../assets/images/favicon.png | Browser favicon (Review India glyph) |
| sigin-background-image.jpg | Optional sign-in background |
To swap a logo, replace the file and clear browser cache. To point at a different file name, update the site_logo / invoice_logo rows in ri_settings or use Settings → General settings.
App title
The browser title and email-from name come from the app_title setting. The shipped value is Review India CRM. Update it from Settings → General settings → App title.
Backups
Two things must be backed up:
- The MySQL database
review_india_crm—mysqldump -u root review_india_crm > backup.sql - The
files/folder — this contains uploads, project files, profile images and your branding assets.
Troubleshooting
HTTP 503 — sidebar branding missing
Restore the call to ri_brand_footer() in app/Views/includes/left_menu.php and the helper file in app/Helpers/branding_helper.php.
HTTP 500 on every page
Branding helper is missing. Restore app/Helpers/branding_helper.php from your release package.
Login loops to the verify page
The app could not save user_<id>_license_verified. Check DB write permissions and the ri_settings table.
Theme does not change
Hard refresh (Ctrl+Shift+R) so the new custom-style.css loads. Make sure JavaScript is enabled and localStorage is not blocked.
Pusher chat not delivering
Ensure both server (app/Helpers/general_helper.php) and client (assets/js/notification_handler.js) reference the same channel events: review-india-chat-event, review-india-chat-typing-event, review-india-pusher-event.
"You don't have any active license"
This message is no longer triggered in this build — the legacy _verfy path was removed from assets/js/app.all.js. If it returns, restore the patched appExtend / mapBodyColor functions.
Support
For product, billing and customisation requests, contact:
- Review India — support@reviewindia.org · reviewindia.org · +91 6289295096
- Data2Sales AI — bulkdataprovider.com
Designed & developed by Review India · Powered by Data2Sales AI · © Review India Software & Advertising Pvt. Ltd.