Security
How WorkflowRadar handles your data.
You're handing us API keys to your clients' automation infrastructure. Here's exactly what we do with them, what we don't do, and the architectural choices that keep the surface small.
What we collect from your n8n instance
You connect each n8n instance by pasting its base URL and a public API key into a workspace. Once connected, we pull on a schedule:
- Workflow metadata: name, nodes, trigger type, connected apps, owner, tags, active state, and JSON structure for change tracking.
- Execution records: status (success / error / running), start + end timestamps, duration, the failed node name, and a sanitized version of the error message.
- AI usage: input + output token counts per execution, computed via the LangChain telemetry that n8n already emits.
We do not read or store the data flowing through your workflows. We never see the request payloads your Stripe webhook receives, the Salesforce records your sync touches, or the email bodies your workflow sends.
Encryption at rest
Every n8n API key you give us is encrypted with AES-256-GCM before it touches the database. The decryption key lives in our Vercel environment, never in source control. Keys are decrypted only in-memory when the sync worker needs them and never logged.
Pre-LLM secret sanitization
When we send an error message or workflow shape to Claude for AI summarization or root-cause diagnosis, the input passes through a sanitizer first. Anything matching one of these patterns is replaced with a placeholder:
- Stripe live + test keys (
sk_live_…,rk_…) - JSON Web Tokens (
eyJ…) - AWS access key IDs and secret access keys
- GitHub personal access tokens (
ghp_…,gho_…) - Bearer tokens in HTTP headers
- Long hex strings (32+ chars — likely secrets)
- Email addresses
- UUIDs
- URL paths (we keep the host, strip the path)
We also never send parameter values from workflow nodes to the LLM — only the node TYPE and the parameter PATH. If your workflow has a Slack node with a hard-coded webhook URL, the LLM sees n8n-nodes-base.slack: webhookUrl, not the URL itself.
Access controls
Every table in our Postgres database has row-level security enabled. The policy looks up the current user's organization memberships and only returns rows belonging to those orgs. A compromised auth token can only see the orgs that user already had access to.
Workspaces inside an org are visible to every member of that org. Cross-org access requires explicit invitation. There's no global admin role on customer data — even our internal staff queries are scoped by org.
Hosting + subprocessors
- Supabase — Postgres + Auth + Storage. Hosted on AWS us-east-1.
- Vercel — Application hosting + serverless compute.
- Resend — Transactional email (alerts, report delivery, invitations).
- Anthropic (Claude) — AI summaries, diagnoses, change explainers. Inputs are sanitized first; no parameter values are sent.
- Google Analytics 4 — Marketing-site analytics (cookies + anonymized IP-based geo). Marketing host only, never the dashboard. Opt-out available via Google's browser extension.
Incident response
If you suspect a credential leak or unauthorized access in your workspace, email hello@workflowradar.io and we'll respond within 24 hours. We can rotate the encryption envelope on your connection on request and audit the access log for unusual reads.
What we won't do
- We won't sell your data. We make money from subscriptions.
- We won't train models on your workflow contents. Anthropic's commercial API doesn't train on customer traffic by default.
- We won't read your workflow execution payloads. The product doesn't need them and we never store them.
- We won't surprise you with subprocessor changes. New ones get announced via email to your org's primary contact before they go live.
Questions
Email hello@workflowradar.io for security-specific questions or anything you'd want covered in a vendor review. We'll usually reply same-day.
