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.
<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.liquidand paste the script tag directly above</body>. Leavedata-localeoff 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_footerin your child theme'sfunctions.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 Weglotlangattributes. - 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.