Title: PrimoCRM
Author: primocrm
Published: <strong>October 9, 2026</strong>
Last modified: October 9, 2026

---

Search plugins

![](https://ps.w.org/primocrm/assets/banner-772x250.png?rev=3736786)

![](https://ps.w.org/primocrm/assets/icon.svg?rev=3736786)

# PrimoCRM

 By [primocrm](https://profiles.wordpress.org/primocrm/)

[Download](https://downloads.wordpress.org/plugin/primocrm.1.0.0.zip)

[Live Preview](https://mri.wordpress.org/plugins/primocrm/?preview=1)

 * [Details](https://mri.wordpress.org/plugins/primocrm/#description)
 * [Reviews](https://mri.wordpress.org/plugins/primocrm/#reviews)
 *  [Installation](https://mri.wordpress.org/plugins/primocrm/#installation)
 * [Development](https://mri.wordpress.org/plugins/primocrm/#developers)

 [Support](https://wordpress.org/support/plugin/primocrm/)

## Description

**PrimoCRM** is a CRM and email-marketing system that runs entirely inside your 
WordPress dashboard. No third-party SaaS, no per-contact pricing, no data leaving
your server. Your contacts, campaigns and automations are yours, stored in your 
own database.

Manage your audience, send broadcast campaigns, build drip sequences, capture leads
with forms, and wire it all together with a visual, no-code automation builder. 
Sending runs through a background queue, so large sends are batched and throttled
instead of timing out on a single request.

#### Everything you get for free

 * **Contact management**, unlimited contacts, lists, tags and segments. Import 
   and export your audience as CSV.
 * **Email campaigns**, compose and send broadcast newsletters to any list or segment,
   with open and click tracking.
 * **A background sending engine**, emails are queued and sent in throttled background
   batches via WP-Cron, with a self-healing queue health check so a stalled send
   never silently drops mail.
 * **Email sequences**, build automated drip series that nurture contacts over days
   or weeks.
 * **Visual automations**, a drag-and-drop builder with triggers (form submitted,
   tag applied, contact created, and more) and actions (send email, add note, add/
   remove tag, add to list, and more).
 * **Lead-capture forms**, build native forms that create or update contacts and
   fire your automations.
 * **Email templates**, save and reuse branded templates with merge tags / smart
   codes (business name, unsubscribe link, manage-subscription link, and more).
 * **Dashboard analytics**, contact growth, send volume and engagement over time.
 * **Send through PHP Mail or your own SMTP**, use the WordPress default mailer 
   or point PrimoCRM at any custom SMTP host.
 * **One-click migration from FluentCRM**, bring your existing contacts, lists and
   tags across.
 * **No usage caps**, build as many automations, sequences, forms and templates 
   as you need. Nothing is metered.
 * **Privacy-first uninstall**, deleting the plugin never erases your CRM data unless
   you explicitly opt in (see the FAQ).

#### PrimoCRM Pro

[PrimoCRM Pro](https://primocrm.com/pricing/) adds:

 * **A/B subject-line testing** for campaigns, with automatic or manual winner selection.
 * **Drag-and-drop visual email builder** for responsive HTML emails.
 * **Premium SMTP providers**, Amazon SES, SendGrid, Mailgun, Postmark and Brevo,
   with bounce handling.
 * **REST API keys & webhooks**, integrate PrimoCRM with the rest of your stack,
   both inbound and outbound.
 * **Advanced reports**, detailed campaign, list and engagement breakdowns beyond
   the free dashboard.
 * **50+ premium automation triggers** for WooCommerce, LearnDash, TutorLMS, LearnPress,
   LifterLMS, AcademyLMS, Easy Digital Downloads, SureCart, and the major form plugins(
   Gravity Forms, Elementor, Ninja Forms, Formidable, JetFormBuilder).

PrimoCRM is fully functional without Pro, Pro is an optional upgrade.

### External services

PrimoCRM does not phone home. It sends no usage data, no analytics and no contact
data to us or to anyone else, and it works with no external connection at all.

The plugin can optionally connect to the two anti-spam services below. **Both are
disabled by default.** Neither is contacted until you enter that provider’s keys
yourself in PrimoCRM  Settings  Spam Protection, and disconnecting is simply a matter
of clearing those keys.

#### Cloudflare Turnstile (optional, off by default)

Used to protect your public PrimoCRM forms from spam and bot submissions, if you
choose to enable it.

When it is enabled, and only then:

 * Visitors loading a page containing a PrimoCRM form also load the Turnstile widget
   script from `https://challenges.cloudflare.com/turnstile/v0/api.js`. As with 
   any script, the visitor’s browser exposes their IP address and user agent to 
   Cloudflare, and Cloudflare uses signals from the browser to decide whether the
   visitor is human.
 * When that form is submitted, your server sends the challenge token from the widget,
   your Turnstile secret key, and the submitting visitor’s IP address to `https://
   challenges.cloudflare.com/turnstile/v0/siteverify` to confirm the challenge was
   passed.

No other form data, and no contact or CRM data, is sent to Cloudflare.

This service is provided by Cloudflare, Inc.: [Terms of Service](https://www.cloudflare.com/website-terms/),
[Privacy Policy](https://www.cloudflare.com/privacypolicy/).

#### Google reCAPTCHA (optional, off by default)

An alternative anti-spam option for your public PrimoCRM forms, if you choose to
enable it instead.

When it is enabled, and only then:

 * Visitors loading a page containing a PrimoCRM form also load the reCAPTCHA script
   from `https://www.google.com/recaptcha/api.js`. As with any script, the visitor’s
   browser exposes their IP address and user agent to Google, and Google collects
   browser and interaction signals to score the visitor.
 * When that form is submitted, your server sends the reCAPTCHA response token, 
   your reCAPTCHA secret key, and the submitting visitor’s IP address to `https://
   www.google.com/recaptcha/api/siteverify` to verify the response.

No other form data, and no contact or CRM data, is sent to Google.

This service is provided by Google LLC: [Terms of Service](https://policies.google.com/terms),
[Privacy Policy](https://policies.google.com/privacy).

If you enable either service, remember that your own site’s privacy policy should
mention it, since the visitor’s IP address is shared with a third party.

### Source code and build process

PrimoCRM’s admin interface is a React application. The files in `assets/dist/` and`
assets/css/` are compiled, production-mode webpack output. The complete, unminified,
human-readable source they are built from ships inside this plugin:

 * `src/admin/` , the React admin application (JSX) and its SCSS stylesheets
 * `src/public/` and `src/frontend/` , the public-facing form scripts and styles
 * `webpack.config.js` and `package.json` , the build configuration and exact dependency
   versions

To rebuild every compiled asset from that source, run the following from the plugin
directory:

    ```
    npm install
    npm run build
    ```

That regenerates `assets/dist/*.js`, `assets/js/primo-forms.js`, `assets/css/admin.
css` and `assets/css/primo-forms.css` exactly as shipped. `npm run dev` runs the
same build in watch/development mode.

The remaining stylesheets in `assets/css/` and `assets/js/` are plain, unminified,
hand-written CSS and JavaScript with no build step: they are already the source.

Third-party libraries bundled into the compiled output are MIT licensed (React, 
React Router, Chart.js, dnd-kit, flatpickr, react-icons, xyflow); their copyright
banners are preserved in the accompanying `.LICENSE.txt` files. Two of the icons
react-icons supplies come from sets under other GPL-compatible licences: the crown
from Font Awesome Free (CC BY 4.0) and the send icon from Remix Icon (Apache 2.0).
flatpickr is additionally vendored, unmodified, at `assets/vendor/flatpickr/` with
its licence, and the Inter font at `assets/vendor/inter/` is under the SIL Open 
Font License 1.1, included beside it.

## Installation

 1. Upload the `primocrm` folder to `/wp-content/plugins/`, or install it directly 
    from **Plugins  Add New** in your dashboard.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Open **PrimoCRM** in the admin sidebar to reach the dashboard.
 4. Visit **PrimoCRM  Settings** to set your business name, address and email footer,
    and to choose how PrimoCRM sends mail (PHP Mail or custom SMTP).
 5. Create a list, add or import contacts, and send your first campaign.

PrimoCRM uses WP-Cron for background sending. On high-traffic sites WP-Cron runs
reliably on its own; on low-traffic sites consider configuring a real server cron
to hit `wp-cron.php` so queued emails always go out on schedule. **Settings  System
Status** shows the live health of the sending engine, including whether cron is 
running reliably.

For best performance on large contact databases, PrimoCRM recommends MySQL 5.7+ 
or MariaDB 10.2+.

## FAQ

### Does deleting the plugin delete my contacts?

No, not by default. PrimoCRM is safe by default: deactivating or deleting the plugin
leaves all your tables, contacts and settings untouched. If you genuinely want a
clean wipe, enable **Settings  Email Settings  “Delete all PrimoCRM data when the
plugin is uninstalled”** _before_ you delete the plugin. Only then will uninstalling
drop PrimoCRM’s tables and options. Its scheduled background events are removed 
either way, since they are not data. On multisite this is handled per site.

### Where is my data stored?

In your own WordPress database, in tables prefixed with `wp_primocrm_` (matching
your site’s table prefix). Nothing is sent to an external service. If you use a 
premium SMTP provider in Pro, outgoing mail is delivered through that provider, 
as you’d expect.

### Will large campaigns time out?

No. Campaigns are queued and sent in small throttled batches through the background
engine, with a periodic queue health check that recovers stalled sends. You can 
keep working while a campaign goes out.

### How fast does PrimoCRM send, and can I send to a large list?

That depends on your sending method. Shared hosts typically cap PHP mail at a few
hundred emails per hour, so PrimoCRM defaults to a safe hourly rate there and spreads
big sends out automatically — the queue keeps working until every email is delivered.
If you connect your own SMTP service (or a premium provider like Amazon SES or SendGrid
via Pro), raise or remove the hourly limit in **Settings  SMTP** and PrimoCRM will
send at full speed. For lists in the tens of thousands, a dedicated SMTP/ESP service
is strongly recommended — both for speed and for deliverability.

### How do contacts unsubscribe?

Every email includes unsubscribe and manage-subscription links via merge tags in
your footer. Unsubscribes are recorded against the contact and respected on all 
future sends.

### Can I move over from FluentCRM?

Yes. PrimoCRM includes a built-in migration tool that imports your FluentCRM contacts,
lists and tags. It’s part of the free plugin.

### Do I need Pro?

No. The free plugin is a complete CRM and email-marketing system. Pro adds A/B testing,
a visual email builder, premium SMTP providers, the REST API and webhooks, advanced
reporting, and 50+ e-commerce/LMS/form automation triggers, but it’s entirely optional.

### Is PrimoCRM translation-ready?

Partly. Everything PrimoCRM prints from PHP, including its emails and public pages,
uses the `primocrm` text domain, and a translation template ships in `/languages/
primocrm.pot`. The React admin screens are English-only in this release.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PrimoCRM” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ primocrm ](https://profiles.wordpress.org/primocrm/)
 *   [ Sirajus Salehin Shuvo ](https://profiles.wordpress.org/sirajussalehin/)

[Translate “PrimoCRM” into your language.](https://translate.wordpress.org/projects/wp-plugins/primocrm)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/primocrm/), check out
the [SVN repository](https://plugins.svn.wordpress.org/primocrm/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/primocrm/) by [RSS](https://plugins.trac.wordpress.org/log/primocrm/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Official 1.0 release.
 * Reliability: campaign, sequence and automation steps are recorded in a durable
   execution ledger before they run, so a server timeout mid-step cannot deliver
   a duplicate email or repeat an action when the worker resumes.
 * Reliability: an email interrupted after it reached the mail provider is never
   re-sent. It is marked “unconfirmed” with an explanation instead, because a duplicate
   to a real subscriber is worse than a rare one that needs resending by hand.
 * Reliability: a queue-building error can no longer skip part of a campaign’s audience
   and then send as though the list were complete. The build retries the affected
   batch and never finalizes a short send.
 * Reliability: deleting a contact cancels any email still queued for them.
 * Reliability: recipients who unsubscribe or are deleted after a campaign is queued
   get a terminal “skipped” state, so the campaign completes instead of staying “
   sending”.
 * Reliability: an automation ending in a Wait step completes instead of repeating.
 * Performance: added database indexes for email open/click tracking and unsubscribe
   lookups — public tracking endpoints now stay fast on very large contact databases.
 * Reliability: background workers now adapt their time budget to the server’s PHP
   execution limit, so batches finish cleanly on restrictive shared hosting.
 * Reliability: added self-healing for automation runs and email batches interrupted
   by a server timeout — nothing gets silently stuck.
 * New: configurable hourly send-rate limit (Settings  Email Sending) with a safe
   automatic default for PHP mail and full speed for SMTP providers.
 * Forms now work correctly on fully page-cached sites (submission tokens no longer
   expire with the page cache).
 * Contacts CSV export now streams efficiently on very large databases.
 * Old sent-email bodies are pruned automatically after 90 days (filterable) to 
   keep the database lean.
 * Hardening: direct-access guards across all plugin files.
 * New: WooCommerce lifetime value tracking. Each contact now carries their total
   spend, order count and last-order date, kept in sync automatically from order
   activity and available in automation conditions (Pro), for example “no order 
   in 90 days” win-back flows or VIP segments.
 * New: {{contact.meta.KEY}} smart code renders any contact custom field inside 
   emails.

#### 0.0.7

 * Added an opt-in, non-destructive uninstall routine: plugin data is preserved 
   unless you explicitly enable deletion in Settings.
 * Added a “Delete all PrimoCRM data on uninstall” control in General settings.
 * Promoted Send Email and Add Note to free automation actions.
 * FluentCRM migration is now available on the free tier.
 * Added full translation support and shipped `languages/primocrm.pot`.
 * Numerous reliability and hardening improvements to the contacts, campaigns, sequences
   and analytics modules.

## Meta

 *  Version **1.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/primocrm/)
 * Tags
 * [contacts](https://mri.wordpress.org/plugins/tags/contacts/)[crm](https://mri.wordpress.org/plugins/tags/crm/)
   [Email Marketing](https://mri.wordpress.org/plugins/tags/email-marketing/)[marketing automation](https://mri.wordpress.org/plugins/tags/marketing-automation/)
   [newsletter](https://mri.wordpress.org/plugins/tags/newsletter/)
 *  [Advanced View](https://mri.wordpress.org/plugins/primocrm/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/primocrm/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/primocrm/reviews/)

## Contributors

 *   [ primocrm ](https://profiles.wordpress.org/primocrm/)
 *   [ Sirajus Salehin Shuvo ](https://profiles.wordpress.org/sirajussalehin/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/primocrm/)