What is TextCRM?

TextCRM is a complete WhatsApp Business CRM & Marketing Platform built on the official WhatsApp Business API. It gives businesses everything they need to manage customer conversations, run marketing campaigns, and automate support — all through WhatsApp.

Built with Laravel 10, React 18, and Inertia.js — TextCRM works on shared hosting, VPS, and cloud servers. It includes a web-based installer, multi-language support, and a fully customizable interface.

Feature Highlights

TextCRM comes packed with powerful features designed to help you manage customer relationships through WhatsApp. Here are the core capabilities that set TextCRM apart.

WhatsApp Business API

The foundation of TextCRM. Connect your WhatsApp Business Account via Meta Cloud API v21.0 for real-time messaging, template management, and webhook integration.

Core Platform

Real-time Chat Inbox

Live WebSocket-powered inbox for instant message delivery. Filter, search, assign agents, attach media, and manage all conversations from one place.

Core Platform

Campaign & Broadcast

Schedule and send bulk WhatsApp broadcasts with timezone support, audience targeting via segments/lists, and detailed delivery analytics.

Highlight

Visual Chatbot Flow Builder

Drag & drop chatbot designer powered by React Flow. Build conversation flows with conditional logic, media nodes, and interactive button/list messages — zero coding required.

Highlight

Keyword Automation

Auto-trigger responses, chatbot flows, or agent assignments when incoming messages match predefined keywords. Supports text, image, document, and template replies.

Highlight

Reply Materials

Centralized media library for agents. Link quick reply templates, images, documents, videos, and chatbot flows to keywords for fast, consistent automated responses.

Highlight

Working Hours

Set business hours and holidays with auto-reply rules for off-hours. Messages received outside working hours trigger configurable automated responses.

Highlight

Default Actions

Configure fallback responses when no keywords match. Set auto-replies for off-hours messages and define timeout responses for unanswered conversations.

Highlight

Task Manager

Built-in task management for agents with assignments, priority levels, due dates, status tracking, and threaded comments for clear team accountability.

Highlight

Embeddable Chat Widget

Customizable WhatsApp chat widget for any website. Configure brand colors, position, header text, logo, and pre-filled messages — embed with a single script tag.

Highlight

Webhook Flow

Connect any external app via webhooks. Generate unique URLs, map incoming data fields to WhatsApp template variables, and track delivery with detailed reports.

Highlight

Agent Management

Zone-based agent assignment with role-based permissions. Create agents, manage teams, control access levels, and monitor agent activity from one dashboard.

Highlight

Minimum System Requirements

Before you get started, please ensure that your server meets the following minimum system requirements:

Server Requirements

  • Web Server: Apache or Nginx
  • Operating System: TextCRM is compatible with a wide range of operating systems, including but not limited to Linux, macOS, and Windows. You can use TextCRM on your preferred operating system without any compatibility concerns.
  • Server Resources:
    • CPU: At least 1-2 CPU cores
    • RAM: 1 GB of RAM
    • Disk Space: 10-20 GB of disk space

PHP Version

TextCRM requires PHP version 8.2 or higher.

MySQL Version

TextCRM is compatible with MySQL version 5.7 or higher.

Get Support

If you need assistance or have any questions, our support team is here to help.

You can reach us for support through the following channels:

We're available to assist you with any inquiries or issues you may encounter while using TextCRM.

Installation

Before you start the installation, please read the key considerations below.

Key Considerations

  • Database: Do not import the database manually, as the auto-installer will do it automatically.
  • ZIP Extraction: When extracting vx.x.x - textcrm.zip downloaded from your codecanyon account, ensure extraction completed without path too long issue prompt. To resolve this, move the ZIP file to a shorter path and rename it to a shorter name and try to extract it again.

  1. Login into you cPanel.
  2. Go to database in your cPanel.
  3. Enter database name and Create a new database.
  4. Create Database user.
  5. Assign Database to the user.
  6. Open File manager now.
  7. Go to public_html or public_html/your-textcrm.com folder in the file manager, whichever folder your domain points to.
  8. Upload the downloaded zip in public_html or public_html/your-textcrm.com folder.
  9. Unzip or extract the vx.x.x - textcrm.zip file that you have just uploaded.
  10. Verify that all these files are in public_html or public_html/your-textcrm.com folder.
  11. Verify that all these files are in public_html or public_html/your-textcrm.com folder. Then rename .env.example to .env.
  12. Visit http://your-textcrm.com/install and welcome to TextCRM start installation.
  13. Visit http://your-textcrm.com/install and proceed to the system requirements.
  14. Visit http://your-textcrm.com/install and set permissions for files and folders.
  15. Visit http://your-textcrm.com/install and setup the general and database configuration.
  16. Visit http://your-textcrm.com/install and complete the license verification.
  17. Visit http://your-textcrm.com/install and configure the admin user.
  18. Visit http://your-textcrm.com/install and and confirm that the installation is successful.

Now click Go to Login. That's it! You are ready to run your App: http://your-textcrm.com

Queue Worker & Scheduler — Shared Hosting

Shared hosting does not support persistent background processes. Use cron jobs to keep the queue worker and task scheduler running. Add both entries in your cPanel Cron Jobs manager.

1. Queue Worker Cron Job

Runs every minute, processes any pending jobs, then exits cleanly:

* * * * * /usr/local/bin/php /home/username/public_html/artisan queue:work --stop-when-empty

2. Task Scheduler Cron Job

Triggers Laravel's built-in scheduler every minute:

* * * * * /usr/local/bin/php /home/username/public_html/artisan schedule:run >> /dev/null 2>&1

Note: Replace /home/username/public_html/ with your actual project path. You can find the correct PHP binary path in your cPanel Terminal by running which php. Reverb WebSocket server is not supported on shared hosting — use Pusher as your broadcast driver instead.

Queue Worker, Scheduler & Reverb — VPS / Dedicated Server

On a VPS or dedicated server, use Supervisor to manage all three background processes. No cron entry is needed — Supervisor keeps everything running persistently and restarts processes automatically on failure.

1. Install Supervisor

sudo apt-get install -y supervisor

2. Queue Worker — Supervisor Config

Create the file /etc/supervisor/conf.d/textcrm-worker.conf:

[program:textcrm-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work database --sleep=3 --tries=3 --max-time=3600
directory=/var/www/html
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/queue-worker.log
stopwaitsecs=3600

3. Scheduler — Supervisor Config

Create the file /etc/supervisor/conf.d/textcrm-scheduler.conf:

[program:textcrm-scheduler]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan schedule:work
directory=/var/www/html
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/scheduler.log

4. Reverb WebSocket Server — Supervisor Config

Only required if you selected Laravel Reverb as your broadcast driver. Create the file /etc/supervisor/conf.d/textcrm-reverb.conf:

[program:textcrm-reverb]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan reverb:start
directory=/var/www/html
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/reverb.log
stopwaitsecs=3600

5. Apply & Start Supervisor

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start textcrm-queue:*
sudo supervisorctl start textcrm-scheduler:*
sudo supervisorctl start textcrm-reverb:*

Note: Replace /var/www/html/ with your actual project root path and www-data with your server user. If using Pusher as your broadcast driver, skip the Reverb supervisor config entirely.

Installation on Local Computer

  1. Install Prerequisites: Ensure you have the following installed:
    • PHP (version >= 8.2).
    • Web Server (e.g., XAMPP, WAMP, or LAMP). Start Apache and MySQL services after installation.
  2. Download the Project: Extract the ZIP file: vx.x.x - textcrm.zip. Place the extracted folder in your web server's root directory:
    • For XAMPP: C:/xampp/htdocs/
    • For WAMP: C:/wamp/www/
    • For LAMP: /var/www/html/
  3. Set Up Environment File: Open the .env file included with the project and update the database details:
                    DB_CONNECTION=mysql
                    DB_HOST=127.0.0.1
                    DB_PORT=3306
                    DB_DATABASE=your_database_name
                    DB_USERNAME=root
                    DB_PASSWORD=
                                            
  4. Set Up the Database: Open phpMyAdmin in your browser: http://localhost/phpmyadmin. Create a new database with the same name as specified in the .env file under DB_DATABASE.
  5. Serve the Application: Run the Laravel development server:
    php artisan serve
    Access the application at http://127.0.0.1:8000. Then run Queue Worker, Scheduler, Reverb - if configured.

Configure TextCRM

Use the given guide to configure and customize TextCRM as you need.

Login as admin by,

  1. Enter Admin Log in id and password. Click Sign in.
  2. Great! You have logged in as Admin.

General Settings

The Account tab displays your personal profile information including your name, email address, phone number, gender, date of birth, and profile photo. Click the Edit Account button to update any of your details through a quick modal form.

The Security tab allows you to update your account password to keep your account protected. Enter your current password, set a new one with a minimum of 8 characters, confirm it — the Update button activates only when all fields are valid.

The Notifications tab lets you control sound settings for your inbox. Use the toggle switch to enable or disable audible alerts so you are notified whenever a new message arrives.

App Config

App Config allows the admin to customize the application's branding and appearance — including the app name, logo, favicon, and theme colors (primary and button). Changes made here are reflected across the entire application immediately after saving.

Language

Here, the admin can create and manage multiple languages for the application. Each language can be enabled or disabled, and the admin can open the Translate editor to customize every UI label and text string directly — using the English reference as a guide.

Email Settings

Admin can configure the SMTP mail server settings including the mail driver, host, port, encryption (TLS/SSL), username, password, and sender information. Once configured, use the built-in Send Test Email tool to verify the connection is working correctly.

Email Templates

Here you can manage email template here. Enable/Disable as per requirements.

Broadcast Settings

Here, the admin can configure the real-time broadcast driver that powers live inbox and chat features. Choose between Pusher (recommended for shared hosting, free tier available) or Laravel Reverb (self-hosted, requires VPS) and enter the corresponding credentials to enable real-time communication. Without broadcast setting chat functionality will not work.

SEO Settings

Manage your website's SEO easily by setting the page title, meta description, and keywords from one simple settings panel.

Role & Permission

Company Admin always have all the permission. Here you can set permissions for agent or custom roles.

Generate API Key

Here, the admin can generate and manage API keys for integrating TextCRM with external applications. Each key has a title, a secure token that can be revealed, copied, or revoked, and an active/inactive status toggle to control access.

Meta App

Meta App is your gateway to connecting TextCRM with the WhatsApp Business API. Enter your Meta App credentials — App ID and Access Token — copy the generated webhook URL into your Meta dashboard & set configuration.

Connect WABA

Connect WABA is a one-click setup that links your WhatsApp Business Account to TextCRM. Once the connection is complete, your phone number appears in the Connected Channels list where you can activate, deactivate, or view its details at any time.

Inbox

The Inbox is the central hub for all WhatsApp conversations — view and filter live chats by status, date, channel, or favorites, start new conversations, send templates or quick replies, attach media, assign agents, and add private notes, all updated in real time.

Contacts

Manage and organize your contacts, segments, lists and folders.

Segment

Segments are the top-level building blocks for organizing your contacts. Create and name segments to categorize your audience — each segment acts as a container that holds lists and all the contacts within them.

List

Lists sit inside segments and let you break your audience into more targeted groups. Create multiple lists within a segment to organize contacts by campaign, region, or any other criteria that fits your workflow.

Folder

Folders add a third layer of organization inside lists, keeping large contact groups neatly structured. Group contacts into folders for finer control, and export the entire folder's contact data whenever needed.

Contacts

This is where all your individual contacts live. Add them manually one by one, or bulk import via CSV — then view, search, and manage contacts across all your segments, lists, and folders from a single table.

Template

Before sending messages, WhatsApp requires pre-approved message templates. Build templates with a header, body, footer, and action buttons — choose from call-to-action or quick reply button types — then submit them to Meta for approval. Once approved, templates become available for use in campaigns and broadcasts.

Campaign

The module allows users to create, schedule, and deliver WhatsApp message campaigns using approved templates from the WhatsApp Cloud API. It supports compliant, high-volume communication with leads and contacts.

Users can define their target audience by selecting a segment, contact list, or folder, or by applying contact filters. After choosing the start date, time, and time zone, users can schedule the campaign. Once scheduled, the campaign is automatically delivered to recipients through the connected WhatsApp account.

Automation

Manage and organize your automation flow.

Chatbot Flow

Using the Flow Builder, users can design, automate, and manage interactive chatbot conversations with ease.

Message flows can be triggered by predefined keywords, enabling the system to automatically respond to user inquiries. This allows businesses to deliver product information, handle frequently asked questions, and streamline customer support through efficient, automated interactions.

Keyword Automation

With keyword automation, users can create WhatsApp message flows using predefined keywords and reply content.

When a user sends a message that exactly matches a keyword, the system automatically sends the configured reply. Responses can include quick replies, images, documents, or full chatbot flows, allowing users to receive product-related information through automated message conversations.

Reply Material

Using reply materials, the system can automatically send messages to users. By linking keywords with reply materials, users can configure features such as Quick Reply Templates, images, documents, videos, chatbot flows, and Meta templates to deliver automated responses.

Working Hours

Users can set their working hours and define holidays. Messages received outside of working hours can trigger automated replies, or a specific working hour message template can be configured.

Default Actions

Administrators can configure how replies are handled when no keywords match. This includes setting responses for messages received outside working hours, as well as defining the reply a user will receive if no keyword match occurs and they do not get a response within 15 minutes.

Task Manager

Task Manager keeps your team on track by letting admins create and assign tasks to one or more agents — each with a title, description, priority level, and due date. Assigned agents can update the task status, view full details, and leave threaded comments, ensuring clear accountability from creation to completion.

Chat Widget

Chat Widget turns your website into a WhatsApp entry point. Customize the floating button's brand color, position, header text, logo, and pre-filled message — then copy the generated script and embed it on any webpage to let visitors start a WhatsApp conversation instantly.

Webhook Flow

Webhook Flow bridges your external systems with WhatsApp messaging. Generate a unique webhook URL, point any third-party service at it, map the incoming data fields to your WhatsApp template variables, and TextCRM automatically sends a personalized message for every trigger — with full delivery reports to track results.

Manage Agent

Admin can manage agents in this section.

Create Agent

Creating an agent sets up a new team member with full login credentials — fill in their name, email, phone, and password, assign a role that determines their permissions, and set their initial status to Active or Inactive.

Agent List

Agent List gives the admin a complete overview of all agents and their assigned roles. Edit agent details, toggle active status, or remove agents with soft-delete support — deleted agents move to a trash view where they can be restored or permanently removed.

Demo Access

Want to explore TextCRM before installing? Use the live demo to experience all features firsthand.

Demo URL: https://textcrm-demo.luminousdemo.com

Admin Login

Email: admin@demo.com

Password: 12345678

Agent Login

Email: agent@demo.com

Password: 12345678

Note: To maintain consistency, create, update, and delete actions are restricted. Feel free to explore all features in testing mode.