tr Skip to content

Security in a self-hosted automation plugin for WordPress

FlowMattic runs on your WordPress server. Workflows, connections and run history are rows in your own database, and nothing leaves the server unless a step you configured sends it. This page describes what the plugin does to keep it that way; it claims no certifications.

Self-hosted on your serverOAuth through Connects, no pasted keysSigned webhooks verifiedSecrets masked in Task History

The Connects list in FlowMattic: each row is an app connection authorised on this site, with its app, label and status
Every connection is a row in your own database; apps that support OAuth are authorised in a popup so no key is pasted into a workflow.

Your data stays where WordPress is

There is no FlowMattic account your workflows sync to and no server of ours in the path of a run. Triggers fire inside WordPress, steps execute there, and Task History is written to your database. The only outbound requests are the ones your steps make: a message to Slack, a prompt to the AI provider you chose, a webhook to a service. Licence and update checks contact our servers, back off during an outage and can be switched off with a constant.

  • Workflows, connections, tables and Task History in your site database
  • AI requests go straight to the provider with your key; FlowMattic runs no proxy
  • FlowMattic Cloud is optional, and relays only webhooks and schedule timings
Your WordPress server Workflows Connections Task History Tables one database, your backups, your access rules Apps a step sends to AI provider, your key FlowMattic Cloud, optional only the requests your steps make leave the server

Credentials handled once, then never retyped

Connects holds every app authorisation. For apps that support OAuth the authorisation completes in a popup, so no API key is pasted into a workflow at all and tokens are renewed by the plugin. Keys for apps that use them are saved on the Connect, selected by name in steps, and masked wherever Task History records a step's inputs.

  • OAuth, Basic, Bearer Token and API key authentication under one Connects screen
  • Fields named like a password, secret, token, API key or authorisation header are recorded as asterisks
  • Magic login links expire, 1 minute to 30 days, and are never issued for a user who can manage the site
A run opened from Task History, listing each step with its status and a Re-execute button; step inputs are recorded with secrets masked

What comes in is checked before it runs

A webhook trigger can verify the sender's signature before the workflow starts, with replay protection and a log-only mode for testing. A delivery relayed through FlowMattic Cloud carries a Cloud signature, and the sender's own signature is checked against the time the webhook was first received, so a retry still passes the sender's replay window.

  • Signature schemes for Stripe, GitHub, Shopify, WooCommerce, Slack, Razorpay and Paddle, plus a custom option
  • REST authentication allowance scoped to the MCP OAuth routes alone
  • MCP tool switches off by default; workflows an AI client creates are saved switched off
  • Public chat endpoints rate-limited, replies sanitised, and the assistant crawler blocked from private hosts
The FlowMattic Status screen listing environment checks for the server, PHP, database and scheduler, each marked as passing or needing attention

Access follows WordPress roles

FlowMattic adds a manage_workflows capability to Administrators and to a FlowMattic Workflow Manager role you can give to people who build automations without being site admins. Settings, FlowMattic Tables and the Cloud screen stay with administrators, and a setting decides whether workflow managers can open the Integrations page or delete apps.

  • Administrator and Workflow Manager roles; everyone else sees no FlowMattic menu
  • Admin-only settings, tables, billing and MCP tool management
  • Nonce and capability checks on saves, not the nonce alone
The FlowMattic Settings screen with its General, access and module sections

Controls built into the plugin

Each of these is in the product today and documented in the changelog.

Connects

One-click OAuth for apps that support it, hosted by FlowMattic for the handshake only; the tokens land on your site.

Webhook signatures

Stripe, GitHub, Shopify, WooCommerce, Slack, Razorpay, Paddle and custom schemes, with replay protection and a log-only mode.

Masked secrets

Task History records every step's inputs with passwords, tokens and keys replaced by asterisks, in the screen and over MCP.

MCP authentication

OAuth 2.1 for Claude and ChatGPT, a header token for other clients, enforced on every transport once on, and tool management admin-only.

Magic login links

Expire after a lifetime you set, default one hour, and open on a confirmation page so an email scanner cannot consume them.

Roles

Administrator and Workflow Manager access to the admin, with settings and billing kept to administrators.

GDPR triggers and actions

Run a workflow when a user confirms an export or erase request, and create, confirm or execute one from a step.

Encrypt, sign, verify in a step

Data Transformer actions for AES-256 encrypt and decrypt, JWT create and verify, TOTP codes, UUIDs and random strings.

Status screen

Environment checks for PHP, database, scheduler and licence so a misconfigured host shows up before a workflow fails.

What leaves your server, and when

A plain account of each kind of data, so you can answer the question before a customer asks it.

DataWhere it livesWhen it leaves
Workflows and Task HistoryYour site databaseOnly when you export a workflow as JSON, or an MCP client you connected reads it
App connections and keysYour site database, under a ConnectSent only to the app each one belongs to, in the request a step makes
Prompts to an AI step, Jaadu or an assistantNot held by FlowMattic beyond the run's Task HistorySent to the provider you chose, with your key; never through a FlowMattic server
Webhooks delivered via CloudRelayed by hooks.flowmattic.com to your siteDelivered events are counted, not stored; failed and held events kept until replayed or expired
Schedules run on CloudFire times on FlowMattic CloudCloud calls your site at the scheduled time; the workflow data never leaves
Licence and update checksNothing stored beyond the licence keyPeriodic checks to FlowMattic's servers, cached on failure, off entirely with FLOWMATTIC_DISABLE_REMOTE_CHECKS

Questions about security and self-hosting

Does FlowMattic see my data?

No. The plugin runs on your WordPress server, and workflows, connections and Task History are rows in your own database. The only requests that leave are the ones your steps make: a message to Slack, a prompt to your AI provider, a webhook to a service. FlowMattic's own servers are contacted for licence and update checks, which a constant can switch off.

Where are my API keys and OAuth tokens kept?

In your site's database, on your server, under a Connect. For apps that support OAuth, Connects completes the authorisation in a popup so no key is pasted into a workflow at all. Task History masks any field whose name looks like a password, secret, token, API key or authorisation header.

Is FlowMattic certified, for example SOC 2 or ISO 27001?

No certification is claimed. FlowMattic is software you install and host, so the controls that apply are your host's and your own: TLS, backups, user accounts and updates. This page describes what the plugin itself does to keep data on your server and out of logs.

What does FlowMattic Cloud hold?

Cloud is optional. If you deliver a webhook through it, the event is relayed to your site: delivered events are counted, not stored, and only failed or held events are kept until you replay them or they expire. If you run schedules on Cloud, it holds the fire times. Everything else stays on your server.

Who can open FlowMattic in wp-admin?

Administrators, and any user you give the FlowMattic Workflow Manager role. Settings, FlowMattic Tables and the Cloud screen need an administrator, and a setting controls whether workflow managers can open the Integrations page or delete apps. Magic login links are never issued for a user who can manage the site.

Does an AI step send my data to FlowMattic?

No. An AI Agent, Jaadu or an AI Assistant sends its request straight to the provider you chose, with your own key, from your server or your browser. FlowMattic runs no proxy and adds no markup, and with an OpenAI-compatible local model the request never leaves your network.

Can workflows help with GDPR requests?

Yes. WordPress triggers fire when a user confirms an export or erase request, and actions can create, confirm and execute an export or erasure, so the request can be logged, acknowledged by email and carried out as a workflow.

Did not find your answer? You can browse the help center or ask us directly.

Automation that stays on your server

Install FlowMattic on a site you control, connect the apps you use, and keep every workflow, credential and run where your backups and access rules already apply.

Self-hosted 909+ integrations Running on 12,859+ sites

Customers who run it every day

Rated 4.8 out of 5 by customers
Read more reviews

Not only is the product exactly what I needed for my WordPress site, but the couple of times I have needed technical support they have been very responsive and helpful. Great to see new product enhancements almost every month.

Laurence

Outstanding service and best customer support I ever had with a wordpress plugin. Thank you very much for your great work!