Search by

statusi / mautic-plugin-statusi

jaldip

All your digital marketing data in one place. Statusi connects Mautic, Google Ads, Meta Ads, Google Analytics, Looker Studio and more, turns raw data into meaningful insights inside Mautic, and works with AI assistants like ChatGPT, Claude and others.

Package info

github.com/jaldip/mautic-plugin-statusi

Homepage

Type:mautic-plugin

pkg:composer/statusi/mautic-plugin-statusi

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.0 2026-10-27 05:52 UTC

This package is auto-updated.

Last update: 2026-11-03 10:59:01 UTC


README

Stop jumping from one platform to another to understand your marketing.

Your email campaigns are in Mautic. Your ad spend is in Google Ads and Meta Ads. Your traffic is in Google Analytics. Your reports live in Looker Studio or spreadsheets. To answer one simple question, like "What is working and where should my budget go?", you open several tools, export data and put the picture together by hand.

Statusi does that work for you. It connects all your marketing apps, collects their raw data, compiles it and turns it into meaningful insights you can act on, for every kind of digital marketing project. This plugin brings Statusi into Mautic.

What you can do with Statusi

  • Run every digital marketing project from one place: email marketing, paid search, paid social, SEO and website traffic, product launches, lead generation, retention campaigns and client work.
  • Turn raw data into meaningful insights: Statusi pulls the raw data from each platform, cleans and combines it, and gives you performance, trends and results across all channels, not separate numbers in separate tools.
  • Connect all your apps through Statusi integrations: Mautic, Google Ads, Google Analytics, AdSense, Meta (Facebook & Instagram) Ads, Mailchimp, ChatGPT Ads, Ongage, Click Go, and reporting tools such as Looker Studio.
  • Get AI-powered insights: connect AI assistants such as ChatGPT and Claude to your Statusi data and ask questions in plain language, like "Which campaign gave the best return last month?". You get clearer, deeper and more meaningful insights from all your marketing data at once.
  • Measure what matters: campaign performance, ad spend and return, email engagement (sends, opens, clicks, bounces, unsubscribes), lead and contact growth, and which channel brings the best results.
  • Report to clients and teams faster: agencies and in-house teams get detailed, up-to-date reports without manual exports or copy-pasting between tools.

What this plugin adds to Mautic

  • Statusi reports inside Mautic: your Statusi reports in a Statusi reports section of the Mautic sidebar, so you see the full picture without leaving Mautic.
  • Statusi integrations inside Mautic: connect, edit, activate and deactivate your marketing platforms from Mautic. Sign in with Google, Facebook or Mailchimp and choose your accounts. No coding needed.
  • Automatic daily sync: Mautic contacts and email activity sync to Statusi every day, so your insights stay current.
  • Secure and read-only: Statusi can only read your Mautic contacts and emails, never change them. Tokens are encrypted, and you can disconnect at any time.

Built for digital marketers, marketing agencies and growth teams who run campaigns across email, search, social and web, and want every result in one place.

Get started in minutes: install the plugin, click Connect to Statusi and add your platforms.

Screenshots

A Statusi report in Mautic

A Statusi report in Mautic

Statusi integrations

Statusi integrations in Mautic

Creating an integration

Choosing a platform for a new integration

Connecting to Statusi (Settings > Plugins > Statusi)

Mautic connected to Statusi

Requirements

  • A Statusi account (sign up).
  • Mautic 7 and PHP 8.2 or newer (a Composer-based Mautic install is recommended).
  • Mautic reachable from Statusi's servers over https, for the daily sync (Statusi accepts http only for localhost).
  • config/local.php writable, so connecting can turn on Mautic's API (otherwise turn it on yourself under Settings > Configuration > API Settings).

Install

From the Mautic root directory (the folder with composer.json):

composer require statusi/mautic-plugin-statusi
php bin/console mautic:plugins:reload
php bin/console cache:clear

Composer puts the plugin in plugins/MauticStatusiBundle (docroot/plugins/MauticStatusiBundle on Mautic's recommended-project setup). In production (APP_ENV=prod) also rebuild Mautic's assets, so the report pages get the plugin's JavaScript and CSS:

php bin/console mautic:assets:generate

Then open Settings > Plugins > Statusi and click Connect to Statusi.

Upgrade: composer update statusi/mautic-plugin-statusi, then the same bin/console commands.

Without Composer: download MauticStatusiBundle-<version>.zip from the latest GitHub Release and unzip it into Mautic's plugins/ folder, so you get plugins/MauticStatusiBundle (the folder must have exactly this name; to upgrade, replace the old folder). Then run the same commands, or use Settings > Plugins > Install/Upgrade Plugins.

Uninstall: disconnect first (this revokes Statusi's access and deletes its API client), then composer remove statusi/mautic-plugin-statusi, php bin/console mautic:plugins:reload and php bin/console cache:clear.

Connect

Settings > Plugins > Statusi > Connect to Statusi opens the Statusi sign-in popup (email and password only). After you choose an account the popup closes and the plugin shows Connected to Statusi. When you close the plugin window, the Statusi reports and Statusi integrations sidebar items appear.

Connecting also turns on Mautic's API and creates one read-only API client for Statusi's daily sync (see Daily data sync to Statusi).

Disconnect revokes the token in Statusi, removes it from Mautic and deletes Statusi's API client.

Reports

The Statusi reports sidebar section lists All reports plus one item per report of the connected account. The list is cached for 5 minutes (a failed fetch for 1 minute, with a 5 second timeout), so Mautic pages do not call Statusi on every request. Every Statusi page shows the Statusi logo in its header.

Integrations

The Statusi integrations sidebar item (separate from Statusi reports) lists the connected account's integrations like Statusi's own Integrations page (platform, task, status) and lets every Mautic user who can see the Statusi reports:

  • Activate / Deactivate an integration (Statusi only pulls data for active ones).
  • Create integration for any Statusi platform, and Edit existing ones, all inside Mautic:
    • Ongage: API key and task. Contact Manager integrations get the field mapping page (default mapping from the default Ongage list, plus list specific mappings).
    • Click Go and ChatGPT Ads: API key forms. ChatGPT Ads can manage several ad accounts (status, display name, remove, replace key).
    • Google Ads / AdSense / Analytics, Meta Ads, Mailchimp: "Sign in with Google / Facebook / Mailchimp" starts the provider sign-in from Mautic. The provider returns to Statusi, which stores the tokens and sends the browser back to Mautic (/s/statusi/integrations/oauth/<platform>), where you pick the accounts or properties (Mailchimp: the tracking days).
  • The Mautic integration created by Connect is shown read-only; it is managed with Connect / Disconnect.

Security

  • Authorization code + PKCE (S256) + state; the code is exchanged server-to-server, so the API token never passes through the browser.
  • Every call sends X-Statusi-Client: mautic. Statusi only accepts the token with that flag, and only on the report endpoints (/report/dynamic_query, /report/get-reports) and the integration endpoints Statusi > Integrations uses (/integration/get_lists, /integration/platforms, /integration/integration-status, Click Go and ChatGPT Ads). Each request names the account in the Account-Id header and Statusi refuses any other account than the token's.
  • The token is locked to one Statusi account. It stops working when it is revoked, or when the user who connected it leaves the account.
  • Mautic stores the token encrypted in the integration's API keys. Statusi stores only a SHA-256 hash of it.
  • Statusi accepts an http Mautic URL only for localhost. Every other Mautic URL must use https.
  • Statusi's API client for the daily pulls can only read contacts and emails (writes get 403). Its secret travels only in the server-to-server token request; Statusi stores it encrypted. Disconnect deletes the client.

Daily data sync to Statusi

Connecting gives Statusi read-only access to Mautic's API (a dedicated OAuth2 client-credentials client with a view-only role), and Statusi's daily jobs pull contacts and email activity through two flat, cursor-paged exports: GET /api/custom/email-activity-export and GET /api/custom/contact-attribute-export. Field mapping, the Statusi side and the rollout checklist: Docs/STATUSI_DATA_SYNC.md.

Email activity report API

GET /api/custom/email-activity-report?dateFrom=…&dateTo=… returns every email activity in a date range, grouped email → contacts → activities (sends, opens, clicks, failures, unsubscribes, bounces, campaign steps), using Mautic's API authentication. Parameters, response, field sources, performance and limitations: Docs/EMAIL_ACTIVITY_REPORT.md.

Contact attribute change API

GET /api/custom/contact-attributes?dateFrom=…&dateTo=… returns the contacts created or updated in a date range with their current attributes, and (with includeHistory=true) the field-level history Mautic recorded in its audit log. Definitions, parameters, response, limits and measurements: Docs/CONTACT_ATTRIBUTES_REPORT.md.

Development

Statusi environment

The plugin uses two Statusi addresses:

  • https://app.statusi.io: the Statusi web app, opened in the sign-in popup when you connect.
  • https://api.statusi.io: the Statusi API, used server-to-server for the token, reports and integrations.

To use another Statusi environment (e.g. staging), set environment variables (e.g. in .env.local; they take precedence) or config/local.php:

MAUTIC_STATUSI_APP_URL=https://app.staging.example.com
MAUTIC_STATUSI_API_URL=https://api.staging.example.com
'statusi_app_url' => 'https://app.statusi.io', // Statusi web app (login popup)
'statusi_api_url' => 'https://api.statusi.io', // Statusi API

Run php bin/console cache:clear after changing them.

Reading reports in code

$data = $statusiClient->dynamicQuery([
    'rows'   => [...],
    'values' => [...],
    // columns, filters, pagination, base, ... as in Statusi's dynamic_query
]);

account_id is filled in automatically from the connection.

FAQ

Can I see all my marketing data in one place in Mautic? Yes. Statusi collects data from Mautic, Google Ads, Meta Ads, Google Analytics and your other connected apps, and shows the reports inside Mautic under Statusi reports.

How do I combine Google Ads, Meta Ads and email marketing data? Connect each platform once under Statusi integrations. Statusi pulls their raw data every day and combines it into one set of reports.

Does Statusi work with Looker Studio and other reporting tools? Yes. Statusi integrates with reporting tools such as Looker Studio, so you can use your combined marketing data there too.

Can I use ChatGPT, Claude or other AI assistants with my marketing data? Yes. Connect AI assistants such as ChatGPT and Claude to Statusi and ask questions about all your marketing data in plain language, for clearer and more meaningful insights.

Is it only for dashboards? No. Statusi supports every kind of digital marketing project: email campaigns, paid ads, SEO and traffic, launches, lead generation and client reporting.

Can Statusi change my Mautic data? No. Statusi's access to Mautic is read-only: it can read contacts and email activity, nothing else.

Support

Report bugs and questions in GitHub Issues. Changes per version: CHANGELOG.md.

License

GPL-3.0-or-later. See LICENSE.