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.
PrimoCRM Pro adds:
PrimoCRM is fully functional without Pro, Pro is an optional upgrade.
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.
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:
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.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, Privacy Policy.
An alternative anti-spam option for your public PrimoCRM forms, if you choose to enable it instead.
When it is enabled, and only then:
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.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, Privacy Policy.
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.
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 stylesheetssrc/public/ and src/frontend/ , the public-facing form scripts and styleswebpack.config.js and package.json , the build configuration and exact dependency versionsTo 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.