Privacy Policy
Updated: 14 Apr 2026
Scope
This privacy policy applies to the marketing website https://zweigen.cloud as well as the Zweigen web application (app), opt‑in features (Launch-Angebote Warteliste, discounts, product updates, Daten- und BI-Wissen) and our internal admin area (Admin Console).
We process data in accordance with the GDPR and applicable e‑privacy rules (e.g. TDDDG).
The website is aimed exclusively at businesses.
Roles in B2B SaaS (controller / processor)
Zweigen is a B2B SaaS application. Depending on the processing activity, we act either as controller or as processor.
- As controller we process account, security, billing and support data that is required to provide and operate the service.
- For data that customers connect or upload to Zweigen (“Customer Content”), the customer typically acts as controller. We process such data as a processor under a DPA (Art. 28 GDPR).
Data subject rights note: If your data is included in a customer’s Customer Content (e.g. as an employee), please contact the respective customer (e.g. your employer). For requests about your Zweigen account data you can use the DSAR features in the in‑app privacy panel or contact us (support@zweigen.cloud).
1. Controller
Sandbank
Paul Zehm (sole proprietorship)
Koberg 20
23552 Lübeck
Germany
2. Data Protection Officer
No DPO appointed (not legally required).
3. Legal bases, storage locations, recipients, withdrawal
We process personal data on the following legal bases:
- Art. 6(1)(a) GDPR (consent): web analytics (PostHog), opt-in email updates.
- Art. 6(1)(f) GDPR (legitimate interests): operation and security of the website, WAF filtering, rate‑limits, anti‑abuse, documentation of double opt‑in.
- Art. 6(1)(b) GDPR: pre‑contractual communications (email/phone).
You may withdraw consent at any time, e.g. via “Cookie settings” in the footer or by emailing support@zweigen.cloud.
Right to object (Art. 21 GDPR): You may object at any time to processing based on legitimate interests (Art. 6(1)(f) GDPR), e.g. by emailing support@zweigen.cloud.
3.1 Requirement to provide data
Some data is required to provide certain functionality:
- Account/sign-in: without a business email and required authentication data we cannot provide an account.
- Billing: without contract and invoice data (e.g. company name, billing address; VAT ID where provided) we cannot correctly bill paid services.
- Optional: consent-based web analytics (PostHog) and opt-in email updates are optional; the service can generally be used without this consent.
4. Hosting, security, server & WAF logs
Our website servers run in European data centres provided by OVHcloud S.A.S. (EU). Domain management and our email inboxes are provided by mittwald CM Service GmbH & Co. KG (Germany/EU).
We use an OVHcloud load balancer with Web Application Firewall (OWASP CRS) plus self‑hosted observability (OTEL/SigNoz, EU) and a dedicated Redis database for rate‑limits (EU).
4.1 Processed log data (site + /api/public/opt-in)
When visiting our website and API we process:
- IP address
- date and time
- hostname, path, HTTP method, HTTP status
- user‑agent, referrer (if any)
- request/trace ID, rate‑limit decision
- no request bodies
Purposes: delivery, stability, security, abuse detection, rate‑limits.
4.2 Storage locations & retention
| System | Retention | Location |
|---|---|---|
| OVHcloud web server/WAF | 14 days | EU |
| Observability (OTEL/SigNoz) | 7 days | self‑hosted, EU |
| Redis rate‑limits | short‑lived | self‑hosted, EU |
| Mittwald mail/domain logs | provider default (short-term technical logging) | EU (Germany) |
IP addresses are not anonymized but used exclusively for security and operational purposes.
Legal basis: Art. 6(1)(f) GDPR (legitimate interests: stability, security, abuse prevention).
5. TLS/SSL
Transport encryption according to current best practice.
6. Consent management (Klaro!)
We use locally hosted Klaro! to obtain and document consent for analytics cookies.
Processed data
- consent status
- timestamp
- pseudonymous browser identifier
Storage entry
- Name: klaro
- Lifetime: 365 days
- SameSite=Lax, Secure, host‑only
- Category: essential
Legal basis: e‑privacy (technical storage), Art. 6(1)(c/f) GDPR.
8. Web analytics (PostHog, self‑hosted in the EU)
We process pseudonymous IDs, events, and technical data in the browser only after consent has been granted. API and worker calls do not emit server-side product analytics events. No third-country transfers. Session replay is disabled by default. Event retention: up to 180 days.
Legal basis: consent (Art. 6(1)(a) GDPR; applicable e‑privacy rules).
You can withdraw consent at any time via the cookie settings.
9. Launch-Angebote Warteliste, discounts, product updates, Daten- und BI-Wissen
Public API /api/public/opt‑in processes:
- email address, optional name, locale
- preferences (categories), UTM parameters, path/referrer
- double‑opt‑in token (hash only), DOI status
- worker/job metadata (PgBoss), delivery status at the mail service
| Store | Purpose | Location |
|---|---|---|
| Marketing Postgres (dedicated) | opt‑in data, preferences, DOI status | EU |
| Redis (dedicated) | rate‑limits for public API | EU |
| PgBoss queue/worker | DOI sending, cleanup jobs | EU |
| SMTP – Brevo | sending DOI and marketing emails | EU region |
- Brevo: no open/click tracking enabled.
Legal basis: consent (Art. 6(1)(a) GDPR); proof/blacklist: Art. 6(1)(f) GDPR.
Retention: active subscriptions remain stored until withdrawn/unsubscribed. After unsubscribing, we delete email/name (PII) and keep only pseudonymous DOI proof (e.g. email hash, timestamps, status) for up to 3 years.
9.1 App & integrations (data sources, OAuth, PAT, upload)
The Zweigen app allows you to connect external data sources (integrations), depending on the provider, via OAuth2, personal access token (PAT), or upload to build BI analytics and dashboards.
Core principles: credentials are processed server-side only, stored encrypted, and never exposed to the browser. Provider API calls are executed server-side only via allow-listed egress destinations. Uploads are processed without external provider authentication.
Important: For OAuth integrations you are redirected to the respective provider for authentication/authorization. Those providers process your data under their own responsibility. PAT and upload integrations do not involve such a redirect; the exact role, retention and transfer logic is shown per active provider in the overview below.
When you connect Google Analytics 4 or Google Search Console to Zweigen, you authorize the connection yourself through Google. We process the access, connection, and Google data you grant only to provide the selected integration, synchronize data, display it in Zweigen, and secure the connection technically. You can disconnect the integration at any time. The legal basis for the integration you actively enable is Art. 6(1)(b) GDPR; technical security and evidence data is processed under Art. 6(1)(f) GDPR.
Processed data (typically)
- OAuth tokens or PAT credentials (access/refresh/expiry, token/endpoint), stored encrypted
- account/provider identifiers (e.g. providerSubject) and resource IDs (e.g. property/site/account), where provided by the respective provider
- aggregated metrics, observability signals or imported datasets as read-models or customer data inventory within the allowed product and governance boundaries
Deletion on disconnect (full purge)
When you disconnect an integration, we start an async purge job and delete the related tokens, bindings, discovery snapshots/indexes, and all derived analytics data from the live store (full purge), unless statutory retention obligations apply. Only minimal audit/purge evidence remains; backups follow the separate backup retention described below. Depending on data volume, deletion may take a few minutes.
Integrations overview (active only)
Only currently active integrations with production processing are listed here. Planned providers are added only when they are actually activated and the privacy notice and DPA are updated in the same release.
| Integration | Role | Data | Zweigen retention | Provider retention | Transfers | Deletion |
|---|---|---|---|---|---|---|
| Custom Data (custom-data) | Customer-supplied content; no external data-source provider. | Imported datasets, schemas and values as provided by the customer. | Until deleted by the customer or via DSAR/deletion flows; backups are retained for at most 30 days. | — | No additional external provider transfer; Zweigen's own hosting and recipient list applies. | Deletion happens via dataset delete, org purge or DSAR flows; retention and legal hold remain authoritative. |
| Google Analytics 4 (google-analytics) | Customer-selected third-party provider; Google processes authentication and API operations under its own responsibility. | Encrypted OAuth tokens, property IDs, and depending on granted scopes reporting data such as user, session, event, traffic source, page and conversion data in aggregated or report-oriented form. | Short-lived technical connection data is kept only while a connection is active and for no longer than 24 hours. Report data prepared inside Zweigen is retained hourly for 14 days, daily for 2 years, and weekly/monthly for 5 years. | Retention inside Google Analytics itself is configured in the respective property and is not controlled by Zweigen. | Potential third-country transfer depending on Google regions; applicable safeguards (for example adequacy decision or EU SCCs) depend on the provider setup. | Disconnect starts an async full purge for tokens, bindings, discovery snapshots/indexes and derived analytics data in the live store; only minimal audit/purge evidence remains, unless retention duties or legal holds prevent it. |
| Google Search Console (google-search-console) | Customer-selected third-party provider; Google processes authentication and API operations under its own responsibility. | Encrypted OAuth tokens, property/site IDs, and search performance data such as queries, clicks, impressions, click-through rate, and average position in aggregated or report-oriented form. | Short-lived technical connection data is kept only while a connection is active and for no longer than 24 hours. Report data prepared inside Zweigen is retained hourly for 14 days, daily for 2 years, and weekly/monthly for 5 years. | Search Console generally makes historical performance data available only for a limited period in Google; reports are typically limited to a maximum of 16 months. | Potential third-country transfer depending on Google regions; applicable safeguards (for example adequacy decision or EU SCCs) depend on the provider setup. | Disconnect starts an async full purge for tokens, bindings, discovery snapshots/indexes and derived analytics data in the live store; only minimal audit/purge evidence remains, unless retention duties or legal holds prevent it. |
| Zweigen (platform) | Internal Zweigen platform data; no external provider. | Internal platform metrics for admin and operations. | See internal audit, telemetry and security retention. | — | Not applicable. | Not applicable. |
Provider documents and privacy information
Google Analytics 4: Google API Terms of Service
Google Analytics 4: Google API Services User Data Policy
Google Analytics 4: GA4 data retention
Google Search Console: Google API Terms of Service
Google Search Console: Google API Services User Data Policy
Google Search Console: Search Console performance data
9.2 Billing & accounting
For billing and statutory obligations we process contract and invoice data (e.g. company, contact person, billing address, VAT ID where provided). Payment processing may be handled via Mollie; we do not store full card/bank details in our systems.
Retention: invoices and accounting evidence are typically retained for 10 years (statutory retention).
9.3 Retention, backups, deletion (app)
We store personal data only as long as required for the respective purposes or as required by law. For the app, technical backup retention also applies.
| Area | Retention (typical) | Notes |
|---|---|---|
| Account deletion request (DSAR) | 30 days (grace period) | Account is blocked immediately; final purge follows after retention unless legal hold applies. |
| Backups | 30 days | Backups cannot be selectively purged; deletions only take effect in backups after retention expires. |
Exception to the general backup retention: for content from the Google Business Profile APIs we ensure that technical backups do not extend storage beyond 30 calendar days.
9.4 Admin area (internal)
For operations, support, and administration we use an internal admin area (Admin Console). Access is restricted to authorized personnel only and protected by technical controls (e.g. access-restricted network environment, rate-limits) as well as authentication and role-based access control (RBAC).
Processed data
- Admin account: user ID, email address, roles/permissions, session key, MFA claims (as provided by the IdP).
- Tenant & user administration: organization/tenant IDs, user IDs, invites (email, role, status, timestamps, invitedBy/revokedBy), suspension/deactivation reasons (if provided).
- Support inbox: support case IDs, organization reference, requester email address, status/category, snippets and reply texts; where applicable ticket references (e.g. Zammad ticket ID/link).
- Marketing/opt‑in administration: opt‑in status/preferences, sending status (outbox), template key, delivery status (no open/click tracking).
- API keys (admin): name, prefix, permissions, rate-limits, expiration (plain key only on issuance).
- Technical & audit data: IP address, user‑agent, request ID, timestamps, actions/resources (audit logs).
Cookies/storage (admin area)
The admin area uses essential, host-only cookies/storage keys for authentication and session security (session, CSRF, device identifier). Cookie/storage details for public surfaces (marketing site + app) are listed in the cookie overview (annex).
Legal bases: Art. 6(1)(b) GDPR (contract performance/support) and Art. 6(1)(f) GDPR (operations, security, abuse prevention, auditability). Where required, legal obligations may apply as well (Art. 6(1)(c) GDPR), e.g. compliance/retention duties.
Recipients/processors: ZITADEL (authentication/IdP), OVHcloud (hosting) and – where applicable – ticketing (self-hosted; tool: Zammad). No marketing analytics/tracking is performed in the admin area.
Note: The admin area is an internal area for employees/operators and not intended for customers/end users.
9.5 Indirect data collection (Art. 14 GDPR)
Some personal data is not collected directly from you, but comes from customer contexts or connected providers.
- Customer Content: data processed by a customer in Zweigen is provided to us by that customer.
- Integrations/OAuth: after your authorization, connected providers deliver data to our server-side interfaces.
- System events: audit, security and workflow metadata is generated technically during service usage.
Where Art. 14 GDPR applies, we provide transparent information on categories, purposes, recipients and retention periods. For customer content, the respective customer is typically responsible for primary notice.
10. Contact via email/phone
Data: name (if provided), email address, content, meta/header data.
Recipient: our email provider mittwald CM Service GmbH & Co. KG (Germany/EU).
Storage: until completion of the request and up to 12 months thereafter unless longer statutory retention applies.
Legal basis: Art. 6(1)(b) GDPR (contract/pre-contract) and Art. 6(1)(f) GDPR (legitimate interest in replying to requests).
12. No external embeds
- no videos
- no maps
- no chat widgets
- no social plugins
13. Data subject rights
- access
- rectification
- erasure
- restriction
- data portability
- objection
- withdraw consent
How to exercise rights: In the app, the privacy panel provides DSAR features for data export and account deletion. You can also contact us via email: support@zweigen.cloud.
If your data is included in a customer’s Customer Content, please direct requests to the respective customer as controller, as we usually cannot associate data subjects without a customer reference.
14. Third-country transfers and safeguards
Zweigen is operated in the EU by default. For specific integrations, provider-side processing outside the EU/EEA may still occur.
- Where an adequacy decision of the EU Commission exists, we rely on that transfer mechanism.
- Otherwise we rely on EU Standard Contractual Clauses (Art. 46 GDPR) and supplementary technical/organizational safeguards.
- The exact transfer scenario depends on the connected provider and its product configuration.
We provide additional details on transfer safeguards on request (support@zweigen.cloud).
15. Complaint
You may lodge a complaint with a supervisory authority. The authority competent for our company is the Independent State Centre for Data Protection Schleswig-Holstein (ULD), Holstenstraße 98, 24103 Kiel, Germany.
16. No automated decision‑making
No profiling, no automated decisions.
17. Changes to this policy
We update this policy when services, legal requirements or technical processes change. The current version is always available on this page.
18. Annex – subprocessors
Subprocessors process personal data on our behalf where necessary for hosting, operations and support. At this time, we only use subprocessors located within the EU.
| Subprocessor | Service | Location | Notes |
|---|---|---|---|
| OVHcloud S.A.S. | Hosting (compute, load balancer, WAF) | EU | — |
| mittwald CM Service GmbH & Co. KG | DNS, mailboxes (MX/IMAP) | Germany/EU | — |
| Brevo (Sendinblue GmbH / Brevo) | Email delivery (opt-in/newsletter) | EU | No tracking pixels; restricted sender setup |
19. Annex – processing overview
| Processing | Purpose | Data | Legal basis | Recipients | Third country | Transfer mechanism / safeguards | Retention |
|---|---|---|---|---|---|---|---|
| Server/WAF logs | Security, operation, rate-limits | full IP, time, host, path, method, status, user-agent, referrer (if any), request/trace ID, RL decision | Art. 6(1)(f) GDPR | OVHcloud, OTEL/SigNoz (self-hosted) | no | No third-country transfer planned | 14 days (OVH), 7 days (observability) |
| Consent management | Manage consent | consent status, timestamp, browser ID | e-privacy; Art. 6(1)(c/f) GDPR | self-hosted | no | No third-country transfer planned | 365 days |
| PostHog (analytics) | Web analytics | pseudonymous IDs, events, technical data | Art. 6(1)(a) GDPR; e-privacy | self-hosted (OVH) | no | No third-country transfer planned | up to 180 days |
| Zweigen app - integrations (OAuth, data sources) | Connect data sources and provide BI analytics/dashboards | OAuth tokens (encrypted), account/provider identifiers, resource IDs, aggregated metrics/slices (read-models); no client-side tokens | Art. 6(1)(b) GDPR (contract) and where applicable Art. 6(1)(f) GDPR (operations/security) | OVHcloud (hosting) and connected data providers (see integration overview in privacy policy) | provider-dependent | Where providers process outside EU/EEA: adequacy decision or EU Standard Contractual Clauses (Art. 46 GDPR) plus supplementary safeguards | live tokens/bindings until disconnect; disconnect triggers full purge of tokens, bindings, discovery snapshots/indexes and derived analytics in the live store; backups follow separate backup retention; analytics read-models: hourly 14 days, daily 2 years, weekly 5 years, monthly 5 years |
| Customer query verification | Asynchronous quality assurance and provider-truth attestation for real customer query shapes | query fingerprints, minimal query-shape context, short-lived re-execution context, and minimized verification evidence (status, delta summary, reasons, expiry); no free-form raw payloads, no tokens in the ledger, and no free-form filter values in persisted evidence | Art. 6(1)(b) GDPR (contractual service quality) and Art. 6(1)(f) GDPR (operations, integrity, prevention of defects) | OVHcloud (hosting) and the respective connected data providers where required for the same provider-truth read | provider-dependent | Where providers process outside EU/EEA: adequacy decision or EU Standard Contractual Clauses (Art. 46 GDPR) plus supplementary safeguards | verification candidates max 24 hours; verification evidence 24-72 hours depending on provider; disconnect and DSAR/delete purge data-source-bound verification data as well |
| Zweigen app - Google Business Profile | Connect Google Business Profile, secure the technical connection, and provide granted GBP data only within the allowed scope | Encrypted OAuth tokens, account/location IDs, location information, and performance data; content such as reviews, replies, posts, and questions/answers is not part of the productive long-term analytics scope | Art. 6(1)(b) GDPR (enabled integration) and Art. 6(1)(f) GDPR (operations, security, evidence) | OVHcloud (hosting) and Google as the customer-selected provider | provider-dependent | Where Google processes outside EU/EEA: adequacy decision or EU Standard Contractual Clauses (Art. 46 GDPR) plus supplementary safeguards | Short-lived technical connection data for no longer than 24 hours; content from the Business Profile APIs only temporarily, securely, and for no longer than 30 calendar days; no long-term historization or aggregation of such content |
| Billing & accounting | Billing, contract administration, tax/legal obligations | invoice/customer data (company, address, VAT ID where provided), invoices, payment status/provider IDs; no full card/bank details stored in our systems | Art. 6(1)(b)/(c) GDPR | OVHcloud (hosting), payment provider (Mollie) where used | no | No third-country transfer planned | invoices/accounting: 10 years (statutory retention) |
| Backups | Operational resilience, disaster recovery | backups may include technical copies of production data (including personal data where present) | Art. 6(1)(f) GDPR | self-hosted (OVHcloud EU) | no | No third-country transfer planned | 30 days (rotation/overwrite); deletions only take effect in backups after retention expires. Exception: content from the Google Business Profile APIs must not remain in technical backups for more than 30 calendar days. |
| Opt-in / newsletter | DOI, delivery, preferences | email (encrypted), optional name (encrypted), categories, UTM, DOI token hash; after unsubscribe: pseudonymous proof only (email hash, status, timestamps), PII deleted | Art. 6(1)(a/f) GDPR | marketing Postgres, Redis RL, PgBoss, Brevo | no | No third-country transfer planned | active: until withdrawn; proof: 1095 days |
| Admin area (internal) | Operations, support, security, audit | admin account (ID, email, roles), tenant/user administration (IDs, invites), support cases (email, snippets/replies), technical data (IP, user-agent, request ID), audit logs | Art. 6(1)(b/f) GDPR | OVHcloud (hosting), ZITADEL (IdP), ticketing (self-hosted; tool: Zammad) | no | No third-country transfer planned | sessions up to 4h; audit logs as needed (typically short periods) |
| Contact via email/phone | Communication | contact details, content | Art. 6(1)(b/f) GDPR | Mittwald (email provider) | no | No third-country transfer planned | up to 12 months |
| Account deletion (DSAR) | Fulfill deletion requests and prevent abuse (subject to legal hold/retention duties) | deletion request status, audit/evidence, technical metadata; account is blocked immediately, final purge follows | Art. 6(1)(c)/(f) GDPR | OVHcloud (hosting) | no | No third-country transfer planned | finalization after retention/grace period (typically 30 days), unless legal hold applies |
11. Social media links
Static links. No data transfer without click.