Helpwing documentation
Email tickets and website chat in one inbox. The chat widget is one script tag with no dependencies and no build step — everything here is about what you can do after that tag is on the page.
Install in thirty seconds
Paste this before </body> on every page that should offer chat, with your own project key in place of the placeholder. That is a complete, working installation.
html
<script
async
src="https://api.helpwing.app/widget.js"
data-project="pk_your_project_key">
</script>Your key is on the Chat widget screen of your workspace, and it is safe in browser code — it names the project and nothing else. Create a workspace if you do not have one yet.
The rest of the docs
Install the widgetThe snippet, where your public key comes from, and how to confirm it loaded.JavaScriptLoad the widget from application code, with a typed wrapper and no framework.ReactA provider, a hook, and identity that follows the user your app already knows.Vue & NuxtLoad the widget from your app and keep it in step with your auth state.Identifying usersAttach conversations to real accounts, and sign the claim so it can be trusted.
What the widget does
- Nothing of yours breaks. Every node it renders lives inside a shadow root, so your CSS and its CSS cannot reach each other.
- One file, every project. Colours, position, greeting and office hours are fetched at runtime from your project's settings — changing them is not a deploy.
- It fails quietly. A wrong key, a blocked origin or no network leaves the page exactly as it was rather than throwing in your users' console.
- Chat lands where email does. A conversation started in the widget is a ticket like any other, in the same inbox, with the same replies and the same history.