The short answer
Evaluate a Mautic CRM plugin by checking how it represents deals, how much of that model its API exposes, how it signs webhooks, its release and upgrade evidence across Mautic major versions, where records and files reside, and what its license covers. Then run a first-hour test: create a deal, link contacts with roles, move the deal, use the required API routes, validate a signed webhook, and review the documented upgrade path. Record each result against your operating requirements before you choose.
The checks below reflect how I review a self-hosted plugin: begin with the records your team must own, convert every claim into a staging test, and keep documented behavior separate from assumptions.
Evaluate the entity model, not the menu
A CRM screen can look complete while storing the sales process in a few contact fields. Start by listing the records and relationships your team needs to filter, automate, report on, retain, and audit. Then map each requirement to a real entity, field type, relationship, and history record.
Deals and pipelines
Check whether deals are independent records with their own owner, value, stage, pipeline, status, timestamps, and custom fields. Verify that stages belong to a named pipeline and preserve a stable order.
People and roles
Check whether several contacts can join one deal and whether the relationship carries a role. A plain contact link cannot answer who approves, evaluates, influences, or controls budget.
Work and context
Inspect how tasks, notes, files, and timeline events connect to the deal. Confirm that each record has the ownership, status, dates, and permissions your process needs.
History and lifecycle
Move a deal between stages, change its value, reassign it, and archive it. Look for an attributable history and document what deletion, restoration, export, and retention mean.
Map API coverage to real workflows
An API label does not establish coverage. Write down the actions each integration must perform, including deal creation and updates, stage changes, contact-role associations, tasks, notes, files, timeline reads, and pipeline lookup. Match every action to a documented route and test the permissions of the account that will call it.
- Inputs: required fields, accepted field types, relationship identifiers, and idempotency behavior.
- Outputs: response shape, pagination, filters, sort order, timestamps, and relationship expansion.
- Failures: authentication, authorization, validation, duplicate requests, missing records, rate limits, and throttling responses.
- Change safety: whether stage movement and association changes use explicit operations or implicit field updates.
Use the vendor’s reference to build the test, but treat the response from your installed version as the result. Save one successful and one rejected request for each workflow your automation will depend on.
Test webhook signing as a failure path
Webhook documentation should identify the signing algorithm, the exact bytes that are signed, the signature encoding and header, and any timestamp or replay rule. It should also explain how secrets are created, rotated, and revoked. If any of those details are unclear, keep the integration in staging until a valid request and every required rejection case behave predictably.
- Send a valid raw payload. Confirm the event is accepted once and logged without exposing the secret.
- Change one byte. Reuse the old signature and confirm the modified payload is rejected.
- Omit or damage the signature. Confirm both cases fail without processing the event.
- Test replay controls. If the scheme includes time, replay an old signed request and verify the documented result.
- Rotate the secret. Record how old and new credentials behave during the change.
Separate compatibility ranges from upgrade evidence
A dependency range says which versions a package declares; it does not say which exact application, PHP, database, and plugin combinations were exercised. Ask for a dated test matrix, release history, upgrade instructions, known issues, and a rollback path. Compare the dates with the Mautic major version you plan to run.
Evidence to keep: the plugin version, target Mautic version, PHP and database versions, test date, cache and migration steps, passing workflows, known failures, and the build you can restore.
Run the upgrade on a recent staging copy. Reload plugins, apply migrations, rebuild caches, review logs, and repeat the deal, role, task, API, webhook, and audit checks. Release frequency matters less than whether the evidence covers your target stack and the vendor explains how fixes reach supported versions.
Trace records, files, logs, and outbound requests
“Self-hosted” does not answer every data-location question. Trace core database records, uploaded files, logs, telemetry, update checks, support diagnostics, and license validation separately. Record the destination, fields sent, transport, retention, failure behavior, and deletion path for each external request.
- Find the database tables and filesystem paths used for operational records.
- Inspect browser and server network traffic during setup and ordinary use.
- Review scheduled jobs, update checks, license checks, and diagnostic exports.
- Test what remains usable when an external service cannot be reached.
- Map backups, restores, exports, and deletions to your own retention policy.
Read the license as an operating constraint
Compare licensing models by the rights and dependencies they create, not by a headline amount. Check the licensed unit, production and staging rights, user limits, transfer rules, update and support periods, renewal effects, version access, and the behavior of installed data when validation is unavailable.
Put the terms beside your deployment diagram. A license tied to an instance or hostname affects migrations, domain changes, disaster recovery, test environments, and periods when old and new versions run side by side. Ask how each case is handled before it becomes an urgent support request.
Run a first-hour staging test
Treat the first hour as a fixed test order after prerequisites are ready, not as a promised setup duration. Use a staging copy with representative permissions and sample contacts. Capture observations, screenshots, requests, responses, and log entries as you go.
- Install and inspect. Reload the plugin list, confirm activation, rebuild caches if documented, and review the application log.
- Create the sales model. Add a pipeline and ordered stages, then create a deal with owner, value, and custom data.
- Build the committee. Attach several existing contacts with different role labels and verify the relationships from both relevant views.
- Move and work the deal. Change its stage, add a note, create and complete a task, attach a safe test file, and inspect the history.
- Exercise the API. Perform the reads and writes required by one real integration, including a rejected request with insufficient permission.
- Exercise inbound signing. Send a valid event and the altered, missing-signature, and replay cases required by the documented scheme.
- Trace storage and traffic. Locate the new records and file, observe outbound requests, and test the documented external-service failure behavior.
- Read the upgrade path. Match the installed build to its changelog, compatibility evidence, migration steps, and rollback procedure.
Worked example: apply the checklist to Deal Flow
I am Deal Flow’s founder and developer. The following is a documentation review, checked September 4, 2026, followed by the staging checks an evaluator should still run. It reports what the shipped materials establish and calls out what they do not establish.
Entity model
Deal Flow’s shipped changelog lists deals, pipelines, ordered stages, role-labeled contact associations, tasks, notes, attachments, audit events, custom fields, and inbound webhook sources across its data and integration model. Confirm the relationships and permissions with a sample deal. Review the shipped changelog.
API coverage
The published reference covers deal list, create, read, and update paths, stage movement, contact association, notes, tasks, and pipeline and stage lookup. It does not establish every possible operation, so test each route your integration needs. Read the API reference.
Webhook signing
The webhook documentation describes HMAC-SHA256 verification for inbound requests. Exact request handling can vary with the installed build, so use that build as the test target and confirm the per-source credential, raw body, accepted header format, replay behavior, and rejection logs before connecting a sender. Read the webhook reference.
Major-version evidence
The package declares dependency ranges for Mautic 5, 6, and 7. The compatibility page says exact tested combinations and a last-tested date are not recorded, so those remain staging checks rather than inferred claims. Read the compatibility record.
Data location
Core deal records stay in the customer’s Mautic database, and attachments use a local upload path. License validation sends the key and hostname, update checks send the plugin version, and administrator-configured outgoing webhooks can send deal and contact payloads to chosen destinations. Test backups, file permissions, network behavior, and failure cases. Read Security and Data.
License and setup
The published terms describe a paid license as perpetual for one Mautic instance, with unlimited users, one year of updates and support, and a separate key for staging or development. The install and uninstall guide covers plugin reload, log review, and primary screens without promising a fixed duration; the installation guide adds an API Docs check. Read the terms, lifecycle checks, and installation checks.
Apply the checklist to your own Mautic setup
Review Deal Flow’s scope and licensing after you have listed the records, integrations, and staging checks your team requires.
Review Deal Flow for Your Mautic SetupSources
Deal Flow product details on this page were checked September 4, 2026 against these shipped pages. The neutral checklist is an evaluation method, not a claim that every plugin uses the same architecture.
- Changelog — shipped record types and release history.
- API Reference — documented deal, relationship, task, note, pipeline, and stage routes.
- Webhook Reference — inbound signing guidance.
- Mautic Compatibility — declared major-version ranges and documented evidence limits.
- Security and Data — database, attachment, license-validation, update-check, and configured webhook data flows.
- Terms of Service — instance, user, update, support, and environment terms.
- Install and Uninstall and Installation Guide — activation and verification steps.
Frequently asked questions
What should a Mautic CRM plugin store as separate records?
It should keep any object you need to own, filter, automate, or audit as a distinct record rather than hiding it in contact fields. For a deal workflow, inspect how the plugin represents pipelines, stages, deals, involved contacts and roles, tasks, notes, attachments, and change history.
How much API coverage does a CRM plugin need?
Enough to perform every integration path you plan to operate. List required create, read, update, transition, association, task, note, attachment, and history actions, then test each documented route and its permissions. Do not infer coverage from the existence of an API page.
How should I test webhook signing?
Send a valid payload, change one byte without updating the signature, replay an old request if timestamps are part of the scheme, and inspect rejection logs. Verify signed input against the exact raw request body, and confirm secret rotation and failure behavior.
How do I check support for a Mautic major upgrade?
Separate declared dependency ranges from tested evidence. Ask for versions, test dates, upgrade steps, rollback plans, and changelog entries, then repeat installation and workflow tests on a staging copy running the target version.
Where should plugin data live, and which license terms should I review?
Trace core records, files, logs, telemetry, and license checks separately. Review instance limits, staging rights, user limits, update and support periods, renewal effects, transfer rules, and what happens to stored records if the license service cannot be reached.