Quick Summary
The short version. Read the full policy below for everything else.
- Kedra AI Index helps Shopify stores get discovered by AI assistants like ChatGPT, Claude, Perplexity, Gemini, and Copilot.
- We never send your store data to AI models, and we never train models on your data.
- We collect minimal merchant info, AI bot crawl logs, and consented analytics events — that's it.
- No shopper names, emails, addresses, phone numbers, or payment data are ever collected.
- We honor all three Shopify mandatory privacy webhooks (data_request, redact, shop/redact).
- You can request access, correction, deletion, or portability of your data at any time.
This Privacy Policy describes how Kedra AI Index ("the App", "Kedra", "we", "us", "our") collects, uses, stores, shares, and protects information when a Shopify merchant ("you", "Merchant") installs and uses the App, and when shoppers ("Visitors") visit the Merchant's storefront while the App is active.
The App is a Shopify-embedded app that helps Shopify stores become discoverable, indexable, and attributable inside AI assistants such as ChatGPT, Claude, Perplexity, Gemini, and Copilot. We take a deliberate "minimal data" approach: the App does not store shopper personal data, does not send your store data to any AI model, and does not sell or share data with advertising networks.
For Shopify App Review
This policy is required by Shopify's App Store policy and by privacy laws including the EU/UK GDPR, CCPA/CPRA, VCDPA, CPA, CTDPA, UCPA, TDPSA, OCPA, MCDPA, Iowa, TIPA, the 2026 Indiana, Kentucky, and Rhode Island statutes, Singapore's PDPA, Brazil's LGPD, and Canada's PIPEDA. References below to "applicable law" mean whichever applies to a given Visitor or Merchant.
Identity of the Controller and Contact Details
Legal Entity / Data Controller
- Kedra
- Country of operation: Lithuania
- Postal address available on written request from info@kedra.io
Privacy Contact
- Email: info@kedra.io
- Postal: available on written request via the email above, marked "Attn: Privacy Officer"
Support Contact
- Email: info@kedra.io
EU/EEA Representative (GDPR Art. 27)
Not appointed. Kedra processes EU/EEA personal data only on an occasional basis and not at scale, and the processing is unlikely to result in a risk to the rights and freedoms of natural persons. We have therefore concluded that the Article 27(2) exemption applies. We will appoint a representative if our processing pattern changes.
UK Representative (UK GDPR Art. 27)
Not appointed. The same Article 27(2) assessment as above applies under the UK GDPR. We will appoint a UK representative if our processing pattern changes.
Data Protection Officer
Not appointed. Kedra has assessed Article 37 and concluded no mandatory DPO is required because (i) we are not a public authority, (ii) our core activities do not consist of large-scale, regular and systematic monitoring of data subjects, and (iii) our core activities do not consist of large-scale processing of special categories of data. Privacy questions are handled directly by the team via info@kedra.io.
Scope of this Policy
This Policy Covers
- •The Shopify-embedded admin App used by Merchants
- •App Proxy endpoints at
/apps/kedra/*on Merchant storefronts - •The Shopify Web Pixel deployed on Merchant storefronts
- •Microsoft IndexNow submissions made on the Merchant's behalf
- •Email correspondence between Kedra and Merchants
This Policy Does NOT Cover
- •The Merchant's own privacy practices, theme, or other apps installed on the same store
- •Privacy practices of AI assistants (ChatGPT, Claude, Perplexity, Gemini, Copilot) — see each provider's policy
- •Shopify's own privacy practices — see shopify.com/legal/privacy
Roles Under Privacy Law
Different roles apply to different activities under data protection law.
| Activity | Kedra's role | Merchant's role |
|---|---|---|
| Storing Merchant identity and Shop metadata | Controller | Data subject |
Generating llms.txt from Merchant catalog | Processor | Controller |
| Logging AI bot crawl requests to storefront | Processor (on Merchant's behalf) | Controller |
| Receiving consented Web Pixel events | Processor (on Merchant's behalf) | Controller |
| Shopify GDPR webhook compliance | Processor | Controller |
| Sending Merchant App marketing or product updates | Controller | Data subject |
Where Kedra acts as a Processor for Merchant data, the terms of this Policy together with our Data Processing Addendum (available on request from info@kedra.io) form the basis of the processing.
Information We Collect
We do NOT collect
Shopper names, email addresses, postal addresses, phone numbers, payment cards, government IDs, biometric data, precise geolocation, health data, or any special-category data.
4.1 Merchant & Shop information
Provided by Shopify on install, stored for the duration of installation:
- Shop ID and Shop domain (e.g.
your-store.myshopify.com) - Shop name, country, currency, primary language, time zone, plan
- Store owner name and email address (used only for support contact)
- Shopify access token issued to the App, scoped to the permissions granted at install
- Geographic information about the Shop (country, region) to localize the readiness audit
4.2 Storefront content (queried on demand, not synced)
To generate llms.txt and run the AI readiness audit, we query published storefront content from the Shopify Admin GraphQL API. We query, transform, cache the resulting file, and discard the source data — we do not maintain a synchronized mirror of your catalog.
- Product titles, descriptions, prices, image alt text, variants, GTINs/barcodes, vendors, types, tags
- Collection titles, descriptions, handles, product membership
- Blog post titles, content excerpts, handles
- Page titles, content excerpts, handles
4.3 Bot crawl logs (App Proxy)
When an AI bot fetches /apps/kedra/llms.txt on your storefront, we record:
- Bot User-Agent string
- Originating IP address (read from Shopify's
x-original-forwarded-forheader) — used solely to verify the bot's claimed identity against the operator's published IP ranges - HTTP response code
- Timestamp
Note: these logs identify automated bots, not Visitors. The IP address recorded belongs to the AI provider's infrastructure (e.g. an OpenAI crawler IP), not a person.
4.4 AI traffic events (Shopify Web Pixel)
While the App is active and the Visitor has granted analytics consent (via the Shopify Customer Privacy API), the Web Pixel records:
- Page path visited
- Document referrer and UTM source — used to detect AI-assistant origin (e.g.
chatgpt.com,perplexity.ai) - Order total and currency on
checkout_completed— used to attribute revenue to an AI assistant referral - A first-party AI-source attribution cookie (
kedra_ai_src), session-only, scoped to the Shopify pixel sandbox, containing only the AI source name (e.g.chatgpt)
We do NOT capture
Visitor email, name, phone, address, payment information, basket contents, customer ID, IP address (Shopify's pixel sandbox does not expose it), device fingerprint, or cross-site identifiers.
4.5 IndexNow submission logs
When we submit changed URLs to Microsoft IndexNow on your behalf, we record the URLs submitted, the response code, and the timestamp.
4.6 Communication and support data
If you contact us by email, we retain the message and our response so we can help you. Information you provide in support correspondence (screenshots, account IDs) is treated as confidential.
4.7 App diagnostics
We collect minimal technical logs (request paths, error codes, timestamps) for the purpose of operating and debugging the App. These logs do not include personal data.
Sources of Information
| Source | Examples |
|---|---|
| Directly from you (Merchant) | Shopify OAuth grant, app preferences, support emails |
| From Shopify on your behalf | Shop profile, product/collection/page content, Web Pixel events, GDPR webhook payloads |
| From Visitors via consented Web Pixel | Page-view and checkout-completed events |
| From AI bots (automated, not personal) | Crawler User-Agent and source IP at the App Proxy |
| Generated by us | App diagnostics, calculated readiness scores, attribution counts |
Purposes of Processing & Legal Bases
For Merchants and Visitors in the EU/EEA, UK, and Switzerland, the following legal bases under GDPR Article 6 apply:
| Purpose | Legal basis |
|---|---|
| Operating the App for the Merchant who installed it | Art. 6(1)(b) — performance of a contract |
| Detecting and logging AI bot crawls of the storefront | Art. 6(1)(f) — Merchant's legitimate interest in observing automated access |
| Recording consented Web Pixel events about AI-referred traffic | Art. 6(1)(a) — Visitor consent via Shopify's Customer Privacy API |
| Submitting URLs to IndexNow on the Merchant's behalf | Art. 6(1)(b) — performance of a contract |
| Securing the App, preventing abuse, debugging | Art. 6(1)(f) — legitimate interest in operating a secure service |
| Responding to data subject requests, mandatory webhooks, tax & accounting | Art. 6(1)(c) — legal obligation |
| Sending administrative or service communications | Art. 6(1)(b) and 6(1)(f) |
| Sending marketing emails, if any | Art. 6(1)(a) — opt-in consent (withdrawable any time) |
No Automated Decision-Making
We do not engage in automated decision-making producing legal or similarly significant effects on any data subject (GDPR Art. 22 / EU AI Act). The "readiness score" is informational only.
No Special Category Data
We do not request, process, or knowingly receive any special category data (Art. 9 GDPR).
How We Use Information
We DO
- ✓Provide, maintain, and improve the App
- ✓Generate and serve
llms.txtfiles - ✓Detect, log, and verify AI bot activity
- ✓Calculate AI traffic and revenue attribution
- ✓Submit URL changes to IndexNow
- ✓Respond to support and rights requests
- ✓Comply with legal obligations & Shopify webhooks
- ✓Detect and prevent fraud, abuse, security incidents
- ✓Send service announcements (marketing only with opt-in)
We Do NOT
- ✗Sell, rent, or share personal info for ads or money (CCPA/CPRA "sale" or "share")
- ✗Use Merchant or Visitor data to train any AI/ML model
- ✗Build cross-store, cross-Merchant, or cross-Visitor profiles
- ✗Disclose Merchant data to AI assistant operators
- ✗Deploy advertising pixels, fingerprinting, or session-replay tools
Disclosure of Information
8.1 Sub-processors
These vendors process data on our behalf under contractual confidentiality and data-protection terms.
| Sub-processor | Role | Data accessed | Region | Privacy policy |
|---|---|---|---|---|
| Gadget Inc. (gadget.dev) | Application platform: hosting, managed PostgreSQL, serverless runtime, background jobs | All App-stored data | United States (default region) | Link |
| Shopify Inc. | Merchant authentication, Admin GraphQL API, App Bridge, Web Pixel sandbox, mandatory webhook delivery | All Shopify-mediated data | Global (Shopify's regions) | Link |
| Microsoft (IndexNow) | Receives URL lists submitted on the Merchant's behalf | URLs only — no personal data | Global | Link |
| Cloudflare (via Gadget edge) | TLS termination, DDoS protection, request routing | TLS metadata; does not see decrypted application data | Global | Link |
30-day sub-processor notice
We will publish at least 30 days' advance notice of any new sub-processor on this page. Continued use after the notice period constitutes acceptance; if you object, you may uninstall and we will erase your data per Section 10.
8.2 Other recipients
| Recipient | When |
|---|---|
| Law enforcement, courts, regulators | When required by valid legal process — we challenge overbroad or unlawful requests where we can |
| Professional advisors (lawyers, auditors, accountants) | Under confidentiality, only as needed |
| A successor entity | If we merge, are acquired, or sell substantially all our assets — under terms at least as protective as this Policy |
We do not disclose information to advertising networks, data brokers, AI model providers (for training or inference), or marketing platforms.
International Transfers
The App's primary infrastructure is in the United States (Gadget.dev managed infrastructure). Data is also processed at the global edge by Cloudflare and at Shopify's regional infrastructure.
Where personal data is transferred from the EEA, UK, or Switzerland to a country without an adequacy decision, we rely on:
- The European Commission's Standard Contractual Clauses (SCCs), modules 2 and 3 as appropriate
- The UK International Data Transfer Addendum to the SCCs
- The Swiss FDPIC-recognized SCCs for transfers from Switzerland
- Supplementary measures, including encryption in transit and at rest, access controls, and pseudonymization where feasible
Copies of the relevant transfer mechanisms are available on request from info@kedra.io. We do not transfer data to jurisdictions where applicable law would prevent a sub-processor from complying with their contractual privacy obligations.
Retention
We retain personal data only as long as needed for the purposes described above, then delete or fully anonymize it.
| Data | Retention period |
|---|---|
Shop and Merchant profile (shopifyShop) | Duration of installation, plus up to 48 hours after uninstall to complete shop/redact |
Bot crawl logs (botVisit) | 30 days from collection |
AI traffic events (aiEvent) | 30 days from collection |
| IndexNow submission logs | 14 days from submission |
Generated llms.txt cache | While the App is installed; regenerated on a 12-hour cycle |
| Readiness score cache | While the App is installed; recalculated weekly |
Bot IP range cache (botRangeCache) | Continuously refreshed; not Visitor-derived |
| Support correspondence | Up to 24 months from last interaction (longer if needed for a dispute) |
| Backup copies | Encrypted; rotated out within 35 days |
| Records required by law (tax, audit) | For the period required by law |
When you uninstall the App, Shopify's shop/redact webhook fires after 48 hours and we delete all Shop-scoped data within that handler. You may request earlier erasure by emailing info@kedra.io.
Your Privacy Rights
Response time
We respond within 30 days (or any shorter period required by applicable law). The first request in a 12-month period is free.
11.1 GDPR / UK GDPR (EU, EEA, UK, Switzerland)
EEA authorities: edpb.europa.eu. UK: ico.org.uk.
11.2 CCPA / CPRA (California)
California residents have the right to:
- Know what personal information we collect, the sources, the purposes, and the categories of recipients
- Delete personal information we have collected, subject to legal exceptions
- Correct inaccurate personal information
- Opt out of sale or sharing — we do not sell or share, and have not done so in the preceding 12 months
- Limit the use of sensitive personal information — we do not collect sensitive PI as defined under CPRA
- Non-discrimination for exercising any CCPA right
- Authorize an agent to make a request on your behalf
To exercise these rights, email info@kedra.io. We do not have actual knowledge that we sell or share personal information of consumers under 16.
11.3 Other US state privacy laws
Residents of Virginia (VCDPA), Colorado (CPA), Connecticut (CTDPA), Utah (UCPA), Texas (TDPSA), Oregon (OCPA), Montana (MCDPA), Iowa, Tennessee (TIPA), and — effective 2026 — Indiana, Kentucky, and Rhode Island, have rights similar to those above, including access, correction, deletion, opt-out of targeted advertising and profiling, and (in several states) appeal of a decision. Email info@kedra.io. To appeal, reply to our response with the word "Appeal" in the subject line.
11.4 PIPEDA (Canada), LGPD (Brazil), PDPA (Singapore), Australian Privacy Act, others
You have substantially similar rights under these regimes. Use the same contact route.
11.5 How to exercise rights
For Merchants
- Email info@kedra.io from the email associated with your Shopify Shop owner account, or
- Submit a request via Shopify's GDPR / data subject request flow in your Shopify admin — we honor
customers/data_requestandcustomers/redactwebhooks automatically
For Visitors
- Contact the Merchant whose store you visited. The Merchant is the data controller for storefront analytics. The Merchant can submit a deletion request via Shopify, which Shopify forwards to us as
customers/redact.
Mandatory Shopify Compliance Webhooks
We subscribe to and honor all three of Shopify's mandatory privacy compliance webhooks:
| Webhook | What we do |
|---|---|
customers/data_request | We do not store Visitor-scoped personal data, so there is no data to provide. We log the request and respond with HTTP 200. |
customers/redact | We do not store Visitor-scoped personal data, so there is no data to delete. We log the request and respond with HTTP 200. |
shop/redact | Sent ~48 hours after a Merchant uninstalls. On receipt, we delete all botVisit, aiEvent, and indexNowSubmission records and clear llmsTxtCache, storeSummary, botToggles, contentFilters, excludedUrls, indexNowKey, readinessCache, and lastGenerated from shopifyShop. |
Webhook signatures are verified via HMAC; invalid signatures receive HTTP 401.
Security
We apply administrative, technical, and physical safeguards designed to protect personal data against accidental or unlawful destruction, loss, alteration, unauthorized disclosure, or access:
TLS 1.2+ on all endpoints
Managed PostgreSQL with disk-level encryption
Authenticated sessions, audit logging, least-privilege access
Encrypted env vars, never logged or exposed
HMAC-verified; failed verification rejected with HTTP 401
AI crawler claims verified against operator IP ranges
Production deploys reviewed; dependencies monitored for known vulnerabilities
No method of transmission or storage is 100% secure. If you suspect a security issue, email info@kedra.io with the subject "Security Report".
14.1 Personal data breach notification
If we become aware of a personal data breach affecting Merchant or Visitor data, we will:
- Notify the Merchant without undue delay and, where required by GDPR Art. 33, within 72 hours of becoming aware
- Provide the information required by Art. 33(3) — nature of breach, categories and approximate number of data subjects, likely consequences, measures taken
- Notify supervisory authorities and affected individuals where required by applicable law
Children's Privacy
The App is not directed to children. We do not knowingly collect personal information from anyone under 16 (or under the higher age of digital consent in the Visitor's jurisdiction). If you believe we have inadvertently collected such information, contact info@kedra.io and we will delete it promptly.
Merchant Obligations
By installing the App, the Merchant warrants that:
- It has the legal right to share Shop, content, and Visitor data with the App
- It has provided Visitors with notices and obtained any consents required by applicable law (including for the Web Pixel, where required)
- It will display a compliant cookie / consent banner on its storefront
- It will reflect the App in its own privacy policy where required by law
- It will not use the App in violation of applicable law, Shopify's Acceptable Use Policy, or this Policy
If the Merchant requires a separate Data Processing Addendum (DPA) under GDPR Art. 28 or analogous laws, request a counter-signed copy from info@kedra.io.
AI / Machine Learning Disclosures
We do NOT
- ✗Send any Merchant or Visitor data to OpenAI, Anthropic, Google, Microsoft, Perplexity, or any other AI/LLM provider for inference or training
- ✗Train any model on Merchant or Visitor data
- ✗Identify human Visitors as AI users
What actually happens
- ✓The App's only contact with AI assistants is passive: it serves a public
llms.txtfile that AI crawlers may fetch - ✓It detects when those crawlers visit (via User-Agent and verified IP)
- ✓The "readiness score" is a deterministic checklist computed from the Merchant's own published catalog content — no automated decision affecting any individual
Changes to this Policy
We may update this Policy from time to time. When we do:
- The "Last updated" date at the top will change
- For material changes, we will provide reasonable advance notice through the App's dashboard and (where we have your email) by email — at least 30 days in advance for changes that expand our use of data, add a new category of data, or add a new sub-processor
- Continued use of the App after the effective date of a change constitutes acceptance, except where applicable law requires fresh consent
A versioned history of this policy is available on request.
Governing Law and Disputes
This Policy is governed by the laws of the Republic of Lithuania, without regard to its conflict-of-laws principles. Nothing in this Policy limits any non-waivable rights you have under applicable law, including the right to lodge a complaint with your local supervisory authority.
Contact and Complaints
For any privacy question, request, or complaint:
Privacy email
info@kedra.io
Support email
info@kedra.io
Postal
Available on written request from info@kedra.io
EU/UK Article 27 representative
Not appointed (Art. 27(2) exemption — see Section 1)
Data Protection Officer
Not appointed (Art. 37 assessment — see Section 1). Privacy questions handled by the team at info@kedra.io.
You also have the right to lodge a complaint with your local data protection authority. EEA: edpb.europa.eu. UK: ico.org.uk. California: cppa.ca.gov.
Appendix A — Sub-processor List
Current as of 2026-04-25. See Section 8.1 for the full table.
Appendix B — CCPA / CPRA Categories
| CCPA category | Collected? | Source | Purpose | Retained | Sold or shared? |
|---|---|---|---|---|---|
| Identifiers (name, email of Shop owner) | Yes | Shopify, on install | Account, support | Until uninstall | No |
| Internet activity (page paths, referrers) | Yes — only with Visitor analytics consent | Shopify Web Pixel | Attribution | 30 days | No |
| Geolocation (Shop country only) | Yes | Shopify, on install | Localization | Until uninstall | No |
| Commercial info (order totals on AI-referred sessions) | Yes — only with Visitor analytics consent | Shopify Web Pixel | Attribution | 30 days | No |
| All other CCPA categories (sensitive PI, biometric, health, precise geolocation, government IDs, etc.) | No | — | — | — | — |
Appendix C — Mandatory Webhook Implementation Reference
For Shopify reviewers verifying compliance:
- Webhook handler source:
api/models/shopifyGdprRequest/actions/create.js - Webhook subscriptions configured in
shopify.app.tomlunder[webhooks] - HMAC verification handled by the Gadget Shopify connection layer
- Response: HTTP 200 on success; HTTP 401 on invalid signature
This Privacy Policy reflects Kedra AI Index's actual data practices as of the effective date above. It is not legal advice. We recommend Merchants in regulated jurisdictions consult their own counsel for sector-specific obligations.