Security
Your data, and what we do with it
We ask you to upload the numbers your board sees. That deserves a straight answer about how they're handled — including the things we can't yet claim.
Try it with a sample fileData integrity
The guarantee the product is built on
Integrity here is an architectural property, not a policy promise. These are structural constraints in the pipeline.
Your numbers are immutable
Every numeric value is captured in a canonical snapshot the moment your file is parsed, before any AI call is made. Nothing in the pipeline can write back to it — AI operations are limited to interpretation and narrative.
Validation runs in code
Generated figures are diffed against that snapshot by application logic, not by asking another model to check the first one. Values that don't match your file are rejected before they can reach a slide.
Instructions to alter data are blocked
Feedback that tries to change a value — "make revenue $2M" — is caught by deterministic checks before it ever reaches a prompt, and AI answers that suggest altering your data are withheld from you.
You can audit the output yourself
Export a verification workbook that traces every figure on every slide back to the cell it came from — and marks anything it cannot trace as unverified rather than quietly passing it.
Access
Who can open what
Authorization is checked on the server for every project route — never inferred from the URL you happen to hold, once a project has an owner.
Per-project authorization
Read and modify access are checked on every project route against the owning account or workspace membership. Once a project has an owner, only that owner and the workspace they've shared it with can open it.
Sign-in options
Google, GitHub, or a passwordless email magic link. Sessions are signed JWTs, and one-time magic-link tokens are stored only as hashes.
Sharing you control
Public share links are off until you publish one, can require a password, can be set to expire after a number of days, and can be revoked at any time.
Share analytics without surveillance
Per-slide dwell time is aggregated to tell you which slides held attention. No IP addresses, user agents or identifying details about viewers are stored.
Platform
Application and infrastructure
The unglamorous layer: scopes, headers, logs and limits.
Narrow Google scope
Google Drive import uses the drive.file scope only, granted per file through Google's own picker — we cannot list, scan or read anything else in your Drive. Stored refresh tokens are encrypted at rest with a dedicated key.
Hardened browser policy
A Content Security Policy, HSTS, MIME-sniffing protection, a frame-ancestors deny and a restrictive permissions policy are applied to every route, bounding where an injection could send anything.
Secrets stay out of logs
Structured logs redact by key name — tokens, keys and authorization headers are scrubbed regardless of casing or separators, so a careless log call can't leak a credential.
Abuse and spend limits
Uploads are rate limited per IP and per session, and AI usage is metered against daily caps per project, user and workspace, so a runaway loop is bounded.
Straight answers
What we don't claim
Security pages usually only list strengths. Here's the other half.
- We are not SOC 2, ISO 27001 or HIPAA certified, and we don't claim to be. If you need a compliance package to buy, we're not there yet — tell us and we'll be straight with you about timelines.
- We have not published a third-party penetration test.
- The pre-publish sensitivity scan is an advisory pattern check, not a DLP or compliance control. It flags things like email addresses, identifiers and compensation columns, and it lets you publish anyway — it is a second pair of eyes, not a gate.
- Our privacy policy reserves the right to use anonymized, non-Google data to improve our models, so we won't tell you we never train on anything. Data obtained through Google APIs is explicitly excluded and is never used for training.
- Projects created without signing in are readable by anyone holding the link, by design. Sign in if a deck shouldn't be.
Questions a page can't answer? Email us and you'll get a direct reply from someone who built it.
FAQ
Security questions
Can the AI ever change one of my numbers?+
No. Numeric values are snapshotted before any model call and are never written back to. The AI's role is limited to interpretation and narrative, and everything it returns is diffed against that snapshot in application code. Requests to alter a value are blocked deterministically before they reach a prompt.
Where is my data stored?+
Uploaded files, parsed data and generated decks are stored in Azure Blob and Table Storage, which encrypts data at rest, and are transmitted over TLS. See the privacy policy for how long data is kept and how to have it removed.
What does InsightNarrative do with my Google Drive?+
Only what you explicitly hand it. The integration requests the narrow drive.file scope, so access is granted per file through Google's own picker — we cannot list or read any other file. Tokens are used server-side only, stored encrypted, and you can revoke access from your Google account at any time.
Do you have SOC 2 or a security questionnaire on file?+
Not yet — we'd rather say so than imply otherwise. If your procurement process needs one, email contact@insightnarrative.com and we'll tell you honestly where we are and what we can provide today.
Who can see a deck I share by link?+
Anyone with the link, unless you set a password. You can also set an expiry, unpublish at any time, and run the pre-publish scan to catch personal or sensitive columns before the link exists.
Check our work on your own data
Generate a deck, then export the verification workbook and trace every figure back to your file yourself.