Campaign QA Bundle
Lint Mautic campaigns before publishing — catch missing dependencies, unreachable nodes, token errors, duplicate send risks, and broken conditions automatically.
Campaign QA
Summer Re-engagement 2025
All 7 email dependencies resolved
All segment references exist
Entry conditions are reachable
Node "Wait 3 days" followed by immediate action — may create zero-delay chain
Node "Send Re-engagement" has no outgoing path — contacts will stop here
Token {{contact.company}} used in "Intro Email" — field not guaranteed on all contacts
Duplicate send risk: "Welcome Email" reachable via 2 independent paths
No unreachable nodes detected
8 checks · 2 blocking · last run 14:31
Description
Campaign bugs are invisible until they affect real contacts. A broken condition means no one advances. An unreachable node means an action never fires. A missing dependency means a send fails silently. By the time you notice, the damage is done.
Campaign QA Bundle adds a preflight check layer to Mautic's campaign builder. Before a campaign goes live, the plugin inspects its full graph: every node, every path, every dependency, every token. It surfaces problems in a structured, readable format — the same checks every time, on every release.
Teams use it at handoff, before migration, before launch, and as a gate in their deployment process.
Who It Is For
- –Agencies that hand off campaigns to clients and need a structured safety check before delivery
- –Admins and marketing operations teams running frequent campaign releases
- –Release managers who want CI-style validation gates on Mautic deployments
- –Technical teams that need machine-readable output for automated pipelines
Features
- –Inspect any campaign by ID or name from the admin panel or CLI
- –Detect nodes with no outgoing paths — contacts reach them and stop
- –Detect nodes that no contact can ever reach given the campaign's entry conditions
- –Verify that all emails, forms, segments, assets, and custom objects referenced in campaign actions actually exist
- –Identify conditions that will always evaluate to the same result
- –Detect timing configurations that create unintended wait loops or zero-delay chains
- –Analyze paths for duplicate send risk — flag cases where a contact may receive the same email more than once
- –Validate all token references in email and SMS action bodies
- –Output results as human-readable diagnostics in the admin UI
- –Output results as machine-readable JSON for integration with CI pipelines and deployment scripts
- –Optional deployment gate: campaigns cannot be published until all blocking checks pass
CLI Usage
# Inspect a specific campaign by ID
php bin/console mautic:campaign:qa --campaign-id=42
# Inspect all unpublished campaigns
php bin/console mautic:campaign:qa --all --status=unpublished
# Output as JSON for pipeline integration
php bin/console mautic:campaign:qa --campaign-id=42 --format=jsonInstallation
This plugin requires Mautic 7 and PHP 8.1 or later.
Download the ZIP package:
- 1.Download CampaignQaBundle-0.1.0.zip
- 2.Verify the checksum: CampaignQaBundle-0.1.0.zip.sha256
- 3.Extract the ZIP into your Mautic `plugins/` directory
- 4.Run:
php bin/console cache:clear
php bin/console mautic:plugins:reloadThe ZIP includes a full `INSTALL.md` with step-by-step instructions.
All published releases are listed on the release index.
Enable from Settings → Plugins. The QA panel becomes available on each campaign's detail page and through the CLI command.
The in-app guide is available at mautic.bse-corp.com/s/campaign-qa/guide (requires Mautic login).
What It Does Not Do
- –It does not edit or fix campaigns automatically — it reports, you decide
- –It cannot guarantee campaign performance or delivery outcomes
- –It does not replace functional testing with real contacts in a staging environment
Changelog
- –Campaign graph linting with per-node diagnostic output
- –Dependency checks for emails, forms, segments, and assets referenced in campaigns
- –Unreachable node detection — identifies nodes no contact can reach
- –Broken condition and timing risk detection
- –Duplicate send risk analysis across campaign paths
- –Token safety validation in email and SMS actions
- –Machine-readable JSON output for CI and deployment pipeline integration
- –Optional deployment gate: block campaign publishing until checks pass
Feedback
Found a bug? Have a feature idea? Something unclear? Use the form below.