article-generation について
ServiceNow の解決済みインシデント、問題、変更からナレッジ記事を作成するスキルです。ナレッジ管理担当者や IT サービスチーム向けに、内容の構成、重複確認、元レコードと関連付けたレビュー用下書きの作成を支援します。
主な機能
- 01インシデント、問題、変更の情報抽出
- 02症状・原因・解決策に沿った構成
- 03既存ナレッジ記事との重複確認
- 04ナレッジベースとカテゴリの選択
- 05元レコードに関連付けた下書き作成
活用シーン
- 01繰り返すインシデントの対応を記事化
- 02問題の根本原因をナレッジ記事に整理
- 03変更後の手順をユーザー向けに共有
MCP 対応
ServiceNow の MCP ツールを使い、レコードの検索、記事の作成・更新、元レコードとの関連付け、作業メモの追加を行う手順を示します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill article-generationインストール後、Claude Code で/article-generationを入力して読み込まれたか確認します。
詳細
ナレッジ記事の生成
概要
このスキルでは、インシデント、問題レコード、変更リクエストなど、解決済みの ServiceNow レコードからナレッジ記事を生成するための構造化されたワークフローを提供します。適切に文書化された解決内容を再利用可能なナレッジにすることで、将来の解決にかかる時間を短縮し、セルフサービスを可能にします。
このスキルでできること:
- クローズ済みのインシデント、問題、変更から解決内容の詳細を抽出する
- 内容を標準的な KB 記事の形式(症状、原因、解決方法、回避策)にまとめる
- 記事を適切なナレッジベースとカテゴリーに割り当てる
- 既存の記事を確認し、重複作成を避ける
- ナレッジマネージャーのレビューに適した下書き記事を作成する
- 追跡可能性を確保するため、ソースレコードを新しい記事にリンクする
使用するタイミング: 繰り返し発生するインシデントの解決後、根本原因の調査を終えて問題レコードをクローズした後、ユーザーのワークフローに影響する変更の実装完了後、または定期的なナレッジ収集セッションで使用します。
前提条件
- ロール: 記事を作成するには
knowledgeまたはknowledge_manager、ソースレコードを読み取るにはitil - アクセス権:
incident、problem、change_requestテーブルへの読み取りアクセス権、kb_knowledgeへの書き込みアクセス権 - プラグイン:
com.glideapp.knowledge(Knowledge Management)が有効化されていること - 知識: 組織で使用している KB 記事のテンプレート、ナレッジベース、承認ワークフローを理解していること
手順
ステップ 1:記事生成のソースレコードを特定する
ナレッジ記事の候補となる、解決済みのインシデント、問題、変更を検索します。
適切な候補の基準:
- クローズノートに詳細が記載されている解決済みのインシデント
- 同じトピックで 3 回以上繰り返し発生したインシデント
- 根本原因が確認されている問題レコード
- 実装後の手順が記載されている変更リクエスト
MCP を使用(繰り返し発生するインシデント):
Tool: SN-Query-Table
Parameters:
table_name: incident
query: state=6^opened_at>=javascript:gs.daysAgoStart(30)^close_notesISNOTEMPTY^kb_knowledgeISEMPTY
fields: sys_id,number,short_description,description,close_notes,category,subcategory,cmdb_ci,assignment_group,resolution_code,resolved_by
limit: 30
REST API を使用:
GET /api/now/table/incident?sysparm_query=state=6^opened_at>=javascript:gs.daysAgoStart(30)^close_notesISNOTEMPTY^kb_knowledgeISEMPTY&sysparm_fields=sys_id,number,short_description,description,close_notes,category,subcategory,cmdb_ci,assignment_group,resolution_code,resolved_by&sysparm_limit=30
MCP を使用(根本原因が記載されている問題レコード):
Tool: SN-Query-Table
Parameters:
table_name: problem
query: state=4^cause_notesISNOTEMPTY^opened_at>=javascript:gs.daysAgoStart(90)
fields: sys_id,number,short_description,description,cause_notes,fix_notes,category,subcategory,cmdb_ci,known_error,workaround
limit: 20
REST API を使用:
GET /api/now/table/problem?sysparm_query=state=4^cause_notesISNOTEMPTY^opened_at>=javascript:gs.daysAgoStart(90)&sysparm_fields=sys_id,number,short_description,description,cause_notes,fix_notes,category,subcategory,cmdb_ci,known_error,workaround&sysparm_limit=20
MCP を使用(実装メモが記載されている変更リクエスト):
Tool: SN-Query-Table
Parameters:
table_name: change_request
query: state=3^close_notesISNOTEMPTY^type=normal^opened_at>=javascript:gs.daysAgoStart(90)
fields: sys_id,number,short_description,description,close_notes,implementation_plan,backout_plan,category,cmdb_ci
limit: 20
ステップ 2:重複を避けるために既存の記事を確認する
新しい記事を作成する前に、同じトピックを扱う既存の記事がないことを確認します。
MCP を使用:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^short_descriptionLIKEoutlook^short_descriptionLIKEcalendar^ORshort_descriptionLIKEsync
fields: sys_id,number,short_description,kb_knowledge_base,kb_category,workflow_state,sys_updated_on
limit: 10
REST API を使用:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKEoutlook^short_descriptionLIKEcalendar^ORshort_descriptionLIKEsync&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,workflow_state,sys_updated_on&sysparm_limit=10
該当する記事が存在する場合は、重複して作成するのではなく、既存の記事の更新を検討します。
ステップ 3:対象のナレッジベースとカテゴリーを特定する
新しい記事に適したナレッジベースとカテゴリーを探します。
MCP を使用:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge_base
query: active=true
fields: sys_id,title,description,kb_version,owner,active
limit: 20
Tool: SN-Query-Table
Parameters:
table_name: kb_category
query: kb_knowledge_base=[target_kb_sys_id]^active=true
fields: sys_id,label,parent_id,full_category
limit: 30
REST API を使用:
GET /api/now/table/kb_knowledge_base?sysparm_query=active=true&sysparm_fields=sys_id,title,description,kb_version,owner,active&sysparm_limit=20
GET /api/now/table/kb_category?sysparm_query=kb_knowledge_base=[target_kb_sys_id]^active=true&sysparm_fields=sys_id,label,parent_id,full_category&sysparm_limit=30
ステップ 4:記事の内容を構成する
抽出した情報を標準的なナレッジ記事の形式にまとめます。記事本文は次のテンプレートに従ってください。
記事構成テンプレート:
<h2>Symptoms</h2>
<p>[Describe what the user experiences - error messages, unexpected behavior, inability to perform a task]</p>
<h2>Cause</h2>
<p>[Explain the root cause or contributing factors]</p>
<h2>Resolution</h2>
<ol>
<li>[Step-by-step resolution instructions]</li>
<li>[Include screenshots or commands where applicable]</li>
<li>[Specify expected outcome after each step]</li>
</ol>
<h2>Workaround</h2>
<p>[If a permanent fix is not available, describe temporary workaround]</p>
<h2>Additional Information</h2>
<ul>
<li>Affected Systems: [CI or service name]</li>
<li>Source: [INC/PRB/CHG number]</li>
<li>Related Articles: [KB numbers]</li>
</ul>
ステップ 5:ナレッジ記事の下書きを作成する
MCP を使用:
Tool: SN-Create-Record
Parameters:
table_name: kb_knowledge
data:
short_description: "How to Resolve Outlook Calendar Sync Errors on Mobile Devices"
text: "<h2>Symptoms</h2><p>Users report that Outlook calendar events are not syncing to their mobile devices (iOS or Android). Events created on the desktop client do not appear on the mobile app, or events appear with incorrect times.</p><h2>Cause</h2><p>The ActiveSync profile on the mobile device has a stale authentication token, often triggered by a recent password change or multi-factor authentication policy update.</p><h2>Resolution</h2><ol><li>On the mobile device, navigate to Settings > Accounts > Exchange/Outlook</li><li>Remove the existing Exchange account</li><li>Restart the device</li><li>Re-add the Exchange account using current credentials</li><li>Wait 5 minutes for initial sync to complete</li><li>Verify calendar events appear correctly</li></ol><h2>Workaround</h2><p>If re-adding the account does not resolve the issue, use Outlook Web Access (OWA) on the mobile browser as a temporary alternative.</p><h2>Additional Information</h2><ul><li>Affected Systems: Microsoft Exchange, Outlook Mobile</li><li>Source: INC0012345, INC0012678, INC0013001</li><li>Related Articles: KB0010100 - Outlook Desktop Sync Issues</li></ul>"
kb_knowledge_base: [target_kb_sys_id]
kb_category: [target_category_sys_id]
workflow_state: draft
article_type: text
valid_to: 2027-03-19
meta_description: "Resolve Outlook calendar sync errors on iOS and Android mobile devices caused by stale authentication tokens"
REST API を使用:
POST /api/now/table/kb_knowledge
Content-Type: application/json
{
"short_description": "How to Resolve Outlook Calendar Sync Errors on Mobile Devices",
"text": "<h2>Symptoms</h2><p>Users report that Outlook calendar events are not syncing...</p>...",
"kb_knowledge_base": "[target_kb_sys_id]",
"kb_category": "[target_category_sys_id]",
"workflow_state": "draft",
"article_type": "text",
"valid_to": "2027-03-19",
"meta_description": "Resolve Outlook calendar sync errors on mobile devices"
}
ステップ 6:ソースレコードを新しい記事にリンクする
ソースのインシデント/問題と新しい KB 記事の関連付けを作成します。
MCP を使用:
Tool: SN-Create-Record
Parameters:
table_name: m2m_kb_task
data:
kb_knowledge: [new_article_sys_id]
task: [source_incident_sys_id]
REST API を使用:
POST /api/now/table/m2m_kb_task
Content-Type: application/json
{
"kb_knowledge": "[new_article_sys_id]",
"task": "[source_incident_sys_id]"
}
ステップ 7:問題レコードから記事を生成する
問題レコードには、より詳細な根本原因のデータが含まれています。原因のメモ、修正のメモ、回避策を抽出します。
MCP を使用:
Tool: SN-Query-Table
Parameters:
table_name: problem
query: number=PRB0005678
fields: sys_id,number,short_description,description,cause_notes,fix_notes,workaround,category,subcategory,cmdb_ci,related_incidents
limit: 1
問題レコードのフィールドを記事のセクションに対応付けます:
description-> 症状cause_notes-> 原因fix_notes-> 解決方法workaround-> 回避策related_incidents-> 追加情報への参照
ステップ 8:変更リクエストから記事を生成する
変更の実装によって、ユーザーが把握する必要のある新しい手順が生じることがよくあります。
MCP を使用:
Tool: SN-Query-Table
Parameters:
table_name: change_request
query: number=CHG0009876
fields: sys_id,number,short_description,description,close_notes,implementation_plan,backout_plan,test_plan,category,cmdb_ci
limit: 1
変更リクエストのフィールドを記事のセクションに対応付けます:
description-> 変更内容の概要implementation_plan-> 新しい手順backout_plan-> 回避策/ロールバック手順test_plan-> 検証手順
ステップ 9:ソースレコードに作業メモを追加する
ソースレコードからナレッジ記事を生成したことを記録します。
MCP を使用:
Tool: SN-Add-Work-Notes
Parameters:
sys_id: [source_record_sys_id]
work_notes: |
=== KNOWLEDGE ARTICLE GENERATED ===
Article: KB0015678 - "How to Resolve Outlook Calendar Sync Errors on Mobile Devices"
Status: Draft (pending review)
Knowledge Base: IT Support
Category: Email / Mobile
Generated from resolution data in this incident.
Article includes symptoms, root cause, step-by-step resolution, and workaround.
Linked to 3 related incidents: INC0012345, INC0012678, INC0013001.
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用する場面 |
|---|---|
SN-Query-Table | ソースレコード、KB ベース、カテゴリを取得する |
SN-Natural-Language-Search | トピックに関する既存の記事があるか確認する |
SN-Create-Record | 新しい KB 記事を作成し、レコードにリンクする |
SN-Update-Record | 既存の記事を新しい内容で更新する |
SN-Add-Work-Notes | ソースレコードに記事の作成内容を記録する |
REST API リファレンス
| エンドポイント | メソッド | 用途 |
|---|---|---|
/api/now/table/incident | GET | 解決済みのインシデントを取得する |
/api/now/table/problem | GET | 問題の根本原因データを取得する |
/api/now/table/change_request | GET | 変更の実施詳細を取得する |
/api/now/table/kb_knowledge | GET/POST | 記事を検索・作成する |
/api/now/table/kb_knowledge_base | GET | 対象のナレッジベースを検索する |
/api/now/table/kb_category | GET | 対象のカテゴリを検索する |
/api/now/table/m2m_kb_task | POST | 記事をソースレコードにリンクする |
ベストプラクティス
- 詳細なクローズノートを使用する: 詳細なクローズノートがあるインシデントから生成された記事は、最良の結果をもたらします。エージェントには、詳しい解決内容を記載するよう促してください
- 一貫したテンプレートに従う: トラブルシューティング記事には、常に「症状/原因/解決方法/回避策」の構成を使用してください
- ドラフトとして作成する: 直接公開せず、必ず
draft状態で作成し、ナレッジマネージャーによる確認と承認を受けてください - 有効期限を設定する: 定期的な確認と更新を促すため、有効期限(通常は12~18か月後)を設定してください
- ソースへの参照を含める: 監査証跡として、記事では元となったインシデント、問題、または変更の番号を必ず参照してください
- メタディスクリプションを追加する: 検索で見つけやすくするため、簡潔なメタディスクリプションを含めてください
- 複数のソースを組み合わせる: 複数のインシデントで同じ問題が説明されている場合は、それらすべてから最適な解決手順をまとめてください
- 作業メモのコピー&ペーストを避ける: 技術的な作業メモは、対象読者に適した分かりやすい表現に書き換えてください
トラブルシューティング
「作成した記事のテキストフィールドが空です」
原因: テキストフィールドには HTML 形式のコンテンツが必要です。プレーンテキストは正しく表示されない場合があります
解決方法: テンプレートに示すように、コンテンツを HTML タグ(<p>、<ol>、<h2>)で囲んでください
「記事を作成できません — 必須フィールドがありません」
原因: ナレッジベースのワークフローでは、kb_knowledge_base、short_description、workflow_state などのフィールドが必要です
解決方法: すべての必須フィールドに値が設定されていることを確認してください。必須フィールドを確認するには、sys_dictionary テーブルで次の条件を検索してください:name=kb_knowledge^mandatory=true
「記事は作成されましたが、ナレッジポータルに表示されません」
原因: 記事は draft 状態であり、承認ワークフローを通じてまだ公開されていません
解決方法: これは想定どおりの動作です。ナレッジマネージャーが記事を確認し、公開する必要があります。workflow_state フィールドを確認してください
「記事をインシデントにリンクできません — m2m_kb_task の作成に失敗します」
原因: 多対多テーブルでは、記事とタスクの両方に有効な sys_id が必要です
解決方法: 両方の sys_id が存在することを確認してください。task フィールドは、task テーブルを拡張するレコード(incident、problem、change_request)を参照している必要があります
「ナレッジワークフローで記事の重複警告が表示されます」
原因: 類似の記事がすでに存在し、ワークフローが重複の可能性を検出しました
解決方法: 既存の記事を確認してください。同じトピックを扱っている場合は、新しい記事を作成するのではなく、既存の記事を更新してください
例
例 1:繰り返し発生するインシデントからの記事
ソース:「プリンター スプーラー サービスが停止した」に関する5件のインシデント(INC0015001-INC0015005)
生成された記事:
- タイトル:「プリンター スプーラー サービスが予期せず停止する場合の再起動手順」
- 症状:「スプーラー サブシステム アプリは動作を停止しました」というエラーが表示され、印刷ジョブに失敗します
- **原因:**サードパーティ製のプリンタードライバーとの競合により、大量印刷時にスプーラーがクラッシュします
- 解決方法:(1)サービス コンソールを開く、(2)Print Spooler を探す、(3)「再起動」をクリックする、(4)再起動に失敗する場合は C:\Windows\System32\spool\PRINTERS フォルダーを空にする、(5)印刷できることを確認する
- **回避策:**ドライバーの更新が適用されるまで、別のプリンターを使用します
- **カテゴリー:**ハードウェア/印刷
例 2:問題レコードからの記事
**ソース:**PRB0005678 - 「CRM アプリケーションでデータベース接続のタイムアウトが断続的に発生する」
生成された記事:
- タイトル:「CRM アプリケーションのデータベース接続タイムアウトの解決方法」
- **症状:**ピーク時間帯に、ユーザーに「接続タイムアウト」エラーが断続的に表示されます
- **原因:**CRM アプリケーション v3.2.1 でデータベース接続が適切に閉じられず、接続プールが枯渇します
- 解決方法:(1)CRM hotfix v3.2.1a を適用する、(2)接続プールの最大数を50から100に増やす、(3)接続プールの監視を有効にする
- **回避策:**CRM アプリケーションサービスを再起動して、接続プールをリセットします
- **カテゴリー:**ソフトウェア/CRM
例 3:変更リクエストからの記事
**ソース:**CHG0009876 - 「オンプレミスの Exchange から Office 365 へのメールの移行」
生成された記事:
- タイトル:「Office 365 への移行後にメールにアクセスする」
- **症状:**移行後、ユーザーはメールクライアントを再設定し、モバイルデバイスの設定を更新する必要があります
- **原因:**クラウドベースのメールサービスへの移行に伴い、サーバー設定の更新が必要です
- 解決方法:(1)Outlook を開く、(2)古い Exchange アカウントを削除する、(3)メールアドレスを使って新しいアカウントを追加する、(4)Office 365 オプションを選択する、(5)MFA で認証を完了する
- **追加情報:**モバイルの設定ガイド、Outlook Web Access の URL、FAQ へのリンク
- **カテゴリー:**メール/設定
関連スキル
knowledge/duplicate-detection- 新しい記事を生成する前に、既存の記事を確認しますknowledge/gap-analysis- 生成の優先順位を決めるため、記事が必要なトピックを特定しますknowledge/content-recommendation- 今後のインシデントに備えて、生成された記事を提示しますknowledge/gap-grouping- 関連するギャップをグループ化し、記事を一括生成します