Zammad vs Freshdesk: Self-Hosted or SaaS Helpdesk?
When Each One Makes Sense
Your support team runs on Freshdesk and the per-agent bill keeps climbing. Or you’re choosing a helpdesk for the first time and want to understand the trade-off between cloud convenience and self-hosted control. Zammad and Freshdesk solve the same problem — multi-channel customer support — but the ownership model changes everything.
Zammad is an open-source, self-hosted helpdesk. You run it on your own server, pay nothing for the software, and own every byte of customer data. Freshdesk is Freshworks’ cloud SaaS helpdesk. Zero infrastructure to manage, but you pay per agent per month and your data lives on Freshworks’ servers.
The practical choice is Zammad if you have 5+ agents and want to eliminate per-seat costs — a 10-agent team saves $5,000-8,000/year compared to Freshdesk Pro.
Feature Comparison
| Feature | Zammad (Self-Hosted) | Freshdesk (Cloud) |
|---|---|---|
| License | AGPL-3.0, free | Proprietary, per-agent pricing |
| Email ticketing | Yes | Yes |
| Live chat | Yes (built-in) | Freshchat add-on ($19+/agent/mo) |
| Phone integration | CTI (Sipgate, Placetel) | Freshcaller add-on ($15+/agent/mo) |
| Social channels | Twitter, Facebook, Telegram, WhatsApp | Twitter, Facebook (Pro+) |
| Knowledge base | Yes (internal + public) | Yes (Growth+) |
| SLA management | Yes | Yes (Growth+) |
| Full-text search | Elasticsearch (indexes attachments) | Basic search |
| SSO/SAML | Yes (SAML, OIDC, LDAP) | Enterprise plan only ($79/agent/mo) |
| Two-factor auth | Yes | Yes |
| Custom fields | Yes | Yes (Growth+) |
| Time tracking | Yes | Yes (Growth+) |
| API | REST API + webhooks | REST API + webhooks |
| AI features | Ticket summary, writing assistant (Ollama) | Freddy AI ($29/agent/mo add-on) |
| Mobile app | Responsive web | Native iOS/Android |
| Data location | Your server | Freshworks’ cloud |
| Audit log | Yes | Enterprise only |
| Agent limit | Unlimited | Per plan |
| Backup | Built-in Docker backup service | Freshworks manages |
Cost Comparison
This is where the self-hosted advantage becomes concrete. All Freshdesk prices are annual billing — monthly billing costs 15-20% more.
| Cost Item | Zammad (Self-Hosted) | Freshdesk Growth | Freshdesk Pro | Freshdesk Enterprise |
|---|---|---|---|---|
| Per-agent/month | $0 | $15 | $49 | $79 |
| 10 agents/month | $0 | $150 | $490 | $790 |
| 10 agents/year | $0 | $1,800 | $5,880 | $9,480 |
| VPS hosting | $20-40/month | Included | Included | Included |
| Chat add-on | Included | +$19/agent/mo | +$19/agent/mo | +$19/agent/mo |
| Phone add-on | Included | +$15/agent/mo | +$15/agent/mo | +$15/agent/mo |
| AI features | Free (self-hosted Ollama) | +$29/agent/mo | +$29/agent/mo | +$29/agent/mo |
| SSO/SAML | Included | Not available | Not available | Included |
| Total annual (10 agents) | $240-480 | $1,800-$5,760 | $5,880-$11,640 | $9,480-$16,920 |
Freshdesk splits functionality across separate products. To match Zammad’s built-in chat + phone + social channels, you need Freshdesk Omni ($29-109/agent/month) or stacked add-ons. A 10-agent team on Freshdesk Pro with chat and AI pays $11,160/year. The same team on Zammad pays under $500/year for hosting.
Installation Complexity
Freshdesk: Sign up, configure mailboxes, invite agents. Zero infrastructure work. Production-ready in an hour.
Zammad: Deploy a 10-service Docker Compose stack (Rails app, Nginx, WebSocket, scheduler, PostgreSQL, Elasticsearch, Redis, Memcached, init, backup). Requires a server with 4+ GB RAM and vm.max_map_count=262144 set for Elasticsearch. First deployment takes 30-60 minutes including configuration.
Zammad’s Docker setup is more complex than most self-hosted apps because of Elasticsearch and the multi-service architecture. But it’s a one-time cost — once running, the built-in backup service handles daily snapshots automatically.
# Simplified overview of the Zammad stack
services:
zammad-railsserver:
image: ghcr.io/zammad/zammad:7.0.0
zammad-nginx:
image: ghcr.io/zammad/zammad:7.0.0
zammad-websocket:
image: ghcr.io/zammad/zammad:7.0.0
zammad-scheduler:
image: ghcr.io/zammad/zammad:7.0.0
zammad-postgresql:
image: postgres:17.7-alpine
zammad-elasticsearch:
image: elasticsearch:8.19.11
zammad-redis:
image: redis:7.4.7-alpine
zammad-memcached:
image: memcached:1.6.40-alpine
For the full working Docker Compose configuration, see our Zammad setup guide.
Performance and Resource Usage
| Metric | Zammad | Freshdesk |
|---|---|---|
| Minimum RAM | 4 GB (6 GB recommended) | N/A (cloud) |
| Storage | Scales with ticket volume | N/A (cloud) |
| Search speed | Elasticsearch — sub-second across millions of tickets | Adequate for most use cases |
| Concurrent agents | Limited by your server hardware | Plan-dependent |
| Uptime responsibility | You (or your hosting provider) | Freshworks (99.9% SLA on Enterprise) |
Zammad’s Elasticsearch integration is a genuine differentiator. It indexes ticket content, email bodies, and file attachments for instant full-text search. Freshdesk’s search works but doesn’t match this depth, especially for attachment content.
Data Ownership and Compliance
This is often the deciding factor for regulated industries.
Zammad: Customer conversations, contact data, and attachments stay on your server. You choose the data center location. Full GDPR compliance by design since you’re the data controller and processor. Built-in S/MIME and PGP encryption for email. Audit-proof ticket history.
Freshdesk: Data stored on Freshworks’ infrastructure (AWS, primarily US/EU regions). Freshdesk is GDPR-compliant as a processor, but you depend on their DPA and security practices. Data export is possible but limited — getting a full backup of all tickets, attachments, and metadata requires API scripting.
Migration Path
Zammad includes built-in migration tools for importing from Freshdesk, Zendesk, and OTRS. The migrator handles tickets, users, organizations, and groups. It doesn’t transfer Freshdesk automation rules or custom apps — those need manual recreation.
For teams currently on Freshdesk, the migration path is:
- Deploy Zammad via Docker
- Use the built-in Freshdesk migrator (Settings → Import → Freshdesk)
- Provide your Freshdesk API key and subdomain
- Zammad imports tickets, agents, contacts, and groups
- Recreate automations and macros in Zammad’s trigger system
Use Cases
Choose Zammad If…
- You have 5+ agents and want to eliminate per-seat costs
- Customer data must stay on your infrastructure (GDPR, HIPAA, internal policy)
- You need multi-channel support (email + chat + phone + social) without add-on fees
- You want full-text search across ticket content and attachments
- You need SSO/SAML without paying for an Enterprise plan
- You’re comfortable managing a Docker deployment
Choose Freshdesk If…
- You need a helpdesk running in under an hour with zero infrastructure
- Your team is under 5 agents and the Growth plan ($15/agent) is affordable
- You need native mobile apps for on-the-go support
- You want Freshworks ecosystem integration (Freshsales, Freshmarketer)
- You have no server administration capability on your team
- You need the Freshdesk marketplace for third-party app integrations
Final Verdict
If your support team has hit 5+ agents, Zammad wins on total cost of ownership. A 10-agent team saves $5,400-$16,400/year depending on which Freshdesk features you’d need. You get every feature — chat, phone, social, AI, SSO, knowledge base — included, not gated behind add-ons or higher tiers.
Freshdesk wins on setup simplicity and ecosystem. If you need a helpdesk today and nobody on your team can manage Docker, Freshdesk Growth at $15/agent is a reasonable starting point. But know that costs compound quickly as you add agents, channels, and AI features.
For most self-hosting-capable teams, Zammad is the better long-term investment.
FAQ
Can Zammad handle the same ticket volume as Freshdesk?
Yes. Zammad with Elasticsearch handles millions of tickets. The limiting factor is your server hardware, not the software. Scale vertically (more RAM, faster storage) or run PostgreSQL and Elasticsearch on separate machines for large deployments.
Does Zammad have a mobile app?
Not a native app. Zammad’s web interface is fully responsive and works well on mobile browsers. Freshdesk has dedicated iOS and Android apps with push notifications.
Can I migrate from Freshdesk to Zammad?
Yes. Zammad has a built-in Freshdesk migrator that imports tickets, agents, contacts, and organizational structure. Automations and marketplace app configurations need manual recreation.
What happens if I outgrow my Zammad server?
Scale your VPS — add RAM, CPU, and storage. For large teams (50+ agents), separate PostgreSQL and Elasticsearch onto dedicated servers. There’s no agent limit in the software.
Is Zammad truly free?
The software is free and open-source (AGPL-3.0). You pay only for hosting. Optional paid support plans ($250-$500/month) are available from Zammad GmbH but not required.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments