Skip to main content

How to Migrate from Zendesk to Chatwoot

·OSSAlt Team
zendeskchatwootmigrationcustomer supportguide

How to Migrate from Zendesk to Chatwoot

Zendesk starts at $19/agent/month and quickly climbs to $55-115/agent for useful features. A 10-agent team pays $2,280-13,800/year. Chatwoot is the open source alternative — omnichannel support (chat, email, social, WhatsApp) with no per-agent fees.

What Transfers

Zendesk FeatureChatwoot Status
⚠️ Ticket historyManual export/import via API
✅ Contact listCSV export → import
✅ Live chat widgetChatwoot widget (similar)
✅ Email supportEmail channel
✅ Social channelsFacebook, Twitter, WhatsApp, Telegram
⚠️ Macros/canned responsesRecreate as canned responses
❌ Automations/TriggersRebuild in Chatwoot
❌ Knowledge baseUse separate tool (BookStack)
❌ Community forumsNot available

Step 1: Deploy Chatwoot

# Docker Compose
git clone https://github.com/chatwoot/chatwoot.git
cd chatwoot
cp .env.example .env

# Edit .env:
# FRONTEND_URL=https://support.yourdomain.com
# RAILS_ENV=production
# SECRET_KEY_BASE=$(openssl rand -hex 64)

docker compose up -d

Create your admin account at the setup page.

Step 2: Set Up Channels

Website live chat:

  1. SettingsInboxesAdd Inbox
  2. Select Website
  3. Configure name, greeting, and widget color
  4. Copy the widget code into your website:
<script>
  window.chatwootSettings = { position: "right", type: "standard" };
  (function(d,t) {
    var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
    g.src="https://support.yourdomain.com/packs/js/sdk.js";
    g.defer=true; g.async=true;
    s.parentNode.insertBefore(g,s);
    g.onload=function(){
      window.chatwootSDK.run({ websiteToken: 'YOUR_TOKEN', baseUrl: 'https://support.yourdomain.com' })
    }
  })(document,"script");
</script>

Email channel:

  1. Add inbox → Email
  2. Configure forwarding from support@yourdomain.com to Chatwoot
  3. Set SMTP for outgoing email

Social channels:

  • WhatsApp → Twilio or 360dialog integration
  • Facebook → Connect Facebook Page
  • Twitter → Connect Twitter account
  • Telegram → Bot token

Step 3: Import Contacts

Export from Zendesk:

  1. Zendesk → CustomersExport
  2. Download CSV

Import to Chatwoot: Use the API to import contacts:

curl -X POST https://support.yourdomain.com/api/v1/accounts/1/contacts \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "phone_number": "+1234567890"
  }'

Or build a script to batch-import from CSV.

Step 4: Set Up Canned Responses

Recreate Zendesk macros as Chatwoot canned responses:

  1. SettingsCanned ResponsesAdd
  2. Set a shortcode (e.g., /greeting, /refund, /escalate)
  3. Write the response template

Example:

  • Shortcode: /greeting
  • Response: "Hi {{contact.name}}! Thanks for reaching out. How can I help you today?"

Step 5: Configure Automations

Chatwoot automation rules replace Zendesk triggers:

  1. SettingsAutomationAdd Rule
  2. Set conditions (e.g., "message contains 'refund'")
  3. Set actions (e.g., "assign to Billing team", "add label 'refund'")

Step 6: Set Up Teams and Agents

  1. SettingsTeams → Create teams (Sales, Support, Billing)
  2. SettingsAgents → Invite agents
  3. Assign agents to teams
  4. Configure auto-assignment rules

Cost Comparison

AgentsZendesk Suite TeamChatwoot Self-HostedSavings
5$275/month$15/month (VPS)$3,120/year
10$550/month$30/month$6,240/year
25$1,375/month$50/month$15,900/year
50$2,750/month$80/month$32,040/year

Migration Timeline

WeekTask
Week 1Deploy Chatwoot, set up channels, import contacts
Week 2Create canned responses, configure automations
Week 3Train agents, run both platforms for incoming tickets
Week 4Switch live chat widget, redirect email
Month 2Full cutover, cancel Zendesk

Compare customer support tools on OSSAlt — channel support, agent features, and self-hosting options side by side.