Zammad - Claude Code スキル
前提条件:CLIのインストール
このスキルは zammad-cli バイナリを利用します。このスキルのコマンドを実行する前に、CLIがインストールされていることを必ず確認してください。 インストールされていない場合は、まずインストールを行います。
- macOS / Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/zammad/install.sh) - Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/zammad/install.ps1 | iex - 確認:
zammad-cli --version ~/.local/bin(macOS / Linux) または%LOCALAPPDATA%\Programs\msp-skills(Windows) が$PATHに含まれていることを確認します。
インストーラーは zammad-cli と zammad-mcp バイナリを ~/.local/bin (macOS / Linux) または %LOCALAPPDATA%\Programs\msp-skills (Windows) にダウンロードします。このインストーラーはエージェントとのスキル登録やMCPクライアント設定の書き込みは行いません。その設定方法については mcp-install.md を参照してください。
インストール後に --version が "command not found" を報告する場合、ランタイムがバイナリディレクトリを $PATH 上で認識できていません。確認が成功するまでスキルコマンドを実行しないでください。
単一のGoバイナリでZammad REST + Knowledge Baseの全APIサーフェスをカバーし、オフラインのSQLiteストア、構造化された --json/--select 出力、すべての書き込み操作における --dry-run を提供します。パリティに加えて、同期されたチケットから計算されるチーム管理レイヤーを追加します:agent-load と agent-trend はワークロード、customer-health と churn-risk はアカウントリスク、overdue は滞留バックログ、escalate は感情トリアージ、feedback は顧客の要求マイニングを担当します。任意のZammadインスタンス(インスタンスURLとトークンを設定)で動作します。
このCLIを使用するタイミング
エージェントがZammadのチケットやナレッジベースコンテンツの読み取り、検索、トリアージを行う場合、またはチーム管理に関する質問(誰が過負荷か、どの顧客がリスクか、何が長期滞留しているか、誰がチャーンしそうか、どのフィードバックテーマが繰り返し発生しているか)に答える場合に使用します。サポートオペレーションの自動化、デイリースタンドアップ、アカウントヘルスレビューなど、複数のチケットにまたがる集計が必要な場面に最適です。
アンチトリガー
このCLIを以下の目的で使用しないでください:
- 顧客向けマーケティングメールの送信(チケット記事の管理が目的であり、キャンペーン管理ではありません)
- Zammadのトリガー、自動化、SLA、チャネルの設定(これらは管理コンソールの機能であり、ここでは公開されていません)
- escalate/churn/feedback を権威ある感情分析として信頼すること(これらはヒューリスティックなキーワードトリアージであり、人間またはエージェントが判断するためのシグナルを提供するものです)
ユニークな機能
チーム管理
-
agent-load- 各エージェントの現在のチケット負荷を状態(オープン/ペンディング/バックログ)ごとに表示し、負荷が偏る前にワークバランスを調整できます。誰が過負荷か、またはサポートチーム全体の作業配分がどうなっているかと聞かれたときに使用します。
zammad-cli agent-load --json -
agent-trend- 各エージェントのキューが過去N週間で増加または減少しているかを、オープン数とクローズ数の差分とともに表示します。チームが時間の経過とともに追いついているのか、それとも遅れをとっているのかを聞かれたときに使用します。
zammad-cli agent-trend --weeks 2 --json -
customer-health- オープンチケット数、最古オープン経過時間、再オープン率、速度、最終アクティビティから構築された健全性シグナルで組織をランク付けします。顧客が苦情を言う前に、どの顧客が困難に直面しているかを特定するために使用します。
zammad-cli customer-health --at-risk --json -
overdue- 期限を過ぎても new/open/pending 状態にある滞留チケットを、優先度で重み付けして表示します。最も深刻なものが上位に表示されます。SLA違反や停滞しそうなチケットを検出するために使用します。
zammad-cli overdue --days 3 --json -
escalate- 最近の顧客メッセージが不満を示していると思われるアクティブチケットを、ヒット数、経過時間、優先度でランク付けし、マッチしたスニペットを表示します。怒っているように見える顧客を見つけてエスカレーションすべきかを判断するために使用します。これはスニペット付きのキーワードトリアージであり、最終判断はユーザーが行います。
zammad-cli escalate --json -
churn-risk- 各組織のチャーンリスクを、オープンバックログ、滞留チケット、未回答のペンディング、ネガティブ感情の顧客メッセージからスコアリングし、寄与因子をリストアップします。チャーンに先手を打つために使用します。寄与因子が表示されるので、ユーザーが判断して行動できます。
zammad-cli churn-risk --json -
feedback-scan- チケットと記事のテキストを、機能リクエスト、価格、コンプライアンス、バグのテーマに分類し、ソースチケット参照とスニペットを表示します。顧客が機能、価格、コンプライアンスに関して繰り返し要求している内容をマイニングするために使用します。
zammad-cli feedback-scan --bucket pricing --json
ナレッジベース
-
kb browse- 初期バンドルから解析されたカテゴリ/回答ツリーとしてナレッジベースを表示します。回答を読んだり検索したりする前にKB構造を確認するために使用します。
zammad-cli kb browse -
kb search- ライブKB初期バンドルからKB回答のタイトルと本文をテキスト検索します。キーワードで適切なKB回答を見つけるために使用します。
zammad-cli kb search "restore" --json -
kb get- 初期バンドルからKB回答IDを解決し、完全な翻訳済み本文を取得します。KB回答の全文を読むために使用します。
zammad-cli kb get 42
チケットの利便性
-
ticket note- 1行でチケットに内部メモまたはパートナー公開メモを追加します。コンテンツタイプのデフォルトは自動設定されます。記事ペイロードを手動で構築することなく、チケットに対する作業を記録するために使用します。
zammad-cli ticket note 12345 --body "調査中、ログ待ち" --internal --dry-run
Webhook(ポーリング不要)
Zammadはチケット作成/更新時や記事追加時にこのマシンを呼び出すことができるため、ポーリングは不要です。
# 一度だけ実行(admin.webhook と admin.trigger 権限が必要)
zammad-cli webhooks register --endpoint http://127.0.0.1:8789/zammad --yes
# ZammadがPOSTするマシン上で実行し続ける
zammad-cli webhooks listen
# 到着したイベントを読み取り、次回は返されたカーソルを --since に渡す
zammad-cli events list --since 0 --json
registerはイベントごと(zammad.ticket.created、zammad.ticket.updated、zammad.article.created)に1つのZammad Webhookと1つのトリガーを作成します。署名シークレットを生成し、APIトークンの隣に保存します。ZAMMAD_WEBHOOK_SECRETで上書き可能です。シークレットが出力されることはありません。webhooks statusはシークレットの出所のみを表示します。listenはデフォルトでこのマシン(127.0.0.1、ポート8789)にのみバインドし、シークレットがないと起動を拒否します。すべてのリクエストはZammadのX-Hub-Signatureを保持している必要があり、ボディが読み取られる前に検証されます。すでに処理された配信はドロップされ、1MiBを超えるボディは拒否されます。- WebhookはIDのみを運びます。リスナーはAPI経由でチケットを取得してイベントを記録するため、顧客のテキストがWebhook内を経由することはありません。
- Zammadは約2分間で最大5回の配信を試みた後、断念します。
listenが起動するたびに、まずダウン中に変更された内容を記録します。listen実行中にZammadが配信を試みても到達できない(ネットワーク障害)場合、イベントは記録されません。 - Zammadがリスナーに到達できる必要があります。同一サーバー上のセルフホストZammadはデフォルトで動作します。LAN上の別マシンにあるZammadは
listen --addr <lan-ip>:8789 --tls-cert <file> --tls-key <file>とhttps://エンドポイントが必要です。Zammad CloudインスタンスはLAN上のマシンに到達できません。 - ユーザーが新規または変更されたチケットにリアクションしたい場合に使用します。
events list --since <cursor>で読み取り、返されたカーソルを保持します。チケットのテキストが必要な場合はtickets get <id>を実行します。 - MCP経由では、
events_listは記録されたイベントを読み取ります(読み取り専用、Zammadへの呼び出しなし)。webhooks_registerとwebhooks_unregisterはconfirm: trueの場合のみZammadを変更します。listenはCLIのみです。
コマンドリファレンス
articles - チケット記事の読み取りと追加(メモとメール)
zammad-cli articles by-ticket- チケットの全記事を一覧表示zammad-cli articles create- チケットに記事(メモまたはメール)を追加zammad-cli articles get- IDで単一の記事を取得
groups - チケットルーティンググループ
zammad-cli groups get- IDでグループを取得zammad-cli groups list- 全グループを一覧表示
kb - ナレッジベースのカテゴリと回答
zammad-cli kb answer-create- KB回答を作成。translations_attributes をJSONで渡し、公開または内部マークを行います。zammad-cli kb answer-delete- KB回答を削除(KB編集者権限が必要)zammad-cli kb answer-internal- KB回答を内部用にマーク(エージェントのみ)zammad-cli kb answer-publish- KB回答を公開zammad-cli kb category-create- KBカテゴリを作成。translations_attributes をJSONで渡します。zammad-cli kb init- 完全なナレッジベースバンドル(カテゴリ、回答、翻訳)を取得。kb browse/search/getで使用されます。
organizations - 組織(顧客/パートナー)の読み取りと管理
zammad-cli organizations create- 組織を作成zammad-cli organizations get- IDで組織を取得zammad-cli organizations list- 組織を一覧表示(ページネーション対応)zammad-cli organizations search- 名前またはカスタムフィールドで組織を検索zammad-cli organizations update- 組織を更新
overviews - エージェントのチケット概要(保存済みビュー)
zammad-cli overviews get- IDで概要(とそのチケット)を取得zammad-cli overviews list- 全概要を一覧表示
priorities - チケット優先度の参照(ID -> 名前マップ)
zammad-cli priorities- チケット優先度を一覧表示
states - チケット状態の参照(ID -> 名前マップ)
zammad-cli states- チケット状態を一覧表示
tags - チケットタグ
zammad-cli tags add- オブジェクトにタグを追加zammad-cli tags all- インスタンスで定義されたすべてのタグを一覧表示(ボキャブラリ)zammad-cli tags list- オブジェクトのタグを一覧表示(デフォルトはチケット)zammad-cli tags remove- オブジェクトからタグを削除
tickets - Zammadチケットの読み取り、検索、作成、変更
zammad-cli tickets create- チケットを作成。タイトル、グループ、顧客、初期記事を指定します。zammad-cli tickets delete- チケットを完全に削除(管理者/削除権限が必要)zammad-cli tickets get- IDでチケットを取得zammad-cli tickets list- チケットを一覧表示(ページネーション対応)zammad-cli tickets search- Zammadクエリ構文でチケットを検索(例:'state:open owner_id:3')zammad-cli tickets update- チケットを更新(状態、優先度、所有者、タイトル、組織)
users - ユーザー(エージェントと顧客)の読み取りと管理
zammad-cli users create- ユーザーを作成zammad-cli users get- IDでユーザーを取得zammad-cli users list- ユーザーを一覧表示(ページネーション対応)zammad-cli users me- 認証されたユーザーを取得(認証セルフチェック)zammad-cli users search- メール、名前、またはクエリ(例:organization_id:5)でユーザーを検索zammad-cli users update- ユーザーを更新
agent-load
zammad-cli agent-load- 各エージェントの現在のチケット負荷を状態(オープン/ペンディング/バックログ)ごとに表示し、負荷が偏る前にワークバランスを調整できます。
agent-trend
zammad-cli agent-trend- 各エージェントのキューが過去N週間で増加または減少しているかを、オープン数とクローズ数の差分とともに表示します。
churn-risk
zammad-cli churn-risk- 各組織のチャーンリスクを、オープンバックログ、滞留チケット、未回答のペンディング、ネガティブ感情の顧客メッセージからスコアリングし、寄与因子をリストアップします。
customer-health
zammad-cli customer-health- オープンチケット数、最古オープン経過時間、再オープン率、速度、最終アクティビティから構築された健全性シグナルで組織をランク付けします。
escalate
zammad-cli escalate- 最近の顧客メッセージが不満を示していると思われるアクティブチケットを、ヒット数、経過時間、優先度でランク付けし、マッチしたスニペットを表示します。
feedback-scan
zammad-cli feedback-scan- チケットと記事のテキストを、機能リクエスト、価格、コンプライアンス、バグのテーマに分類し、ソースチケット参照とスニペットを表示します。
kb
-
zammad-cli kb browse- 初期バンドルから解析されたカテゴリ/回答ツリーとしてナレッジベースを表示します。 -
zammad-cli kb search- ライブKB初期バンドルからKB回答のタイトルと本文をテキスト検索します。 -
zammad-cli kb get- 初期バンドルからKB回答IDを解決し、完全な翻訳済み本文を取得します。
events
zammad-cli events list-webhooks listenがカーソル以降に記録したZammadイベントを、古い順に一覧表示します(ローカル、Zammadへの呼び出しなし)。
webhooks
zammad-cli webhooks register-webhooks listenを呼び出すZammad Webhookとトリガーを作成します(--yesでのみ書き込み)。zammad-cli webhooks listen- Zammad Webhookを受信、検証、記録します(停止するまで実行、CLIのみ)。zammad-cli webhooks status- 登録されたWebhookとトリガー、およびシークレットの出所を表示します(シークレット自体は表示しません)。zammad-cli webhooks unregister-webhooks registerで作成されたものを削除します(--yesでのみ書き込み)。
overdue
zammad-cli overdue- 期限を過ぎても new/open/pending 状態にある滞留チケットを、優先度で重み付けして表示します。最も深刻なものが上位に表示されます。
ticket
zammad-cli ticket note- 1行でチケットに内部メモまたはパートナー公開メモを追加します。コンテンツタイプのデフォルトは自動設定されます。
適切なコマンドを見つける
実行したいことは分かっているが、どのコマンドが該当するか分からない場合、CLIに直接問い合わせることができます。
zammad-cli which "<自分の言葉で機能を説明>"
which は自然言語の機能クエリを、このCLIの厳選された機能インデックスから最適なコマンドに解決します。終了コード 0 は少なくとも1つの一致があったことを意味し、終了コード 2 は一致するコマンドが見つからなかったことを意味します。
設定
以下の環境変数が設定されていることを確認してください。
ZAMMAD_URL- ZammadインスタンスのベースURL(例:https://support.example.com)ZAMMAD_API_TOKEN- 有効なZammad APIトークン
CLIはこれらの変数が設定されていない場合、動作しません。