Data Controller
CoroBlock is operated by Ahmet Akkuş (sole proprietorship). For any privacy-related questions or to exercise your rights under GDPR, please contact us at aa.ahmetakkus@gmail.com.
What we store
- Merchant account details (email, name, password hash) needed to authenticate and access the CoroBlock workspace.
- Campaign configuration data such as popup content, layout, visual design, triggers, targeting rules, publishing state, and AI-generation metadata associated with a campaign.
- Storefront event data such as popup views, clicks, form submissions, and campaign performance metrics for analytics.
- Shopify installation and connection metadata (shop domain and encrypted access tokens) required to maintain published campaigns and authorized integrations.
- Customer-sync audit metadata such as campaign ID, contact type, success/failure state, Shopify customer ID when returned, and create/update state. Raw submitted email, phone, and name values are not copied into this operational audit event payload.
- WooCommerce connection metadata such as the store origin and connection state. The current canonical WooCommerce flow does not require or persist WooCommerce Consumer Key/Secret credentials.
- Billing and subscription state for the applicable platform. Shopify paid subscriptions use Shopify Managed App Pricing; CoroBlock does not store payment card details.
Shopify OAuth Scopes and Protected Customer Data
- read_themes — To open the current Shopify theme context and guide merchants to enable the CoroBlock app embed.
- write_customers — To find, create, or update a Shopify customer only when the storefront submission explicitly indicates marketing consent. Merely entering contact information does not by itself trigger customer marketing subscription.
- For the customer-sync workflow CoroBlock requests only the protected customer fields needed for the feature: name, email, and phone. Shopify address access is not requested for this workflow.
- Existing explicit unsubscribe states are preserved; CoroBlock does not intentionally overwrite an existing email/SMS opt-out with a new subscription state.
How the data is used
- To let merchants create, edit, preview, publish, and manage marketing campaigns.
- To render the correct active campaign on the connected storefront for each visitor session.
- To calculate plan usage limits, campaign analytics, security/operational audit trails, and service health.
- To process Shopify GDPR/compliance privacy webhooks (data request, data deletion, store redaction).
- To maintain billing status and reconcile Shopify subscription charges.
- To synchronize visitor contact details to Shopify only when the relevant submission includes explicit marketing consent.
Third-Party Service Providers
We use trusted third-party services to operate the CoroBlock platform. These providers only process data on our behalf:
- Supabase — Database hosting, authentication, and serverless function infrastructure. Data is stored in Supabase's secure cloud environment.
- OpenRouter — AI generation service used to process user prompts into campaign designs. Prompt text may also be retained in CoroBlock campaign metadata when needed to preserve the campaign's generation context and audit history.
- Sentry — Error monitoring and crash reporting used for application reliability and diagnostics.
- Resend — Email delivery service for password resets and GDPR data request exports.
- Vercel — Application hosting and CDN. Application code and static assets are served through Vercel infrastructure.
- Shopify — E-commerce platform integration. Customer and merchant data flows through Shopify APIs under OAuth permissions granted by the merchant.
Data Retention
Campaign and merchant data is retained for as long as your CoroBlock account is active and for a reasonable period thereafter for analytics, security, and support purposes.
When you uninstall CoroBlock from your Shopify store, we receive a webhook that triggers deletion of store-specific campaign data. Residual backup data may persist for up to 48 hours before being permanently purged.
Form submission data (email, phone, survey responses) submitted through campaigns is retained until you or the visitor request deletion, subject to applicable legal requirements.
Operational customer-sync audit records are retained only as long as needed for security/troubleshooting and remain subject to the applicable shop/customer deletion path.
The current WooCommerce connection uses signed one-time pairing and does not persist WooCommerce Consumer Key/Secret credentials; disconnecting removes or deactivates the active CoroBlock connection state.
Development and Production Separation
Production protected customer data is not used as test data. Shopify development-store QA uses dedicated development stores and synthetic records. Production customer data must not be copied into local development, preview deployments, test fixtures, screenshots, issues, or source control.
If a non-production environment needs to persist protected customer data, it must use a non-production data plane and non-production credentials rather than production customer datasets or production secrets.
GDPR Rights — EU Residents
If you are a resident of the European Economic Area (EEA), you have the following rights under the General Data Protection Regulation (GDPR):
To exercise any of these rights, please contact us at aa.ahmetakkus@gmail.com. We will respond to your request within 30 days.
- Right of Access: You may request a copy of the personal data we hold about you.
- Right of Rectification: You may request correction of inaccurate personal data.
- Right of Erasure: You may request deletion of your personal data ('right to be forgotten').
- Right to Restrict Processing: You may ask us to limit how we use your personal data.
- Right to Data Portability: You may request a machine-readable copy of your data.
- Right to Object: You may object to processing of your personal data in certain circumstances.
Storefront Data Collection
CoroBlock campaigns embedded on storefronts may process limited request and page context for analytics, abuse prevention, targeting, and campaign delivery. This data is not associated with an individual identity unless a visitor voluntarily submits identifying information through a form.
Cookies or browser storage may be used for frequency capping (preventing the same popup from appearing too frequently) and trigger settings such as exit intent or scroll percentage. Duration and behavior can be configured per campaign.
Security
We use controls including HTTPS/TLS, database row-level security, encrypted integration credentials, signed storefront runtime tokens, rate limiting, input validation, content sanitization, privileged-access restrictions, customer-sync access logging, data-minimization rules, and a documented security incident response process to reduce unauthorized access and abuse.
Our protected-customer-data operating controls include a data-loss-prevention strategy, strong-password/MFA requirements for privileged human accounts where supported, and a rule prohibiting production customer data from being copied into non-production testing.
Contact & Data Protection Officer
For all privacy-related matters, please contact:
- Name: Ahmet Akkuş
- Email: aa.ahmetakkus@gmail.com
- Role: Data Protection Officer / Controller