playbook-recommendations について
playbook-recommendationsは、ServiceNowのプロセス自動化を扱うユーザー向けに、対応中のケース、インシデント、HRケースに合うプレイブックを提案するスキルです。記録の状況と実行履歴で候補を順位付けし、カバレッジの不足も特定します。
主な機能
- 01ケースやインシデントの状況を取得
- 02利用可能なプレイブックとアクティビティを検索
- 03状況との適合性と過去の成果を評価
- 04推薦理由を説明しカスタマイズを提案
- 05プレイブックのカバレッジ不足を特定
活用シーン
- 01対応中のインシデントに使うプレイブックを選ぶ
- 02顧客サービスケースにプレイブックを照合
- 03インシデントカテゴリごとのカバレッジを評価
MCP 対応
ServiceNowのMCPツールで記録、プレイブック、アクティビティ、実行履歴を取得します。推薦内容は任意で記録に関連付けられます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill playbook-recommendationsインストール後、Claude Code で/playbook-recommendationsを入力して読み込まれたか確認します。
詳細
プレイブックの推奨
概要
このスキルは、進行中のケース、インシデント、または HR ケースのコンテキストに基づいて、関連する Process Automation Designer のプレイブックを推奨します。
- 問題のパターン(カテゴリ、優先度、症状)を既存のプレイブックのトリガーや条件と照合します
- 過去の成功率とコンテキストとの適合度に基づいて、プレイブックの関連度をスコアリングします
- 一致する理由を説明しながら、具体的なプレイブックを推奨します
- 完全に一致するものがない場合は、プレイブックのカスタマイズを提案します
- 新しいプレイブックを作成すべき領域を特定します
- 効果を検証するため、プレイブックの実行履歴を分析します
使用するタイミング: エージェントが進行中のレコードに適用するプレイブックについてガイダンスを必要とする場合、仮想エージェントのフローでプレイブックの選択を自動化する場合、またはサービスカテゴリ全体でプレイブックの適用範囲を評価する場合に使用します。
前提条件
- ロール:
process_automation_user、itil、sn_customerservice_agent、またはadmin - プラグイン:
com.glide.process_automation(Process Automation Designer) - アクセス権:
sys_pd_playbook、sys_pd_activity、sys_pd_context、およびソースレコードのテーブルに対する読み取りアクセス - 知識: Process Automation Designer の概念、プレイブックのライフサイクル、アクティビティの種類
- 関連スキル: 新しいプレイブックの作成には
genai/playbook-generation、基盤となるフローにはgenai/flow-generation
手順
ステップ 1:ソースレコードのコンテキストを取得する
プレイブックの推奨が必要なケースまたはインシデントを取得します。
MCP の方法:
Tool: SN-Get-Record
Parameters:
table_name: incident
sys_id: <incident_sys_id>
fields: sys_id,number,short_description,description,category,subcategory,priority,impact,urgency,assignment_group,state,cmdb_ci,contact_type,caller_id
REST の方法:
GET /api/now/table/incident/<incident_sys_id>
?sysparm_fields=sys_id,number,short_description,description,category,subcategory,priority,impact,urgency,assignment_group,state,cmdb_ci,contact_type
&sysparm_display_value=true
CSM ケースの場合:
Tool: SN-Get-Record
Parameters:
table_name: sn_customerservice_case
sys_id: <case_sys_id>
fields: sys_id,number,short_description,description,product,category,priority,account,contact,state,assignment_group
ステップ 2:利用可能なプレイブックを検索する
このレコードタイプに適用できる、有効なプレイブックをすべて取得します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_playbook
query: active=true^trigger_table=incident^ORDERBYorder
fields: sys_id,name,description,trigger_table,trigger_condition,category,sys_updated_on,active,application
limit: 50
REST の方法:
GET /api/now/table/sys_pd_playbook
?sysparm_query=active=true^trigger_table=incident^ORDERBYorder
&sysparm_fields=sys_id,name,description,trigger_table,trigger_condition,category,sys_updated_on
&sysparm_display_value=true
&sysparm_limit=50
ステップ 3:プレイブックのアクティビティとステージを取得する
候補となる各プレイブックのステージとアクティビティを取得して、その内容を確認します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_stage
query: playbook=<playbook_sys_id>^ORDERBYorder
fields: sys_id,name,description,order,playbook,condition
limit: 20
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_activity
query: playbook=<playbook_sys_id>^ORDERBYorder
fields: sys_id,name,description,activity_type,stage,order,condition,mandatory,inputs
limit: 50
ステップ 4:プレイブックをレコードのコンテキストと照合する
以下の基準を使って、各プレイブックをソースレコードに照らしてスコアリングします。
照合基準:
| 基準 | 重み | 照合方法 |
|---|---|---|
| カテゴリの一致 | 30% | プレイブックの trigger_condition にレコードのカテゴリが含まれている |
| 優先度の適合 | 15% | プレイブックがこの優先度レベル向けに設計されている |
| CI/サービスの一致 | 20% | プレイブックが同じ CI タイプまたはサービスを対象としている |
| 説明の類似性 | 15% | レコードの説明とプレイブックの説明との自然言語上の類似性 |
| 過去の成功率 | 20% | 類似レコードに対するプレイブックの解決率 |
過去のデータに基づく照合の MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_context
query: playbook=<playbook_sys_id>^state=complete^ORDERBYDESCsys_created_on
fields: sys_id,playbook,document_id,state,started,completed,duration
limit: 50
ステップ 5:関連度スコアを計算する
プレイブックの推奨を順位付けしたリストを作成します。
=== PLAYBOOK RECOMMENDATIONS ===
Record: INC0045678 - Email server not responding
Category: Email | Priority: P2 | CI: mail-server-prod-01
Rank | Playbook | Score | Match Reason
-----|---------------------------------|-------|------------------------------------------
#1 | Email Service Outage Response | 92% | Category: exact, CI type: mail server,
| | | Success rate: 89% (45 past executions)
#2 | Server Connectivity Diagnostic | 78% | CI type: server, Description: "not
| | | responding" pattern, Success: 76%
#3 | Network Service Restoration | 65% | Category: partial (network/email),
| | | Priority: P2 match, Success: 82%
#4 | General Incident Triage | 45% | Generic fallback, always applicable,
| | | Success: 71%
RECOMMENDED: #1 - Email Service Outage Response
Reason: Exact category match, designed for this CI type, 89% historical
success rate across 45 similar incidents.
ステップ 6:プレイブックの実行履歴を分析する
推奨するプレイブックの過去の実績を確認します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_context
query: playbook=<recommended_playbook_sys_id>^state=complete^completed>javascript:gs.daysAgo(90)
fields: sys_id,document_id,state,started,completed,duration
limit: 100
指標を計算します:
=== PLAYBOOK PERFORMANCE: Email Service Outage Response ===
Period: Last 90 days
Executions: 45
Completion Rate: 89% (40 completed, 5 abandoned)
Average Duration: 32 minutes
Median Duration: 25 minutes
Fastest Resolution: 8 minutes
Slowest Resolution: 2 hours 15 minutes
Resolution Outcome (from linked incidents):
- Resolved: 38 (84%)
- Escalated: 5 (11%)
- Workaround Applied: 2 (5%)
ステップ 7:プレイブックのカスタマイズを提案する
完全に一致するプレイブックがない場合は、最も近い候補の変更を提案します。
=== CUSTOMIZATION SUGGESTIONS ===
Closest Match: Server Connectivity Diagnostic (78% relevance)
Suggested Modifications for Email-Specific Use:
1. ADD STAGE: "Check Email Service Status"
- Activity: Query monitoring system for mail server health
- Activity: Check mail queue depth via REST API
2. MODIFY STAGE: "Connectivity Tests"
- Add email-specific port checks (25, 587, 993, 143)
- Add SMTP handshake test activity
3. ADD ACTIVITY: "Notify Email Users"
- Send communication to affected distribution list
- Post status update to service status page
4. SKIP STAGE: "Database Connectivity" (not applicable to email)
Estimated Effort to Customize: 2-4 hours
Alternative: Create new playbook using genai/playbook-generation skill
ステップ 8:プレイブックの適用範囲における不足を特定する
一致するプレイブックがないカテゴリやインシデントタイプを見つけます。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: active=true^sys_pd_contextISEMPTY^ORDERBYDESCsys_created_on
fields: category,subcategory,priority,short_description
limit: 100
対応できていない領域を見つけるため、カテゴリ別にグループ化します:
=== PLAYBOOK COVERAGE GAPS ===
| Category/Subcategory | Open Incidents | Playbook Available |
|-----------------------------|---------------|-------------------|
| Hardware > Monitor Issues | 23 | No |
| Software > License Errors | 18 | No |
| Network > WiFi Connectivity | 15 | No |
| Email > Calendar Sync | 12 | No |
| Database > Performance | 8 | Yes (partial) |
Priority Recommendation:
Create playbooks for "Hardware > Monitor Issues" and "Software > License Errors"
first (highest volume with no coverage).
ステップ 9:プレイブックをレコードに関連付ける(任意)
推奨が承認された場合は、プレイブックをレコードに関連付けます。
MCP の方法:
Tool: SN-Update-Record
Parameters:
table_name: incident
sys_id: <incident_sys_id>
data:
u_recommended_playbook: "<playbook_sys_id>"
u_playbook_relevance_score: "92"
ステップ 10:推奨の有効性を追跡する
推奨したプレイブックが成功につながるかどうかを監視します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_pd_context
query: document_id=<incident_sys_id>^state=complete
fields: sys_id,playbook,state,started,completed,duration
limit: 5
ツールの使用方法
| ツール | 目的 | 使用するタイミング |
|---|---|---|
| SN-Query-Table | プレイブック、実行履歴、インシデントを取得します | 主なデータの取得と分析 |
| SN-Get-Record | 特定のインシデントまたはケースの詳細を取得します | ソースレコードのコンテキストを取得する場合 |
| SN-Natural-Language-Search | 説明の類似性でプレイブックを検索します | カテゴリによる照合だけでは不十分な場合 |
| SN-Update-Record | 推奨するプレイブックをレコードに関連付けます | 推奨を記録する場合 |
ベストプラクティス
- 過去の成功実績を重視する -- 完了率が90%のプレイブックは、カテゴリが完全に一致していても実行の成果が低いプレイブックより優れています
- プレイブックの複雑さを考慮する -- 迅速な対応が重要なP1インシデントでは、よりシンプルなプレイブックを推奨します
- プレイブックが最新か確認する -- 6か月以上更新されていないプレイブックには、古い手順が記載されている可能性があります
- エージェントのスキルレベルを考慮する -- 高度な技術スキルが必要なプレイブックもあります
- 代替案を提示する -- セーフティネットとして、汎用的なトリアージ用プレイブックを必ず含めます
- 推奨の採用状況を追跡する -- エージェントが推奨に従う頻度を測定します
- スコアの重みを更新する -- 実際の結果データに基づいて、マッチング基準を調整します
- 時間帯を考慮する -- 営業時間内にのみ利用可能なリソースが必要なプレイブックもあります
- プレイブックを推奨しすぎない -- 関連性の高い順に、最大3~5件を推奨します
- 説明を含める -- エージェントがプレイブックの推奨理由を理解できるようにします
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| プレイブックが見つからない | trigger_table が誤っている、またはすべて非アクティブ | sys_pd_playbook.trigger_table がレコードの種類と一致することを確認します |
| すべてのスコアが低い | プレイブックが現在のカテゴリと合致していない | プレイブックのトリガー条件を見直して更新します |
| 実行履歴が空 | プレイブックが最近作成されたか、まだ使用されていない | カテゴリと説明のマッチングのみを使用します |
| 推奨が一致しない | スコアの重みが適切に調整されていない | 過去の推奨と結果を分析し、重みを調整します |
| コンテキストレコードが見つからない | Process Automation の追跡が有効になっていない | sys_pd_context レコードが作成されていることを確認します |
| プレイブックのアクティビティが返されない | アクティビティで別のテーブル名が使われている | sys_pd_lane_activity またはバージョン固有のテーブルを確認します |
例
例1:インシデントのプレイブック推奨
入力:「INC0045678(メールサーバーが応答しない)に適したプレイブックを推奨してください」
**手順:**インシデントの詳細を取得し、インシデントテーブルに対するアクティブなプレイブックをすべて照会して、カテゴリ、優先度、CI、説明に基づいてそれぞれをスコアリングします。上位候補の実行履歴を取得し、説明を添えてランキング順に返します。
例2:CSM ケースのプレイブックマッチング
入力:「請求エラーに関するこの顧客の苦情には、どのプレイブックを使うべきですか?」
手順:sn_customerservice_case からケースの詳細を取得し、trigger_table=sn_customerservice_case のプレイブックを照会して、製品、カテゴリ、説明に基づいてマッチングします。過去の実行から得られた顧客満足度の指標とともに推奨します。
例3:プレイブックのカバレッジ評価
入力:「プレイブックでカバーされていないインシデントカテゴリを表示してください」
**手順:**アクティブなプレイブックのトリガー条件をすべて照会し、件数とともにすべてのインシデントカテゴリを照会します。照合して、インシデントはあるものの一致するプレイブックがないカテゴリを特定し、インシデント件数に基づいて優先順位を付けます。
関連スキル
genai/playbook-generation- 特定された不足を補う新しいプレイブックを作成しますgenai/flow-generation- プレイブックのアクティビティを支えるフローを構築しますitsm/incident-triage- インシデントの分類とルーティングitsm/incident-lifecycle- インシデント管理プロセスcsm/case-summarization- マッチングに使う顧客ケースのコンテキスト