mcpField
P
playbook-generation

playbook-generation

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

playbook-generation について

自然言語の説明から ServiceNow Process Automation Designer(PAD)のプレイブックを生成するスキルです。ガイド付きプロセス自動化を構築するチーム向けに、ステージ、レーン、アクティビティ、データ入力、条件付き遷移を設定します。

主な機能

  1. 01説明からプレイブック構成を整理
  2. 02ステージと並列レーンの設定
  3. 03承認・判断・通知アクティビティの追加
  4. 04アクティビティの入出力データ定義
  5. 05条件付き遷移と実行コンテキストの設定

活用シーン

  1. 01インシデントのトリアージと解決フローの構築
  2. 02エージェント向け対話型ガイドの作成
  3. 03承認や判断を含む複数段階のフロー編成

MCP 対応

ServiceNow MCP ツールで既存のプレイブックを照会し、プレイブック、ステージ、レーン、アクティビティ、遷移を作成・設定・検証・公開します。

インストール

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

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill playbook-generation

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

詳細

プロセスオートメーションデザイナーのプレイブック生成

概要

このスキルでは、自然言語の説明から ServiceNow Process Automation Designer(PAD)のプレイブックを生成する方法を説明します。

  • 自動化されたプロセス実行のための標準プレイブックを作成する
  • ガイド付きのインタラクション手順を含む、エージェント向けプレイブックを構築する
  • 並列および順次のワークストリーム用にレーンを定義する
  • データ収集、承認、意思決定、通知などのアクティビティを追加する
  • プレイブックのコンテキスト用にデータの入力と出力を設定する
  • 複数フェーズのプロセスを段階的に進行させるステージを設定する
  • プレイブックをカタログアイテム、インシデント、ケース、その他のレコードタイプに接続する

使用する場面: ガイド付きのプロセスオートメーションを構築するとき、データ収集手順を含むエージェント向けワークフローを作成するとき、または人とシステムのやり取りを必要とする複数レーンのビジネスプロセスを自動化するときに使用します。

前提条件

  • ロール: process_automation_designer または admin
  • プラグイン: com.snc.process_flow(Process Automation Designer)、com.glide.hub.flow_designer(Flow Designer)
  • アクセス権: sys_process_flow、sys_pd_activity、sys_pd_lane、sys_pd_transition テーブル
  • 知識: Process Automation の基本概念(プレイブック、レーン、アクティビティ、ステージ)の理解
  • 関連スキル: Flow Designer フローについては genai/flow-generation、Now Assist スキルとの統合については genai/skill-kit-custom

手順

ステップ 1:自然言語の説明を分析する

ユーザーのリクエストを解析し、次の内容を特定します。

  • プレイブックのタイプ: 標準(自動化)またはエージェント向け(対話型)
  • 対象テーブル: プレイブックがサポートするレコードタイプ(incident、case、change_request、sc_req_item)
  • レーン: 並列ワークストリーム、またはタスクを役割ごとに分けるグループ
  • アクティビティ: プレイブックで実行する手順(データ収集、承認、通知、サブフロー)
  • ステージ: プロセスの主要フェーズ(例:トリアージ、調査、解決)
  • 条件: 意思決定ポイントと分岐ロジック
ステップ 2:既存のプレイブックを照会してパターンを確認する

MCP アプローチ:

Use SN-Query-Table on sys_process_flow:
  - query: active=true^sys_class_name=sys_pd_playbook
  - fields: sys_id,name,description,table,playbook_type,active,status
  - limit: 10

REST アプローチ:

GET /api/now/table/sys_process_flow
  ?sysparm_query=active=true^sys_class_name=sys_pd_playbook
  &sysparm_fields=sys_id,name,description,table,playbook_type,active,status
  &sysparm_limit=10

再利用可能なパターンを確認するため、既存のプレイブックアクティビティを照会します。

Use SN-Query-Table on sys_pd_activity:
  - query: playbook=<playbook_sys_id>
  - fields: sys_id,name,activity_type,lane,order,stage
  - limit: 50
ステップ 3:プレイブックレコードを作成する

標準プレイブック(自動化):

MCP アプローチ:

Use SN-Create-Record on sys_pd_playbook:
  - name: "Incident Resolution Playbook"
  - description: "Guides agents through structured incident resolution process"
  - table: "incident"
  - playbook_type: "standard"
  - status: "draft"
  - active: false
  - trigger_type: "record"
  - trigger_condition: "priority<=2^category=network"

REST アプローチ:

POST /api/now/table/sys_pd_playbook
Body: {
  "name": "Incident Resolution Playbook",
  "description": "Guides agents through structured incident resolution process",
  "table": "incident",
  "playbook_type": "standard",
  "status": "draft",
  "active": false,
  "trigger_type": "record",
  "trigger_condition": "priority<=2^category=network"
}

エージェント向けプレイブック(対話型):

Use SN-Create-Record on sys_pd_playbook:
  - name: "Customer Onboarding Playbook"
  - description: "Interactive playbook guiding agents through customer onboarding"
  - table: "sn_csm_case"
  - playbook_type: "agent_facing"
  - status: "draft"
  - active: false
ステップ 4:プレイブックのステージを定義する

ステージは、プロセスの主要フェーズを表します。

MCP アプローチ:

Use SN-Create-Record on sys_pd_stage:
  - playbook: "<playbook_sys_id>"
  - name: "Triage"
  - label: "Triage"
  - order: 100
  - description: "Initial assessment and categorization"
Use SN-Create-Record on sys_pd_stage:
  - playbook: "<playbook_sys_id>"
  - name: "Investigation"
  - label: "Investigation"
  - order: 200
  - description: "Root cause analysis and troubleshooting"
Use SN-Create-Record on sys_pd_stage:
  - playbook: "<playbook_sys_id>"
  - name: "Resolution"
  - label: "Resolution"
  - order: 300
  - description: "Apply fix and verify resolution"

REST アプローチ:

POST /api/now/table/sys_pd_stage
Body: {
  "playbook": "<playbook_sys_id>",
  "name": "Triage",
  "label": "Triage",
  "order": 100,
  "description": "Initial assessment and categorization"
}
ステップ 5:レーンを作成する

レーンは、並列ワークストリームまたは役割ごとにまとめたタスク群を定義します。

主なレーンタイプ:

レーンタイプ説明使用例
Systemユーザーとのやり取りを伴わない自動処理バックグラウンドタスク、通知
Agent割り当てられたエージェントが実行するタスクデータ収集、手動の手順
Approval承認専用のレーンマネージャーまたは CAB による承認
Customer顧客向けのアクティビティセルフサービスでのデータ収集

MCP アプローチ:

Use SN-Create-Record on sys_pd_lane:
  - playbook: "<playbook_sys_id>"
  - name: "Agent Lane"
  - lane_type: "agent"
  - order: 100
  - description: "Primary agent activities"
Use SN-Create-Record on sys_pd_lane:
  - playbook: "<playbook_sys_id>"
  - name: "System Lane"
  - lane_type: "system"
  - order: 200
  - description: "Automated background processing"

REST アプローチ:

POST /api/now/table/sys_pd_lane
Body: {
  "playbook": "<playbook_sys_id>",
  "name": "Agent Lane",
  "lane_type": "agent",
  "order": 100,
  "description": "Primary agent activities"
}
ステップ 6:アクティビティを追加する

アクティビティは、プレイブック内の個々の手順です。

一般的なアクティビティタイプ:

アクティビティタイプ値説明
データ収集data_gatheringユーザーまたはエージェントから情報を収集する
意思決定decision条件に基づいて分岐する
承認approvalユーザーに承認を依頼する
通知notificationメールまたはプッシュ通知を送信する
サブフローsubflowFlow Designer のサブフローを実行する
レコードの更新update_recordプレイブックのコンテキストレコードを変更する
待機wait条件が満たされるまで一時停止する
ステージの完了complete_stageステージを完了としてマークする

データ収集アクティビティ(エージェント向け):

MCP アプローチ:

Use SN-Create-Record on sys_pd_activity:
  - playbook: "<playbook_sys_id>"
  - lane: "<agent_lane_sys_id>"
  - stage: "<triage_stage_sys_id>"
  - name: "Gather Incident Details"
  - activity_type: "data_gathering"
  - order: 100
  - mandatory: true
  - description: "Collect key incident information from the caller"

意思決定アクティビティ:

Use SN-Create-Record on sys_pd_activity:
  - playbook: "<playbook_sys_id>"
  - lane: "<system_lane_sys_id>"
  - stage: "<triage_stage_sys_id>"
  - name: "Check Priority Level"
  - activity_type: "decision"
  - order: 200
  - condition: "current.priority <= 2"
  - description: "Route based on incident priority"

承認アクティビティ:

Use SN-Create-Record on sys_pd_activity:
  - playbook: "<playbook_sys_id>"
  - lane: "<approval_lane_sys_id>"
  - stage: "<investigation_stage_sys_id>"
  - name: "Manager Approval"
  - activity_type: "approval"
  - order: 300
  - approval_type: "approve_reject"
  - approvers: "current.assignment_group.manager"
  - due_date_interval: "2 days"
ステップ 7:アクティビティのデータ入力を設定する

データ入力では、情報収集アクティビティで収集する情報を定義します。

MCP アプローチ:

Use SN-Create-Record on sys_pd_data_input:
  - activity: "<data_gathering_activity_sys_id>"
  - name: "affected_ci"
  - label: "Affected Configuration Item"
  - type: "reference"
  - reference_table: "cmdb_ci"
  - mandatory: true
  - order: 100
  - help_text: "Select the CI experiencing the issue"
Use SN-Create-Record on sys_pd_data_input:
  - activity: "<data_gathering_activity_sys_id>"
  - name: "impact_description"
  - label: "Business Impact"
  - type: "string"
  - mandatory: true
  - order: 200
  - help_text: "Describe how this incident impacts business operations"
Use SN-Create-Record on sys_pd_data_input:
  - activity: "<data_gathering_activity_sys_id>"
  - name: "users_affected"
  - label: "Number of Users Affected"
  - type: "integer"
  - mandatory: false
  - order: 300

REST アプローチ:

POST /api/now/table/sys_pd_data_input
Body: {
  "activity": "<data_gathering_activity_sys_id>",
  "name": "affected_ci",
  "label": "Affected Configuration Item",
  "type": "reference",
  "reference_table": "cmdb_ci",
  "mandatory": true,
  "order": 100
}
ステップ 8:アクティビティ間の遷移を定義する

遷移では、条件に基づくルーティングなど、アクティビティ間のフローを制御します。

MCP アプローチ:

Use SN-Create-Record on sys_pd_transition:
  - playbook: "<playbook_sys_id>"
  - source_activity: "<activity_1_sys_id>"
  - target_activity: "<activity_2_sys_id>"
  - condition: ""
  - order: 100
  - label: "Proceed to investigation"

条件付き遷移(Decision から):

Use SN-Create-Record on sys_pd_transition:
  - playbook: "<playbook_sys_id>"
  - source_activity: "<decision_activity_sys_id>"
  - target_activity: "<high_priority_activity_sys_id>"
  - condition: "result == 'yes'"
  - order: 100
  - label: "High Priority Path"
Use SN-Create-Record on sys_pd_transition:
  - playbook: "<playbook_sys_id>"
  - source_activity: "<decision_activity_sys_id>"
  - target_activity: "<standard_activity_sys_id>"
  - condition: "result == 'no'"
  - order: 200
  - label: "Standard Priority Path"
ステップ 9:プレイブックのコンテキストを設定する

プレイブックのコンテキストによって、プレイブックと実行時データを関連付けます。

MCP アプローチ:

Use SN-Query-Table on sys_pd_context:
  - query: playbook=<playbook_sys_id>
  - fields: sys_id,state,started_by,record,stage
  - limit: 10

プレイブックのトリガー設定を確認します:

Use SN-Query-Table on sys_pd_playbook:
  - query: sys_id=<playbook_sys_id>
  - fields: trigger_type,trigger_condition,table,auto_start
ステップ 10:プレイブックを有効化してテストする

MCP アプローチ:

Use SN-Update-Record on sys_pd_playbook:
  - sys_id: "<playbook_sys_id>"
  - status: "published"
  - active: true

プレイブックを実行できる状態か確認します:

Use SN-Query-Table on sys_pd_playbook:
  - query: sys_id=<playbook_sys_id>
  - fields: sys_id,name,status,active,table

ツールの使用方法

ツール目的使用する場面
SN-Query-Table既存のプレイブックとアクティビティを検索するパターンの調査と検証
SN-Create-Recordプレイブック、ステージ、レーン、アクティビティを作成する新しいプレイブックコンポーネントの構築
SN-Update-Recordプレイブックの設定を変更し、プレイブックを有効化する編集と公開
SN-Get-Table-Schemaプレイブックテーブルのフィールドを確認する使用可能な設定の把握

ベストプラクティス

  1. プレイブックは必ずドラフト状態で作成してください -- テストしていないプレイブックを直接公開しないでください
  2. 業務プロセスの段階を表す、わかりやすいステージ名を使用してください。技術的な手順を表す名前は避けてください
  3. エージェントのアクティビティとシステムのアクティビティは、それぞれ専用のレーンに分けてください。明確さが向上します
  4. データ収集フィールドを必須にするのは、次の手順でその情報が本当に必要な場合に限ってください
  5. データ入力にヘルプテキストを追加し、エージェントが収集する情報を理解できるようにしてください
  6. 読みやすさを保つため、複雑な条件付き遷移ではなく Decision アクティビティを使用してください
  7. エージェントが混乱しないよう、ほとんどのプレイブックではステージ数を 3~5 に抑えてください
  8. 有効化する前に、トリガー条件に一致するサンプルレコードでテストしてください
  9. プロセスの停滞を防ぐため、承認アクティビティに適切な期限を設定してください
  10. 実行時の分析とボトルネックの特定には、sys_pd_context を介してプレイブックの実行状況を監視してください

トラブルシューティング

問題原因解決方法
プレイブックが開始しないトリガー条件が一致しない、またはプレイブックが無効sys_pd_playbook.active=true であり、trigger_condition がレコードと一致することを確認します
アクティビティが保留中のままになる必須データ入力の不足、または遷移の不備sys_pd_data_input の必須フィールドと sys_pd_transition のリンクを確認します
データ収集フォームが空アクティビティにデータ入力が関連付けられていないアクティビティを参照する sys_pd_data_input レコードを作成します
レーンが表示されないレーンにアクティビティが割り当てられていないレーンに少なくとも 1 つのアクティビティを追加します
ステージの進行がブロックされる前のステージのアクティビティが未完了現在のステージの必須アクティビティがすべて完了していることを確認します
プレイブックが複数回実行されるトリガーで重複が防止されていないアクティブなプレイブックコンテキストがあるレコードを除外する条件を追加します
承認がルーティングされない承認者の参照先を解決できない承認者フィールドが、承認ロールを持つアクティブユーザーに解決されることを確認します

例

例 1:エージェント向けインシデントトリアージのプレイブック

ネットワークインシデントに対応するエージェント向けの、対話型プレイブックを生成します:

  • トリガー: incident で category=network^priority<=2 を満たすレコードが作成されたとき
  • ステージ: トリアージ、調査、解決
  • レーン 1(エージェント): CI の詳細を収集し、業務への影響を記録し、トラブルシューティングの手順を記録する
  • レーン 2(システム): 関連する CI を自動検索し、通知を送信し、インシデントのフィールドを更新する
  • データ収集: 影響を受けた CI(cmdb_ci への参照)、影響の説明(文字列)、影響を受けたユーザー数(整数)
  • Decision: users_affected > 100 の場合、重大インシデントプロセスにエスカレーションする
例 2:顧客オンボーディングのプレイブック

CSM の顧客オンボーディング用の標準的なプレイブックを生成します。

  • トリガー: sn_csm_case の case_type=onboarding におけるレコード作成
  • ステージ: ウェルカム、設定、トレーニング、稼働開始
  • レーン 1(エージェント): 顧客要件を収集し、リソースを割り当てます
  • レーン 2(システム): アカウントをプロビジョニングし、連携を設定して、ウェルカムメールを送信します
  • レーン 3(顧客): 受付フォームに入力し、トレーニングセッションを予約します
  • 遷移: ステージを順番に進めながら、各レーンを並行して実行します
例 3:変更リクエストのリスク評価プレイブック

変更リクエストのリスクを評価するプレイブックを生成します。

  • トリガー: change_request の state=assess におけるレコード更新
  • ステージ: リスク評価、承認、スケジュール設定
  • レーン 1(エージェント): リスクに関する質問票に記入し、ロールバック計画を文書化します
  • レーン 2(承認): リスクが高い場合は CAB に回し、中程度の場合はマネージャーに回します
  • データ収集: リスクスコア(整数)、ロールバック計画(複数行テキスト)、ダウンタイムの見積もり(期間)
  • 判断: 算出したリスクスコアに基づいて、適切な承認経路に分岐します

関連スキル

  • genai/flow-generation - 非対話型自動化のための Flow Designer フロー
  • genai/spoke-generation - 外部接続のための Integration Hub スポーク
  • genai/skill-kit-custom - プレイブックを起動できるカスタム Now Assist スキル
  • catalog/approval-workflows - カタログ固有の承認設定
  • itsm/incident-lifecycle - インシデントテーブルの構造とフィールド

コメント