playbook-generation について
自然言語の説明から ServiceNow Process Automation Designer(PAD)のプレイブックを生成するスキルです。ガイド付きプロセス自動化を構築するチーム向けに、ステージ、レーン、アクティビティ、データ入力、条件付き遷移を設定します。
主な機能
- 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-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 | メールまたはプッシュ通知を送信する |
| サブフロー | subflow | Flow 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 | プレイブックテーブルのフィールドを確認する | 使用可能な設定の把握 |
ベストプラクティス
- プレイブックは必ずドラフト状態で作成してください -- テストしていないプレイブックを直接公開しないでください
- 業務プロセスの段階を表す、わかりやすいステージ名を使用してください。技術的な手順を表す名前は避けてください
- エージェントのアクティビティとシステムのアクティビティは、それぞれ専用のレーンに分けてください。明確さが向上します
- データ収集フィールドを必須にするのは、次の手順でその情報が本当に必要な場合に限ってください
- データ入力にヘルプテキストを追加し、エージェントが収集する情報を理解できるようにしてください
- 読みやすさを保つため、複雑な条件付き遷移ではなく Decision アクティビティを使用してください
- エージェントが混乱しないよう、ほとんどのプレイブックではステージ数を 3~5 に抑えてください
- 有効化する前に、トリガー条件に一致するサンプルレコードでテストしてください
- プロセスの停滞を防ぐため、承認アクティビティに適切な期限を設定してください
- 実行時の分析とボトルネックの特定には、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- インシデントテーブルの構造とフィールド