mcpField
I
itsm-email-recommendation

itsm-email-recommendation

github.com/happy-technologies-llc生産性4141 回インストール2 日前に更新
リポジトリ

itsm-email-recommendation について

ServiceNow ITSM ケースへのメール返信を作成するスキルで、ユーザーや関係者との連絡を担う ITSM チーム向けです。ケース記録、メール履歴、技術メモ、ナレッジ記事を基に、受付通知、状況報告、解決通知、エスカレーションを作成します。

主な機能

  1. 01インシデント、変更、問題の背景を分析
  2. 02技術情報をメール案に反映
  3. 03ナレッジ記事や回避策を参照
  4. 04次の対応と予定時期を提示
  5. 05状況報告やクローズ通知を作成

活用シーン

  1. 01インシデント受付の確認を送信
  2. 02重大インシデントの状況報告を準備
  3. 03解決概要を添えてユーザーに通知

MCP 対応

MCP ツールで ServiceNow のケース、メール履歴、作業メモ、ナレッジ記事を参照し、推奨メールを作業メモとして保存できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill itsm-email-recommendation

インストール後、Claude Code で/itsm-email-recommendationを入力して読み込まれたか確認します。

詳細

ITSM メールの推奨

概要

このスキルでは、IT サービス管理のケースに対するプロフェッショナルなメール返信を作成するための体系的なアプローチを提供します。以下を対象とします。

  • インシデント、変更、または問題の状況を分析し、適切なメール返信を作成する
  • 技術的な詳細を、技術に詳しくない宛先に過度な負担をかけずに盛り込む
  • 返信でナレッジベースの記事や既知の回避策を参照する
  • 明確な次の手順と解決までの見込み時間を提示する
  • 継続中のインシデントについて状況更新メールを作成する
  • 解決内容の概要を添えたクローズ通知メールを作成する

使用する状況: ITSM エージェントが、IT サービスのケースについてエンドユーザー、関係者、または管理者にプロフェッショナルで構成の整ったメール返信を送る必要がある場合に使用します。技術的な説明が必要な複雑なインシデントや、優先度の高い問題の状況更新に特に役立ちます。

必要なプラグイン: com.snc.incident(インシデント管理)

前提条件

  • ロール: itil、incident_manager、または admin
  • アクセス権: incident、change_request、problem、kb_knowledge、sys_emailへの読み取りアクセス権、インシデントの作業メモへの書き込みアクセス権
  • 知識: IT サービス管理プロセス、SLA 要件、組織のコミュニケーション基準に関する知識
  • プラグイン: com.snc.incidentが有効化されていること

手順

Step 1: ケースの状況を取得する

問題、現在の状態、関係者を把握するために、レコード全体を取得します。

MCP を使用する場合:

Tool: SN-Get-Record
Parameters:
  table_name: incident
  sys_id: [incident_sys_id]
  fields: sys_id,number,short_description,description,state,priority,impact,urgency,category,subcategory,assignment_group,assigned_to,caller_id,caller_id.name,caller_id.email,caller_id.vip,opened_at,resolved_at,close_code,close_notes,business_service,cmdb_ci,sla_due,made_sla

REST API を使用する場合:

GET /api/now/table/incident/[incident_sys_id]?sysparm_fields=sys_id,number,short_description,description,state,priority,impact,urgency,category,subcategory,assignment_group,assigned_to,caller_id,opened_at,resolved_at,close_code,close_notes,business_service,cmdb_ci,sla_due,made_sla&sysparm_display_value=true
Step 2: コミュニケーション履歴を確認する

スレッドの一貫性を保ち、重複を避けるため、以前のメールを確認します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sys_email
  query: instance=incident^target=[incident_sys_id]^ORDERBYDESCsys_created_on
  fields: sys_id,type,subject,body_text,recipients,sys_created_on
  limit: 10

REST API を使用する場合:

GET /api/now/table/sys_email?sysparm_query=instance=incident^target=[incident_sys_id]^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,type,subject,body_text,recipients,sys_created_on&sysparm_display_value=true&sysparm_limit=10
Step 3: 技術的な状況を把握する

作業メモを確認して、診断結果と実施済みの対応を把握します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: sys_journal_field
  query: element_id=[incident_sys_id]^name=incident^element=work_notes^ORDERBYsys_created_on
  fields: value,sys_created_by,sys_created_on
  limit: 20
Step 4: 関連するナレッジ記事を探す

メールで参照するナレッジベースの記事を検索します。

MCP を使用する場合:

Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^short_descriptionLIKE[keyword1]^ORtextLIKE[keyword1]
  fields: sys_id,number,short_description,text
  limit: 5
Step 5: 関連レコードを確認する

状況を把握するため、関連する問題、変更、既知のエラーを特定します。

MCP を使用する場合:

Tool: SN-Execute-Background-Script
Parameters:
  description: Gather related records for email context
  script: |
    var incId = '[incident_sys_id]';
    var inc = new GlideRecord('incident');
    inc.get(incId);

    gs.info('=== RELATED RECORDS FOR EMAIL CONTEXT ===');

    // Related problem
    if (inc.problem_id && inc.problem_id.toString() !== '') {
      var prob = inc.problem_id.getRefRecord();
      gs.info('Problem: ' + prob.number + ' | ' + prob.short_description + ' | Workaround: ' + prob.workaround);
    }

    // Related changes
    var change = new GlideRecord('change_request');
    change.addQuery('reason', incId);
    change.query();
    while (change.next()) {
      gs.info('Change: ' + change.number + ' | ' + change.short_description + ' | State: ' + change.state.getDisplayValue() + ' | Scheduled: ' + change.start_date);
    }

    // Similar recent incidents (for pattern context)
    var similar = new GlideRecord('incident');
    similar.addQuery('category', inc.category.toString());
    similar.addQuery('state', '6'); // Resolved
    similar.addQuery('sys_id', '!=', incId);
    similar.addQuery('sys_created_on', '>=', gs.daysAgo(30));
    similar.orderByDesc('resolved_at');
    similar.setLimit(5);
    similar.query();

    gs.info('\n--- Similar Resolved Incidents ---');
    while (similar.next()) {
      gs.info(similar.number + ': ' + similar.short_description + ' | Resolution: ' + similar.close_notes.toString().substring(0, 100));
    }
Step 6: メール返信を作成する

ケースの状態に応じて適切なテンプレートを選び、メールを作成します。

テンプレート 1:最初の受領確認

Subject: [INC Number] - Your request has been received: [Short Description]

Dear [Caller Name],

Thank you for contacting IT Support. We have received your request and created incident [INC Number] for tracking.

Issue Summary: [Short Description]
Priority: [Priority Level]
Assigned Team: [Assignment Group]

What happens next:
- Our [Assignment Group] team will review your request within [SLA timeframe]
- You will receive updates as we investigate
- You can check the status anytime at [Service Portal URL]

If you have additional information to share, please reply to this email or update the incident through the service portal.

Best regards,
[Agent Name]
IT Service Desk
Reference: [INC Number]

テンプレート 2:状況更新

Subject: Re: [INC Number] - Status Update: [Short Description]

Dear [Caller Name],

I wanted to provide you with an update on your incident [INC Number].

Current Status: [State]
Investigation Summary:
[Brief technical summary in plain language]

Actions Taken:
1. [Action 1]
2. [Action 2]
3. [Action 3]

Next Steps:
- [What will happen next]
- Expected timeline: [Estimated timeframe]

[If workaround available:]
In the meantime, you can use the following workaround:
[Workaround steps]

Please let us know if you have any questions or if the situation has changed.

Best regards,
[Agent Name]
IT Service Desk
Reference: [INC Number]

テンプレート 3:解決通知

Subject: Re: [INC Number] - Resolved: [Short Description]

Dear [Caller Name],

I am pleased to let you know that your incident [INC Number] has been resolved.

Resolution Summary:
[Clear description of what was done to resolve the issue]

Root Cause:
[Brief explanation of what caused the issue, if known]

What You Should See:
[Description of expected behavior now that the issue is resolved]

Preventive Steps:
[Any recommendations to prevent recurrence]

For future reference, you may find this knowledge article helpful:
[KB Article Title] - [KB Number]

This incident will be automatically closed in [X] business days if no further issues are reported. If you experience the issue again, please reply to this email or reopen the incident through the service portal.

Best regards,
[Agent Name]
IT Service Desk
Reference: [INC Number]

テンプレート 4:エスカレーション通知

Subject: Re: [INC Number] - Escalation Notice: [Short Description]

Dear [Caller Name],

I am writing to let you know that your incident [INC Number] has been escalated to our [Specialized Team] team for further investigation.

Reason for Escalation:
[Brief explanation of why escalation is needed]

What This Means:
- A specialist from [Team Name] will be assigned to your case
- They will have full context from our previous investigation
- You may be contacted for additional details

Updated Timeline: [New estimated timeframe]

We understand the urgency and are committed to resolving this as quickly as possible.

Best regards,
[Agent Name]
IT Service Desk
Reference: [INC Number]
Step 7: 記録して送信する

推奨メールを作業メモとして保存し、必要に応じて顧客に表示されるコメントとして追加します。

MCP を使用する場合:

Tool: SN-Add-Work-Notes
Parameters:
  table_name: incident
  sys_id: [incident_sys_id]
  work_notes: |
    === RECOMMENDED EMAIL RESPONSE ===
    Type: [Acknowledgment/Status Update/Resolution/Escalation]
    Recipient: [Caller Name and Email]

    Subject: [Subject line]

    [Full email body]

    === REFERENCES ===
    KB Articles: [KB numbers referenced]
    Related Change: [CHG number if applicable]
    Related Problem: [PRB number if applicable]

ツールの使用方法

MCP ツールのリファレンス
ツール使用する状況
SN-Get-Recordインシデント、変更、問題の全体的な状況を取得する
SN-Query-Tableメール履歴、作業メモ、関連レコードを検索する
SN-Natural-Language-Searchメールで参照する関連ナレッジ記事を探す
SN-Update-Recordメール通知の詳細でインシデントを更新する
SN-Add-Work-Notes推奨メールを記録する
SN-Execute-Background-Script複数レコードにまたがる状況を収集する、一括メールを作成する
REST API リファレンス
エンドポイントメソッド用途
/api/now/table/incidentGET/PATCHインシデントを読み取り、レコードを更新する
/api/now/table/change_requestGET状況把握のため、関連する変更を探す
/api/now/table/problemGET関連する問題と回避策を探す
/api/now/table/kb_knowledgeGET関連する KB 記事を検索する
/api/now/table/sys_emailGETコミュニケーション履歴を確認する
/api/now/table/sys_journal_fieldGET技術的な状況を把握するため、作業メモを抽出する

ベストプラクティス

  • 平易な表現: 受信者が理解できる言葉に専門用語を言い換え、技術的な詳細は作業メモに記載します
  • 具体的に伝える: 曖昧な約束ではなく、インシデント番号、日付、具体的な次の手順を記載します
  • 期待値を設定する: 予想される所要時間と、次にユーザーが期待できることを必ず伝えます
  • セルフサービスを案内する: 今後ユーザー自身で解決できるよう、KB 記事とサービスポータルを案内します
  • スレッドを維持する: メールスレッドの連続性を保つため、「Re:」の接頭辞を使用し、インシデント番号を含めます
  • VIP への配慮: 発信者が VIP かどうかを確認し、それに応じて語調や緊急度の表現を調整します
  • 語調を校正する: 特に不満を抱えているユーザーに対して、メールがプロフェッショナルさと共感を伝えていることを確認します

トラブルシューティング

メール履歴が読み込まれない

原因: 外部システム経由で送信されたメールは、sys_email に記録されていない場合があります
解決策: メールの内容が含まれている可能性があるコメントを sys_journal_field で確認します。配信状況については通知ログを確認します。

KB 記事が一致しない

原因: 検索語が具体的すぎるか、KB 記事が別のカテゴリに分類されています
解決策: 検索語の範囲を広げます。カテゴリ別の検索を試します。意味的な一致には SN-Natural-Language-Search を使用します。

メールテンプレートが状況に合わない

原因: インシデントの状態や状況が標準テンプレートに一致していません
解決策: 複数のテンプレートの要素を組み合わせます。具体的な状況に応じてカスタマイズします。必ず現在の状況、実施した対応、次の手順を含めます。

宛先が不明確

原因: 発信者と影響を受けたユーザーが別人であるか、複数の関係者に状況を知らせる必要があります
解決策: caller_id、opened_by、watch_list フィールドを確認します。重大インシデントの場合は、重大インシデントプロセスで定められた配布リストを使用します。

例

例 1: ネットワーク障害の状況更新
# 1. Get incident details
Tool: SN-Get-Record
Parameters:
  table_name: incident
  sys_id: [sys_id]
  fields: number,short_description,state,priority,caller_id.name,business_service,assignment_group

# 2. Get recent diagnostic notes
Tool: SN-Query-Table
Parameters:
  table_name: sys_journal_field
  query: element_id=[sys_id]^name=incident^element=work_notes^ORDERBYDESCsys_created_on
  fields: value,sys_created_by,sys_created_on
  limit: 5

# 3. Draft status update email with technical findings in plain language
例 2: KB を参照した解決メール
# 1. Get resolution details
Tool: SN-Get-Record
Parameters:
  table_name: incident
  sys_id: [sys_id]
  fields: number,short_description,close_code,close_notes,caller_id.name

# 2. Find relevant KB article
Tool: SN-Query-Table
Parameters:
  table_name: kb_knowledge
  query: workflow_state=published^123TEXTQUERY321=[resolution topic]
  fields: number,short_description
  limit: 3
例 3: 重大インシデントの一括状況更新
Tool: SN-Execute-Background-Script
Parameters:
  description: Generate status update for all users affected by major incident
  script: |
    var majorInc = new GlideRecord('incident');
    majorInc.get('[major_incident_sys_id]');

    // Find all child incidents
    var child = new GlideRecord('incident');
    child.addQuery('parent_incident', majorInc.sys_id.toString());
    child.query();

    gs.info('=== MAJOR INCIDENT STATUS UPDATE ===');
    gs.info('Major Incident: ' + majorInc.number + ' | ' + majorInc.short_description);
    gs.info('Affected Users: ' + child.getRowCount());

    gs.info('\n--- RECOMMENDED BULK EMAIL ---');
    gs.info('Subject: [' + majorInc.number + '] Status Update - ' + majorInc.short_description);
    gs.info('Body: We are currently experiencing [issue description]. Our team is actively working on resolution. Current ETA: [timeframe]. We will provide the next update by [time].');

関連スキル

  • itsm/chat-reply-recommendation - チャットベースの応答候補
  • itsm/incident-summarization - メールの文脈向けにインシデントを要約します
  • itsm/kb-generation - メールで参照する KB 記事を作成します
  • hrsd/email-recommendation - HR に特化したメール候補
  • itsm/major-incident - 重大インシデントのコミュニケーションワークフロー

参考資料

コメント