Privacy Policy
Last updated: 2026-10-11 · Datenschutzerklärung gemäß Art. 13 DSGVO
1. Who is the data controller
Alexander KagoshimaEmail: [email protected]
The full postal address of the data controller is published in our Impressum as required under § 5 DDG.
We are responsible for the processing of personal data in connection with this website (flowblock.app) and the Flowblock Chrome extension.
2. Data processed when you visit flowblock.app
This website is hosted on Cloudflare Pages. When you load a page, Cloudflare automatically processes certain connection metadata to deliver the site and protect against abuse:
- IP address of your device
- User-agent string (browser and operating system)
- Referrer URL, if any
- Requested URL and HTTP status
- Timestamp of the request
Legal basis: Art. 6(1)(f) GDPR - legitimate interest in operating and securing the website.
Retention: handled by Cloudflare under their own policies (typically rolling logs of a few days). See cloudflare.com/privacypolicy.
In addition, this website uses Cloudflare Web Analytics to measure aggregate page views and referrers. Cloudflare Web Analytics is cookieless, does not use browser fingerprinting, does not track you across other websites, and does not build a user profile. The beacon (static.cloudflareinsights.com) is injected automatically by Cloudflare when serving the page; no personal data such as your IP address is retained for analytics purposes (Cloudflare drops it after deriving the aggregate counters).
Legal basis: Art. 6(1)(f) GDPR - legitimate interest in understanding aggregate website usage. Because Web Analytics neither stores nor reads information on your device, no consent under § 25 TTDSG is required.
See cloudflare.com/web-analytics for details.
Apart from this, no cookies and no third-party tracking scripts are served from this website. Fonts (Caveat) are self-hosted and not loaded from any third party.
3. Data processed when you use the Flowblock Chrome extension
3.1 Notion OAuth token
When you connect your Notion account, Notion issues an OAuth access token scoped to the Notion pages you explicitly select during the authorization flow. Notion sends the token to our Cloudflare Worker, which passes it on to the extension. We do not store the Notion token on our servers. The extension stores the token locally in your browser (chrome.storage.local) and uses it to call Notion's API directly from your browser.
Legal basis: Art. 6(1)(b) GDPR - necessary to provide the service you requested.
3.2 Pseudonymous user ID and diagram count
When you connect your Notion account, Notion sends our Cloudflare Worker your Notion user ID. The Worker computes a SHA-256 hash of this ID (the "user hash") and keeps only the hash. The hash is not salted: anyone who knows your Notion user ID can compute the same hash and match it to our records. The user hash is therefore a pseudonymous identifier, not anonymous data.
To enforce the free-tier limit of five drawings per calendar month, the extension sends to our Worker:
- your user hash
- the current calendar month (e.g.
2026-04) - the Notion block ID of a drawing when you create or edit it
- an increment request
The backend stores in Cloudflare KV, keyed by your user hash: a user record with your plan and the date of your first use, a monthly drawing counter, and the block IDs of your drawings. The block IDs let you edit your own drawings without using up a free drawing again. When a drawing is created from a Mermaid code block, a second counter (mermaid_import) is incremented in the same way, so we can measure aggregate adoption of the Mermaid-import feature. We do not store your name, your email address or the content of your drawings.
Legal basis: Art. 6(1)(b) GDPR - necessary to enforce the terms of the free tier; Art. 6(1)(f) GDPR - legitimate interest in measuring aggregate feature adoption.
Retention: the user record (user hash, plan, date of first use) is deleted automatically 13 months after the extension last contacted our server. For Pro users see 3.3. Both counters expire automatically 35 days after their last change. Block IDs expire at the end of the month after the one in which they were last recorded.
3.3 License key and subscription status (Pro users only)
If you upgrade to Pro, Polar.sh issues a license key. When you enter the key in the extension, we send it to our backend, which validates it against Polar.sh's API and stores the result (plan: "pro") in your user record in Cloudflare KV. We do not receive or store payment card details - Polar.sh handles the full payment flow.
A license must be assigned to the extension that uses it. So on activation, our backend sends the license key and your user hash to Polar.sh, and Polar.sh stores the user hash as the label of that activation. Our backend stores the license key together with your user hash. Polar.sh knows your email address and billing details from the purchase. For Pro customers, the user hash can therefore be linked to the person who paid, by us and by Polar.sh.
Legal basis: Art. 6(1)(b) GDPR - necessary to provide Pro features.
Retention: the user record, including the license key, is kept while your subscription is active. After the subscription ends, the record is deleted 13 months after the extension last contacted our server. Purchase and invoice records are kept by Polar.sh as Merchant of Record under its own retention duties. Our server keeps no invoices.
3.4 Drawing content
We do not process or store your drawing content. When you save a drawing, the SVG is uploaded directly from your browser to Notion's file-upload API using your Notion access token. Our servers never see the drawing bytes.
To edit a drawing, the extension loads the stored file from Notion's file storage (prod-files-secure.s3.us-west-2.amazonaws.com and notionusercontent.com), which is part of Notion's service.
You draw in an Excalidraw or draw.io editor that the extension opens inside Notion. We host both editors as static websites on Cloudflare Pages: excalidraw-flowblock.pages.dev and drawio-flowblock.pages.dev. The editor runs in your browser. The extension passes the drawing to the editor inside your browser, and the editor renders it there. When an editor opens, Cloudflare processes your IP address and user agent to deliver it, as on any website visit (see section 2). The drawing is not sent to Cloudflare.
The Excalidraw editor loads fonts and other editor assets from unpkg.com, a public content delivery network for open-source packages. When it opens, your browser connects to unpkg.com, which receives your IP address and user agent.
The draw.io editor loads all of its files from drawio-flowblock.pages.dev and contacts no other host when it opens a drawing. Some optional draw.io features contact third-party hosts when you use them, for example Google Fonts when you choose a web font.
3.5 Connection data on API calls
When the extension calls our Cloudflare Worker (sign-in, license checks, drawing counts), Cloudflare processes your IP address and user agent to deliver the request and protect against abuse. Our Worker does not store them. Cloudflare handles this data under its own policies.
Legal basis: Art. 6(1)(f) GDPR - legitimate interest in operating and securing the service.
4. Recipients and third-party processors
We use the following service providers. Data transfers to US-based providers are covered by the EU-US Data Privacy Framework (adequacy decision of 10 July 2023) or by Standard Contractual Clauses where applicable.
- Cloudflare, Inc. (USA, DPF-certified) - hosts this website, the backend Worker, the KV store, and the two editor sites (
excalidraw-flowblock.pages.dev,drawio-flowblock.pages.dev). Processes your IP address and user agent when you load these sites or the extension calls the Worker. Privacy policy. - Notion Labs, Inc. (USA, DPF-certified) - you authorize us to access your Notion workspace. During sign-in, Notion sends our Worker your access token, your Notion user ID and your workspace ID, name and icon; the Worker passes all but the user ID on to the extension and stores none of them. Drawings are stored on Notion's own infrastructure, and the extension loads them from Notion's file storage. Privacy policy.
- Polar Software Inc. (USA) - payment processor and Merchant of Record for Pro subscriptions. Receives your license key and your user hash when you activate Pro, and links the user hash to your purchase. Privacy policy.
- unpkg.com - public content delivery network. Delivers fonts and other assets for the Excalidraw editor and receives your IP address and user agent when the editor opens.
- Google LLC (Chrome Web Store) (USA, DPF-certified) - distributes the extension. We have no direct data exchange with Google beyond what the Chrome Web Store itself collects on install.
5. Your rights
Under the GDPR you have the right to:
- request a copy of the personal data we hold about you (Art. 15)
- request correction of inaccurate data (Art. 16)
- request deletion of your data (Art. 17)
- request restriction of processing (Art. 18)
- receive your data in a portable format (Art. 20)
- object to processing based on legitimate interest (Art. 21)
- withdraw consent at any time, where processing is based on consent
- lodge a complaint with a data protection supervisory authority
To exercise any of these rights, email [email protected]. Uninstalling the extension or clicking Disconnect in the extension deletes the Notion access token from your browser. It does not revoke the token at Notion, and it does not delete the records on our server: they are deleted as described in sections 3.2 and 3.3, or earlier if you request deletion. To revoke Flowblock's access, remove the connection in Notion: open Settings, then Connections, and disconnect Flowblock.
6. Supervisory authority
You have the right to lodge a complaint with the data protection supervisory authority of your country of residence. For users in Germany, this is the data protection authority of the federal state in which the controller is established:
Berliner Beauftragte für Datenschutz und Informationsfreiheit7. Changes to this policy
We may update this policy to reflect changes in the service or legal requirements. The "Last updated" date above will reflect any revision. Material changes will be announced in-extension or by email to Pro subscribers.