WP LeadFlow CRM
A complete CRM and lead-management platform built into WordPress — pipeline, contacts, tasks, email, analytics and a REST API.
by Djouonang Landry · github.com/landrydjouonang-hue/wp-leadflow-crm
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/landrydjouonang-hue/wp-leadflow-crm/archive/refs/heads/main.zipA complete CRM and lead-management platform built into WordPress. Leads and a drag-and-drop sales pipeline, companies and contacts, tasks, follow-ups, notes, an activity timeline, email with templates, CSV import and export, an analytics dashboard, per-role access control and a secure REST API — with no external services and no runtime dependencies.
By Djouonang Landry · GPL-2.0-or-later · Requires WordPress 6.4+ and PHP 8.0+
What it does
| Area | Highlights |
|---|---|
| Dashboard | Ten KPIs (new, qualified, won and lost leads, pipeline value, conversion rate, tasks, follow-ups) and five charts, filtered by period and owner. Charts are rendered by a small dependency-free SVG renderer with keyboard-accessible tooltips and a data table for every chart. |
| Leads & pipeline | Configurable stages with colours and win probabilities, a drag-and-drop board (with a keyboard-friendly "Move to" control and a no-JavaScript fallback), assignment, filters and bulk actions. |
| Companies & contacts | Full CRUD screens with search, status views, sorting, pagination, screen options, trash and restore, plus notes on every record. |
| Tasks & follow-ups | Due dates, priorities, assignees, overdue indicators and a menu bubble; follow-ups record an outcome. |
| Activity timeline | Automatic history (created, stage changes, won/lost, assignment, value, notes, tasks, emails) plus manually logged calls, emails and meetings. |
Reusable templates with {{placeholders}} and a live preview, composing from any record, signature, "send me a copy", per-user hourly limits, delivery errors captured, and a searchable email log. |
|
| Import & export | CSV import with column mapping, type conversion, duplicate detection, an exact preview and an error report; CSV export that re-imports cleanly; and a complete JSON backup. |
| Access control | A permission matrix for every capability and role, a team screen for CRM roles, and safeguards against lock-out and privilege escalation. |
| REST API | CRUD for leads, companies, contacts, tasks and activities with schema-driven validation, permission callbacks, paging, filters and Application Password authentication. |
| Operations | Data-retention policies, a private debug log, a system status report, contextual help on every screen, and clean activation, upgrade, deactivation and uninstall handling. |
Install
- Copy the
wp-leadflow-crmfolder intowp-content/plugins/. - Activate it on the Plugins screen. Tables, roles and settings are created automatically; upgrades run their migrations on the next request.
- Open LeadFlow CRM → Dashboard, then add team members under LeadFlow CRM → Access control → Team.
How it is built
- Modular architecture. Each feature area is a module
(
src/Modules/<Feature>) that declares its pages, capabilities, migrations and REST controllers;ModuleManagerboots them. Adding a feature means adding a module, not editing the core. - Repository data layer. All SQL lives in
src/Dataandsrc/Database. Repositories validate and sanitize from a declarative column schema, use prepared statements with allow-listed identifiers, handle soft deletes, object caching and lifecycle hooks — and the same rules serve the admin screens, the CSV importer and the REST API. - Versioned migrations. Thirteen migrations with batches, rollback and error reporting; InnoDB foreign keys where the host supports them.
- Security by default. Nonce, then capability, then work — on every form, AJAX endpoint and REST route; record-level meta capabilities; escaping at output; protected upload and log folders.
- Accessible, responsive admin. ARIA tab panels, labelled controls, live-region announcements, visible focus, reduced-motion support and layouts that work down to phone width. Every JavaScript feature has a server-side fallback.
- No dependencies. No build step, no bundler, no third-party PHP or JS libraries — only WordPress APIs.
Demo data and the screenshot pipeline live in .github/demo/;
Responses follow WordPress conventions: 201 Created with a Location
header, paging headers, _links to related records, and field-level
validation errors.
Roadmap
Lead capture forms, reporting exports, and saved dashboard views.
License
GPL-2.0-or-later. See LICENSE.