Zammad Addons New Info

| Metric | Verdict | | :--- | :--- | | Installation | Instant. Click "Activate" in the Admin UI. No server restarts. | | Speed impact | Negligible (~50ms extra load on the ticket view). | | Upgrade safety | Survived three Zammad minor version upgrades (v6.0 -> v6.2) with zero breakage. | | API access | All add-on features are exposed via the REST API. We automated ticket merging via a webhook. |


A typical Zammad addon requires a specific definition file to appear in the UI and be registered in the system.

Create a file inside your engine structure, typically at: app/assets/javascripts/app/lib/app_post/_my_new_feature.coffee (or JS)

Or define it within the Zammad core hooks. The critical part is the App.Controller definition.

Example basic structure for a Zammad UI Addon: zammad addons new

// In app/assets/javascripts/apps/my_new_feature/my_new_feature.js

import App from 'zammad/app';

var MyNewFeature = App.Controller.extend( init: function() // Your code here console.log("My New Feature Addon Loaded!"); );

export default MyNewFeature;

What it is: An addon designed for IT and software support teams. Core functionality: Links Zammad tickets to Jira issues or GitHub PRs. New Capabilities in 2025:

Based on community chatter and GitHub activity, watch for:

For Zammad to recognize the addon, it must be registered in app/models/setting.rb or via an initializer if it's a backend feature.

If you are creating a backend addon (e.g., a new channel or scheduler), you would add an initializer in your engine: | Metric | Verdict | | :--- |

lib/my_new_feature/engine.rb

module MyNewFeature
  class Engine < ::Rails::Engine
    isolate_namespace MyNewFeature
# Register the addon with Zammad
initializer "my_new_feature.register_addon" do |app|
  # Zammad specific registration logic usually goes here
  # For example, adding a new channel or ticket hook
end

end end

error: Content is protected !!