WordPress, Shopify, Webflow & Chat Widgets: add an EU AI Act Art. 50 AI notice in 1 line

Running an AI shopping assistant or support bot on Shopify, WordPress / WooCommerce, Webflow, Intercom, Zendesk, or Crisp? Generate a 1-line Shadow DOM script tag across all 24 official EU languages — with 0 cookies and 0 CSS conflicts.

Interactive 1-Line Script Generator 0 cookies · Shadow DOM · 24 EU languages
1. Your platform or chat widget
4. Placement & theme
Shopify: Online Store → Themes → Edit code → layout/theme.liquid (paste right before </body>)
You are interacting with an AI system · Order Assistant Art. 50 · Spurvik
Copy 1-line HTML embed
<script src="https://spurvik.com/badge.js" data-system="Order Assistant" data-theme="dark" defer></script>

Platform-by-platform setup (60 seconds)

  • Shopify & Shopify Markets: Open Online Store → Themes → ⋯ → Edit code → layout/theme.liquid and paste the script tag directly above </body>. Leave data-locale off so Shopify Markets' <html lang="de|da|fr|nl|..."> switches the AI notice across all 24 official EU languages automatically.
  • WordPress & WooCommerce: Paste into WPCode → Header & Footer → Footer (or enqueue via wp_footer in your child theme's functions.php), or upload the free Spurvik WordPress plugin and configure it under Settings → Spurvik AI Notice. Compatible out of the box with WPML, Polylang, and Weglot lang attributes.
  • Webflow & Framer: Open Site Settings → Custom Code → Footer Code, paste the 1-line script, and publish. For inline placement inside a chat modal, drop an Embed element containing <div data-spurvik-badge></div>.
  • Intercom, Zendesk, Crisp, HubSpot & Tidio: Most launcher bubbles anchor bottom-right; either set data-position="bottom-left" so the pill never overlaps your chat launcher, or place <div data-spurvik-badge></div> directly inside your custom chat container.

When agencies & stores upgrade from Free (€0) to Pro (€19/mo) or Team (€79/mo)

badge.js handles the visible front-end notice for €0 with no account. As soon as your AI assistant connects to order data, CRM records, or automated refunds via n8n, Next.js, or custom webhooks, agencies and merchants pair badge.js with the Frankfurt (fra1) Spurvik Console:

Capability Free (€0 — badge.js + Free tier) Pro (€19/mo · €190/yr, excl. VAT) Agency / Team (€79/mo · €790/yr, excl. VAT)
24-language Art. 50(1) AI notice Unlimited sites via badge.js or spurvik/react Included + hosted disclosure tracking Included across client projects
Zero-prompt-text HMAC call receipts 10,000 events/mo · 30d retention 250,000 events/mo · 90d Frankfurt (fra1) 2,000,000 events/mo · 12-month retention
Human approval before refunds / edits Signed webhook helpers (spurvik/channels, n8n-nodes-spurvik) Hosted Slack / Teams / Email review queue + kill switch High-volume approval routing & webhook export
Client & DPO audit handover Raw JSON receipt export 1-click DPO Engineering Summary (.md) & Annex IV draft Every Pro export for multi-store & agency portfolios
AI notice badge link Small “Art. 50 · Spurvik” link after the notice White-label badge: no Spurvik link (data-attribution="false") White-label across every client site

Scan a client storefront or start your Frankfurt workspace

Paste any live Shopify, WordPress, or SaaS URL into the sandbox with no login, or start a B2B workspace in under 60 seconds:

Prices exclude VAT. Stripe (Link) adds VAT where applicable · B2B only · Frankfurt (fra1) EU hosting.

FAQ

Where do I paste badge.js in Shopify, WordPress, or Webflow?

In Shopify, paste the script tag in layout/theme.liquid right before </body>. In WordPress / WooCommerce, paste it in WPCode's Footer section or hook wp_footer. In Webflow, paste it in Site Settings → Custom Code → Footer Code and publish.

Does badge.js set cookies or require a GDPR cookie consent banner?

No. badge.js sets zero cookies, writes nothing to localStorage, and sends zero analytics or telemetry requests. Its CSS is encapsulated inside Shadow DOM so host theme styles never break.

Does a visible chat badge replace Article 50(2) machine-readable marking?

No. badge.js displays a human-readable AI interaction notice supporting Article 50(1). It does not watermark or embed machine-readable marking in AI-generated images, audio, video, or text under Article 50(2) (whose transition window for pre-August 2026 generative systems runs until 2 December 2026 under Art. 111(4)).

How do I remove the “Art. 50 · Spurvik” link from the badge?

Since badge.js 1.0.6 the badge shows a small “Art. 50 · Spurvik” link after the notice by default. Pro (€19/mo or €190/yr, excl. VAT) and Team customers can use a white-label badge by adding data-attribution="false" to the script tag (or ticking the white-label option in the WordPress plugin). The AI notice itself stays visible.

How do n8n workflows behind a Shopify or WordPress chatbot connect to Spurvik?

Install n8n-nodes-spurvik@1.0.4 in self-hosted n8n or import /r/n8n-art50-starter.json (full n8n guide) to log HMAC-SHA256 digests with 0 bytes of customer chat text and hold high-value order refunds for Slack/Teams approval.