Clanker Support
Docs/Migrate · Chatwoot
~25 minutes

Migrate from Chatwoot to Clanker Support

Both Chatwoot and Clanker Support can be self-hosted, but the stacks differ: Chatwoot is Ruby on Rails + PostgreSQL + Redis, while Clanker Support runs serverless on Cloudflare (D1, KV, workerd). Migrating means a widget swap plus a knowledge-base re-import — and, if you self-host, far less infrastructure to maintain afterward.

Quick migration

Replace the Chatwoot SDK loader with the Clanker Support script tag and re-import your knowledge base. If you self-host, you can decommission the Rails/PostgreSQL stack once you're live on Clanker Support.

Remove the Chatwoot SDK
<script>
  (function(d,t) {
    var BASE_URL = "https://app.chatwoot.com";
    var g = d.createElement(t),
        s = d.getElementsByTagName(t)[0];
    g.src = BASE_URL + "/packs/js/sdk.js";
    g.defer = true; g.async = true;
    s.parentNode.insertBefore(g, s);
    g.onload = function() {
      window.chatwootSDK.run({
        websiteToken: "XXXXXXXX",
        baseUrl: BASE_URL,
      });
    };
  })(document, "script");
</script>
↓ replace with ↓
Add the Clanker Support widget
<script
  src="https://api.clankersupport.com/widget.js"
  data-project="pk_live_xxxxxxxxxxxx"
  data-brand="#111827"
  defer
></script>

Step by step

  1. 1

    Create your Clanker Support project

    Sign up for managed Clanker Support (or set up the self-hosted deployment on your Cloudflare account). Create a project and grab your public key.

  2. 2

    Re-import your knowledge base

    Copy your Chatwoot help-center / Captain AI content into your Clanker Support knowledge base. Chatwoot's articles export cleanly as text — paste the relevant parts into your system prompt.

  3. 3

    Swap the SDK loader

    Remove the Chatwoot websiteToken SDK loader and drop in the Clanker Support script tag. One line replaces the loader function. The widget loads in a shadow DOM, which Chatwoot's widget doesn't do.

    Add the Clanker Support widget
    <script
      src="https://api.clankersupport.com/widget.js"
      data-project="pk_live_xxxxxxxxxxxx"
      data-brand="#111827"
      defer
    ></script>
  4. 4

    Configure escalation and your notify email

    In project settings, set the escalation threshold (how many exchanges before the bot hands off) and the notify email where escalations should land. This is your team inbox or a shared support address. When the bot can't help, the full conversation arrives there with context intact.

  5. 5

    Set up email threading (optional)

    If you want customer email replies to thread back into the widget conversation, point an inbound domain at Clanker Support and set your inbound email local in project settings. Replies then flow both ways — your team answers from the inbox, the customer sees it in the widget. No separate helpdesk required.

  6. 6

    Test, then go live

    Open your site, start a test conversation, and trigger an escalation to confirm it reaches your inbox. Once it looks right, you're done — the widget is already live for every visitor.

Concept mapping

Chatwoot → Clanker Support

websiteTokendata-project (publicKey)
sdk.js loader functionSingle widget.js script tag
Captain AI (fixed stack)Any model via LLM Gateway
Rails + PostgreSQL + RedisCloudflare D1 + KV + workerdNo DB server to run.
Chatwoot inboxClanker Support inbox

What to expect

Carries over

  • Knowledge base / help-center content (paste it in)
  • Self-hosting posture (now serverless, much lighter)
  • Web chat support workflow

Needs a separate plan

  • WhatsApp, Instagram, Telegram, and email channels
  • Full agent management: roles, teams, canned responses, labels, reports
  • Conversation history (export from Chatwoot for your records)

Want the full feature comparison first?

See exactly how Clanker Support and Chatwoot stack up across setup, AI, channels, and pricing before you switch.

Clanker Support vs. Chatwoot
Start your migration free →

Other migration guides