DEV Community

Royce
Royce

Posted on • Originally published at ossalt.com

How to Migrate from Zendesk to Chatwoot

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 Feature Chatwoot Status
⚠️ Ticket history Manual export/import via API
✅ Contact list CSV export → import
✅ Live chat widget Chatwoot widget (similar)
✅ Email support Email channel
✅ Social channels Facebook, Twitter, WhatsApp, Telegram
⚠️ Macros/canned responses Recreate as canned responses
❌ Automations/Triggers Rebuild in Chatwoot
❌ Knowledge base Use separate tool (BookStack)
❌ Community forums Not 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
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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"
  }'
Enter fullscreen mode Exit fullscreen mode

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

Agents Zendesk Suite Team Chatwoot Self-Hosted Savings
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

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

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

Top comments (0)