{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "zammad--zammad",
    "name": "Zammad",
    "tagline": "AGPL helpdesk with a documented REST API for tickets, users, organizations and the knowledge base.",
    "shortTagline": "AGPL helpdesk with a REST API",
    "description": "Web-based ticketing across email, chat, phone and social channels, owned by the Zammad Foundation and developed by Zammad GmbH. Self-host free with Docker Compose, DEB/RPM or Helm; the same company sells hosting. The REST API at /api/v1 with token auth is the agent interface; community MCP wrappers exist.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "smb-ops-crm",
    "alternativeTo": [
      "Zendesk",
      "Freshdesk"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "Ruby",
        "JavaScript"
      ],
      "frameworks": [
        "Ruby on Rails",
        "Vue.js"
      ],
      "packageManager": "bundler + pnpm",
      "database": [
        "PostgreSQL",
        "Elasticsearch",
        "Redis",
        "Memcached"
      ],
      "hostingTarget": [
        "Docker Compose",
        "DEB/RPM",
        "Helm"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/zammad/zammad",
        "owner": "zammad",
        "name": "zammad",
        "license": "AGPL-3.0",
        "stars": 5886,
        "lastCommit": "2026-09-02"
      },
      {
        "url": "https://github.com/zammad/zammad-docker-compose",
        "owner": "zammad",
        "name": "zammad-docker-compose",
        "license": "AGPL-3.0",
        "stars": 383,
        "lastCommit": "2026-09-02"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://docs.zammad.org/en/latest/api/intro.html",
      "official": true,
      "hosted": "both"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Create, update and search tickets",
        "reachable": true,
        "evidence": "docs.zammad.org API: /api/v1/tickets with search"
      },
      {
        "job": "Reply on a ticket (articles)",
        "reachable": true,
        "evidence": "Ticket articles endpoint in the API docs"
      },
      {
        "job": "Manage users and organizations",
        "reachable": true,
        "evidence": "/api/v1/users and /api/v1/organizations"
      },
      {
        "job": "Manage groups and roles",
        "reachable": true,
        "evidence": "Groups and roles endpoints listed in the API intro"
      },
      {
        "job": "Read and write knowledge base articles",
        "reachable": true,
        "evidence": "Knowledgebase listed among searchable endpoints in the API intro"
      },
      {
        "job": "Use macros, templates and text modules",
        "reachable": true,
        "evidence": "Macros, Templates and Text modules listed in the API intro"
      },
      {
        "job": "Run live chat sessions",
        "reachable": null,
        "evidence": "Chat Sessions endpoint mentioned but not detailed on the intro page"
      },
      {
        "job": "Configure triggers and schedulers",
        "reachable": null,
        "evidence": "Not covered on the API intro page"
      },
      {
        "job": "Pull reports",
        "reachable": null,
        "evidence": "Not covered on the API intro page"
      }
    ],
    "editions": [
      {
        "name": "Community (self-hosted)",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/zammad/zammad"
          },
          {
            "kind": "container",
            "url": "https://hub.docker.com/r/zammad/zammad-docker-compose"
          },
          {
            "kind": "binary",
            "url": "https://packager.io/gh/zammad/zammad/refs/stable"
          }
        ]
      },
      {
        "name": "Hosted",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://zammad.com/en/pricing"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or published skill found in the repo."
    },
    "customization": {
      "summary": "zammad-docker-compose/.env.dist (VERSION, POSTGRES_*, ELASTICSEARCH_*, NGINX_PORT, ZAMMAD_FQDN, TZ, backup settings) is deployment configuration only. Business adaptation lives in the admin UI: Channels (email, chat, forms), Triggers and Schedulers, SLAs, Text Modules, Groups and Roles, and Object Manager for custom fields.",
      "envVars": [
        "VERSION",
        "IMAGE_REPO",
        "POSTGRES_HOST",
        "POSTGRES_DB",
        "POSTGRES_USER",
        "POSTGRES_PASS",
        "NGINX_PORT",
        "NGINX_EXPOSE_PORT",
        "ZAMMAD_RAILSSERVER_PORT",
        "ELASTICSEARCH_VERSION",
        "ELASTICSEARCH_JAVA_OPTS",
        "REDIS_URL",
        "MEMCACHE_SERVERS",
        "BACKUP_DIR",
        "BACKUP_TIME",
        "HOLD_DAYS",
        "TZ"
      ],
      "configFiles": [
        "zammad-docker-compose/.env.dist",
        "zammad-docker-compose/docker-compose.yml"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "surfaceKind": "admin-ui",
      "editCount": 19
    },
    "useWhen": [
      "I need a proper ticket queue with SLAs for a small support team and want it on our own server",
      "I want our agent to triage and answer tickets through a stable REST API"
    ],
    "accounts": [
      "SMTP/IMAP mailbox per channel",
      "Zammad GmbH account (hosted edition only)"
    ],
    "active": true,
    "lastActivity": "2026-09-02",
    "gotchas": [
      "Needs Elasticsearch for search; the compose stack runs five services",
      "AGPL: modifications to a hosted copy must be published",
      "Hosted edition has no free plan; only self-host is free"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: web-based helpdesk; Docker, DEB/RPM, Helm",
      "executionModel": "No model dependency in README or compose stack",
      "operability": "docs.zammad.org/en/latest/api/intro.html: /api/v1 with token auth",
      "effort": "zammad-docker-compose .env.dist and docker-compose.yml variable names",
      "editions": "README: AGPLv3 source, cloud service at zammad.com/en/pricing with free trial",
      "active": "GitHub pushedAt 2026-09-02"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.7,
      "operability": 0.95,
      "effort": 0.9,
      "reach": 0.75,
      "editions": 0.8
    },
    "openQuestions": [
      "Hosted plan prices",
      "Does recent Zammad ship AI features (summaries, assistants) that would make executionModel hybrid?",
      "API coverage for triggers, schedulers and reports"
    ],
    "sources": [
      {
        "url": "https://github.com/zammad/zammad",
        "foundBy": "sourcing:smb-ops-crm:github"
      },
      {
        "url": "https://docs.zammad.org/en/latest/api/intro.html",
        "foundBy": "sourcing:smb-ops-crm:github"
      },
      {
        "url": "https://github.com/zammad/zammad-docker-compose",
        "foundBy": "analysis"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "dispute",
      "reason": "Fetched .env.dist from zammad-docker-compose: it holds image versions, database, search, cache, ports and HTTP timeouts, nothing about helpdesk behavior. Channels, triggers, SLAs, roles and the object model are admin-UI settings.",
      "disputed": [
        {
          "field": "customization.effort",
          "reason": "Named env vars deploy the stack; every helpdesk rule (channels, triggers, SLAs, fields, roles) is set in the admin UI, so the file surface does not deliver business adaptation."
        }
      ]
    },
    "url": "apps/zammad--zammad.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/zammad--zammad.json"
  }
}
