# Supportbox > One support inbox for many products. Customers write in from any site or app > (widget, form, backend, desktop app); the team and AI agents read, triage and > reply from one place. Base URL: the host serving this file. All bodies are JSON. ## Install in 60 seconds Add this one line to the site, with the project's public key (`pk_…`, safe in browsers) in place of `pk_YOUR_PROJECT_KEY`, and HOST as this host: Where it goes: - Next.js, app router: in app/layout.tsx, import Script from 'next/script' and render JS: Supportbox.open(), Supportbox.close(), Supportbox.identify({email, name, metadata, hash}). Supportbox.open({subject, metadata}) opens a new conversation with the subject filled in (max 200 characters); metadata is a flat object of short strings, added to the conversation's metadata and never replacing what identify() or the page set. With a conversation under way it just opens. hash is the identityHash above, computed on your server. Never send the identity secret to the browser. ## Verified identity Your backend signs the signed-in user's email with the project's identity secret: hash = hex(HMAC-SHA256(identitySecret, email.toLowerCase())). Pass it to identify() or as identityHash on the create route. The conversation then has customer.verified: true.