Chatwoot vs Zammad
Pick Chatwoot if your customers reach you through website live chat, WhatsApp, Instagram, Facebook, Telegram and email, and you want an Intercom-style inbox with a help center on an MIT core, accepting that SLA policies, custom roles, SSO and Captain AI are paid per agent. Pick Zammad if you are replacing a Zendesk-style ticket desk: email first, with SLAs, time accounting, a knowledge base and LDAP or SAML sign-in all free under AGPL-3.0, on a bigger stack with Elasticsearch.
Side by side
Chatwoot and Zammad are the two self-hosted helpdesks most often put forward as a way off Zendesk or Intercom. Both are Ruby on Rails applications on PostgreSQL, both take email and messaging channels into one agent interface, and both publish an official Docker Compose stack. They are still built around different units of work. Chatwoot is built around the conversation: a shared inbox where a website chat, a WhatsApp thread and an email land side by side and agents reply in real time. Zammad is built around the ticket: something with a number, a group, an owner, a state, an SLA clock and time booked against it. Decide which one your support actually runs on, then look at the licence and the free feature set, because that is where the two differ most.
Conversation inbox vs. ticket desk
Chatwoot calls itself "an open-source alternative to Intercom, Zendesk, Salesforce Service Cloud". Its README puts the omnichannel inbox first: "live chat on your website, email, Facebook, Instagram, Twitter, WhatsApp, Telegram, Line, SMS etc." The channel models in the source also include TikTok and a generic API channel for anything else. Around the inbox you get private notes and @mentions, labels, canned responses, auto-assignment, business hours, campaigns, pre-chat forms, a help center portal, and conversation, agent, inbox, team and CSAT reports. The website widget is the core of the product, and it is the part Intercom users will recognise.
Zammad describes itself as a "web-based, open-source helpdesk and customer support platform" for "email, chat, telephone and social media". Its admin documentation lists the channels as web form, email (including Google and Microsoft 365 mailboxes), chat, SMS via Twilio, Facebook, Telegram and WhatsApp. Phone comes through CTI integrations: a generic CTI, Placetel and sipgate. The rest of the admin manual is ticket machinery: groups, roles, overviews, macros, text modules, triggers, schedulers, SLAs with calendars, time accounting, checklists, core workflows (conditional ticket forms), a knowledge base, and LDAP/Active Directory, PGP and S/MIME integrations.
If your support is mostly live chat and messaging apps, with agents answering within minutes, Chatwoot's model fits. If it is mostly email, with escalations, due dates, and a manager who needs to see which tickets breached an SLA, Zammad's model fits.
What the free edition keeps
Chatwoot is open core. Its LICENSE puts everything outside the
enterprise/ directory under the MIT (Expat) licence. The enterprise/
directory has its own licence: the code "may only be used in production" with
a valid Chatwoot Enterprise License "for the correct number of user seats".
Chatwoot's self-hosted pricing page lists what the free Community Edition
leaves out: Captain AI, voice calls, custom branding, agent capacity, roles and
permissions, SSO/SAML, SLA policies and priority support. Premium Support, at
$19 per agent per month, adds all of those except SSO and SLA policies; the
Enterprise Edition, at $99 per agent per month, adds those two. The source
matches the page: sla, captain_integration, custom_roles, audit_logs
and disable_branding are flagged premium: true in config/features.yml.
Upstream says Captain "connects to OpenAI's GPT models". The docs also
publish -ce image tags (for example v4.18.0-ce) for the "foss version"
without the enterprise code.
Zammad has no paid edition. The repository is AGPL-3.0, and the docker-compose README says the software "is and will stay open source", owned by the Zammad Foundation and developed by Zammad GmbH. SLAs, time accounting, the knowledge base, core workflows, LDAP, and SAML and OpenID Connect login all ship in the self-hosted build. Zammad GmbH's self-hosted packages are support contracts, not feature unlocks. Its AI features are optional and take a provider you configure: OpenAI, Anthropic, Azure AI, Mistral, any OpenAI-compatible endpoint, a local Ollama, or Zammad's own hosted AI.
This is the clearest split between the two. The things a Zendesk admin expects as standard (SLA timers, custom roles, SSO) are free in Zammad and paid in Chatwoot.
Footprint and setup
Chatwoot's production compose file runs four services: rails,
sidekiq, pgvector/pgvector:pg16 and Redis. Setup is two wgets (the
.env template and the compose file), editing secrets and the Postgres and
Redis passwords, running rails db:chatwoot_prepare, and docker compose up -d. The compose file points at chatwoot/chatwoot:latest, so pin a version
tag yourself. Rails binds to 127.0.0.1:3000 only, so you add the reverse
proxy and TLS. The first visit runs an onboarding screen that creates the
super admin. Upstream's requirements page calls 4 GB of RAM "the required
minimum", good for up to 10,000 conversations a day, recommends 4 CPU cores,
and asks for at least 1 GB of swap so upgrades don't run out of memory. It
also warns that Sidekiq "can use 1GB+ of memory" on a busy server.
Zammad's stack is bigger. zammad-docker-compose starts the Rails
server, a scheduler, a websocket server, nginx, PostgreSQL, Redis, Memcached,
Elasticsearch, a backup service and a one-shot init job. You clone the
repository at a release tag and run docker compose up -d; nginx listens on port 8080, and a Getting
Started wizard creates the first administrator. Elasticsearch needs
vm.max_map_count=262144 on the host. Upstream calls it optional but
"strongly recommended": without it search is "very limited", and searching
the content of email attachments is one of the things it provides. The Docker install page asks for "at
least 4 GB of RAM to run the containers". The hardware guide is stricter: a
minimum of 2 cores and 6 GB of RAM, plus 4 GB if Elasticsearch runs on the
same server, and 6 cores and 6 GB (+6 GB for Elasticsearch) as a starting
point for up to 40 agents. For HTTPS, the stack ships scenario files for Nginx
Proxy Manager and Cloudflare Tunnel.
We rate both 3 out of 5 to deploy. Neither is hard to start; both need a reverse proxy, a backup plan for PostgreSQL and attachments, and a server bigger than the cheapest VPS tier. Size Zammad above its Docker floor if you keep Elasticsearch on the same box.
Which to choose
Choose Chatwoot if your customers reach you on your website and in messaging apps, you want an Intercom-style chat widget and help center, and the MIT core covers you, or you are prepared to pay per agent for SLAs, custom roles, SSO and Captain AI.
Choose Zammad if you are replacing a Zendesk-style ticket desk: email first, SLAs, time accounting, LDAP or SAML sign-in, and a knowledge base, with nothing held back behind a licence key. Budget more RAM for it.
Choosing between Zammad and Chatwoot
Put the other way round, start with Zammad when tickets and process are the job, and it all has to be free. Move to Chatwoot when real-time chat across WhatsApp, Instagram and your website matters more than SLA reporting.
Not the only two options
If your support is one or two shared email inboxes and you want something far lighter, see Zammad vs FreeScout: FreeScout is a Help Scout-style inbox that runs on plain PHP and MySQL. The other self-hosted helpdesks are listed on the category page.
Common questions
Chatwoot vs Zammad — which self-hosted helpdesk should I pick?
Pick Chatwoot if most support happens in website live chat and messaging apps and you want an Intercom-style shared inbox. Pick Zammad if you run email-first ticket support and need SLAs, time accounting, a knowledge base and LDAP or SAML sign-in without paying for an edition.
Is Chatwoot fully open source?
Its core is MIT. Code in the enterprise/ directory is under a separate Chatwoot Enterprise licence and may only be used in production with a paid licence per agent seat; that is where SLA policies, custom roles, audit logs, SSO and Captain AI live. Upstream publishes -ce image tags that leave the enterprise code out.
Does Zammad have a paid edition with extra features?
No. The whole codebase is AGPL-3.0 and the self-hosted build includes SLAs, time accounting, the knowledge base, core workflows, LDAP and SAML. Zammad GmbH sells hosted Zammad and support packages for self-hosted installs.
How much RAM do Chatwoot and Zammad need?
Chatwoot's requirements page calls 4 GB the required minimum, good for up to 10,000 conversations a day, plus 1 GB of swap for upgrades. Zammad's Docker page asks for at least 4 GB, while its hardware guide sets the minimum at 6 GB plus 4 GB when Elasticsearch runs on the same server. Neither has been measured on this site.
Paid link — we earn a commission if you shop through it.
Other comparisons with these apps
The full free helpdesk vs. the lean PHP inbox you extend with paid modules.
The multi-database web client from DBeaver vs. the PostgreSQL-only admin tool.
One conf.yml with an in-browser editor vs. YAML files and Docker label discovery.