Integrations
It fits the stack you already have
No migration, no rip-and-replace. The assistant reads from the tools where your answers already live, and writes what it learns back to the systems your team works in.
Helpdesks
Keep your existing inbox, macros and SLAs. The assistant works the queue alongside your team rather than replacing the tool they know.
- Available
Zendesk
Two-way ticket sync
Reads your Help Center articles for answers and creates a ticket the moment a conversation escalates โ with the transcript, the requester and your tags already attached. Agent replies in Zendesk appear in the chat, so the customer never has to move.
- Available
Intercom
Inbox and macros
Imports your existing articles and saved replies, so the assistant answers in the wording your team already approved. Escalations land in your Intercom inbox as a normal conversation, assigned by your rules.
- In beta
Help Scout
Mailbox and docs
Pulls answers from your Docs site and hands unresolved threads to the right mailbox. Customer history comes along, so the agent opens a conversation already knowing what was tried.
- On the roadmap
Freshdesk
Ticket creation
Creates and updates tickets on escalation, and mirrors status changes back into the conversation so the customer sees when their issue is resolved.
CRM
Every conversation ends up on the right record. Nobody pastes a transcript into a note field again.
- Available
HubSpot
Contacts and timeline
Matches the chatter to an existing contact by email, or creates one, and logs the full transcript to their timeline. Lifecycle stage and plan come back the other way, so the assistant knows whether it is talking to a trialist or a five-year customer.
- Available
Salesforce
Cases and accounts
Writes conversations against the Account and opens a Case on escalation, mapped to your own fields. Support and sales end up reading the same record instead of two versions of the story.
- In beta
Pipedrive
Deals and notes
Attaches qualifying conversations to the open deal and creates one when the assistant spots buying intent it can evidence.
Commerce
The questions that make up most of a store's volume โ where is it, can I return it, does it come in blue โ answered from live order data rather than a guess.
- Available
Shopify
Live order lookups
Looks up order status, tracking, and return eligibility against the real order once the customer is verified, and can start a return within the rules you set. Product and inventory data feed sizing and availability answers.
- In beta
WooCommerce
Orders and returns
Same order-status and return handling for WordPress stores, over the WooCommerce REST API with a read-scoped key.
- In beta
Stripe
Billing context
Reads subscription and invoice state so billing questions get a real answer, and flags failed payments for a person rather than attempting them itself.
Where your team already works
Handoffs should arrive where people are, not in a tool they have to remember to check.
- Available
Slack
Handoff notifications
Pushes escalations into the channel you choose, summarised, with a link to reply in thread. Answer from Slack and it reaches the customer in the chat.
- In beta
Microsoft Teams
Handoff notifications
The same escalation flow for Teams, posted to a channel with the transcript and customer record attached.
- Available
Discord
Community answers
Answers in your community server from the same knowledge sources, so members get the documented answer without waiting for a moderator.
Channels
One thread per customer, whichever way they reached you. Nobody on your team answers the same question twice because it arrived twice.
- Available
WhatsApp Business
Messaging channel
Connect a WhatsApp Business number and conversations join the same inbox as web chat, with replies in the customer's language.
- Available
Instagram DMs
Messaging channel
Story replies and direct messages route into the shared inbox, so social does not quietly become a second, unstaffed support queue.
- Available
Email
Forwarding address
Forward your support address and the assistant drafts or sends replies under your own domain, escalating anything it is not confident about.
Website platforms
If you can paste a script tag into your site's header, you can install the widget. Most people are done in under ten minutes.
- Available
WordPress
Plugin or script tag
Install the plugin and paste your site key, or add the script to your theme header if you would rather not add a plugin.
- Available
Shopify storefront
Theme app embed
Enable the app embed in your theme editor. No theme code to edit, and it survives theme updates.
- Available
Webflow
Custom code
Paste the snippet into Project Settings โ Custom Code, before the closing body tag.
- Available
Wix
Custom code
Add it under Settings โ Custom Code, scoped to all pages.
- Available
Squarespace
Code injection
Paste it into Settings โ Advanced โ Code Injection.
- Available
Ghost
Site header
Add it under Settings โ Code injection โ Site header.
Frameworks
The widget is a single async script and a global command queue, so it behaves the same whichever framework renders around it.
- Available
React
Component or script
Load the script once at the app root and call the queue from anywhere โ commands issued before the widget finishes loading are replayed when it boots. No iframe wrangling, no ref juggling.
- Available
Next.js
App Router ready
Ships clean with the App Router and Server Components: drop the loader into your root layout with `next/script` and lazy loading, so it never blocks your first paint.
- Available
Vue
Plugin or script
Same script tag and queue, installed once in your app entry point.
- Available
Svelte
Script tag
Add it to `app.html` and call the queue from any component.
- Available
Angular
Script tag
Add it to `index.html`; the queue is available from any service or component.
Installing it
Three steps, and the third one is optional
Nothing here needs an engineer for a week. The first step is a copy-paste, the second is a URL, and the third only matters if your visitors are signed in.
Paste one script tag
It goes anywhere before the closing body tag and loads asynchronously, so it never blocks your page. Your site key comes from the dashboard when you sign up.
<script> window.ChatWidget = window.ChatWidget || function () { (window.ChatWidget.q = window.ChatWidget.q || []).push(arguments); }; </script> <script async src="https://cdn.ndesk.chat/loader.js" data-site-key="YOUR_SITE_KEY"></script>Point it at what you already wrote
Add your help centre URL, your docs, or a sitemap. It crawls and indexes them, then re-checks on a schedule, so an answer stops being wrong the same week the article changes. Most teams connect two or three sources and stop there.
Tell it who it is talking to
If a visitor is already signed in, pass what you know. The assistant can then look up their order or plan instead of asking questions your app can already answer.
ChatWidget("identify", { email: user.email, name: user.name, externalUserId: user.id, }); ChatWidget("set", { plan: "growth", locale: "en-GB" });
Not seeing yours?
The REST API and outbound webhooks cover anything the directory does not. Conversations, contacts and events are all readable and writable, and you can register a webhook for handoffs, resolutions and tags to drive your own workflow. If you are weighing up a build, tell us what you need it to do โ we will tell you honestly whether the API already covers it or whether you would be waiting on us.
