What our monitoring can see
Your n8n keeps a record of every run in its own database, on your instance. We watch whether your instance is up, which does not touch that database at all. Anything beyond that is something you switch on yourself, and nothing is on by default.
What you can switch on
Each setting is a separate tick box on your instance page, and each one adds exactly one thing.
| Setting | What we read | What we still cannot see |
|---|---|---|
| (nothing - the default) | Nothing at all. No query is ever run against your database. | Everything. |
| Tell me when a workflow fails | How many runs failed. A number. | Which workflow, what it does, any of your data. |
| ...and tell me which workflow | The workflow's name. | What the workflow does, and any of your data. |
| ...and keep the error so support can help me | The error message. | Your workflow's contents and your credentials. |
Leaving everything off does not reduce the service. Uptime monitoring, backups, restarts, updates and certificate renewal all keep working, because those watch the container your instance runs in rather than what is inside it.
Workflow contracts read the same thing, and nothing more
If you buy the workflow contracts add-on, it counts how many times a workflow ran, so it can tell you when one stops running. That is the same run metadata in the table above - a count of rows, not their contents. It reads nothing extra, and it needs Tell me when a workflow fails switched on first. With monitoring off it does not connect to your database at all, so a contract simply reports nothing rather than switching anything on for you.
This is enforced, not promised
Our monitoring connects to your database with a login that is not permitted to open the table your run data is stored in. That is not a policy we follow; it is a permission PostgreSQL refuses.
You can check it yourself. Connect to your own database and run:
-- Everything SpliceRun's monitor is allowed to read:
SELECT table_name, column_name, privilege_type
FROM information_schema.column_privileges
WHERE grantee = 'n8n_failure_probe'
ORDER BY table_name, column_name;
-- And what it is allowed on the table holding your run data:
SELECT count(*) AS grants_on_your_run_data
FROM information_schema.table_privileges
WHERE grantee = 'n8n_failure_probe'
AND table_name = 'execution_data';
The first query returns nine rows: seven pieces of run metadata (id, workflow id, status, mode, started, stopped, deleted) plus the workflow's id and name. The second returns 0.
If you have monitoring switched off, the monitor does not connect to your database at all - the permissions above are simply never used.
Being straight with you
Your instance runs on our server. In principle, whoever operates a server can reach what is on it. That is true of every managed host, and anyone telling you otherwise is selling something. What we have done is remove our own ability to read your workflow contents, and make that something you can verify rather than take on trust.
If you need a stronger guarantee than that, run n8n on your own server. With Bring Your Own Server the machine is yours, we hold only an app-management key that you can revoke at any time, and none of the above applies - there is nothing of yours on our hardware.
Questions about what we can see? Contact Support.