smart-documents について
smart-documentsは、ServiceNow Document Intelligenceで文書を管理するためのスキルです。テンプレートからの作成、バージョン管理、承認、ServiceNowデータを使った内容生成、配布を扱います。
主な機能
- 01文書レコードとライフサイクルの管理
- 02再利用可能な文書テンプレートの設定
- 03バージョン履歴と監査記録の追跡
- 04承認とサインオフの管理
- 05ServiceNowデータによるフィールド入力
- 06配布管理と確認状況の追跡
活用シーン
- 01標準的なポリシー、SOP、契約書の作成
- 02公開前の改訂と承認の管理
- 03ServiceNowレコードから動的な文書を生成
MCP 対応
SN-Query-Table、SN-Create-Record、SN-Update-RecordなどのMCPツールで、文書、テンプレート、バージョン、承認、配布のレコードを検索・管理します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill smart-documentsインストール後、Claude Code で/smart-documentsを入力して読み込まれたか確認します。
詳細
スマートドキュメント
概要
このスキルでは、ServiceNow Document Intelligence でスマートドキュメントを管理するための体系的なアプローチを提供します。次のことができます。
- ライフサイクル全体を追跡しながら、
sn_doc_managementでドキュメントレコードを作成、管理する - よく使うドキュメントタイプ向けの再利用可能な構成で、
sn_doc_templateのドキュメントテンプレートを設定する sn_doc_versionを使用してバージョン管理を実装し、ドキュメントの改訂を追跡して監査履歴を維持するsn_doc_approvalとsysapproval_approverを通じて承認ワークフローを設定し、ドキュメントのレビューと承認を行うsn_doc_merge_fieldで差し込みフィールドを定義し、ServiceNow データからコンテンツを自動生成するsn_doc_distributionを通じてドキュメントの配布を管理し、共有と配信を制御する
使用する場面: 標準化されたドキュメント(ポリシー、SOP、契約書、コンプライアンスレポート)を作成するとき、公開前にドキュメントのバージョン管理と承認が必要なとき、または ServiceNow レコードの動的データを使ってドキュメントを生成するとき。
必要なプラグイン: com.sn_doc_intelligence
前提条件
- ロール:
sn_doc_management_admin、sn_doc_management_user、document_management、またはadmin - アクセス権:
sn_doc_management、sn_doc_template、sn_doc_version、sn_doc_approval、sys_attachmentテーブルへの読み取り/書き込みアクセス権 - 知識: 組織のドキュメントガバナンスポリシー、承認階層、配布要件への理解
- プラグイン: Document Intelligence(
com.sn_doc_intelligence)を有効化する必要があります
手順
ステップ 1:ドキュメントテンプレートを作成または選択する
テンプレートでは、各ドキュメントタイプの構成、差し込みフィールド、デフォルトコンテンツを定義します。
既存のテンプレートを検索する:
MCP を使用する場合(Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: sn_doc_template
query: active=true^document_typeLIKEpolicy^ORdocument_typeLIKEcontract^ORdocument_typeLIKEreport
fields: sys_id,name,description,document_type,category,version,state,merge_field_count,approval_required
limit: 25
order_by: name
REST API を使用する場合:
GET /api/now/table/sn_doc_template?sysparm_query=active=true^ORDERBYname&sysparm_fields=sys_id,name,description,document_type,category,version,state,merge_field_count,approval_required&sysparm_limit=25&sysparm_display_value=true
新しいテンプレートを作成する:
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_template
fields:
name: "IT Security Policy Template"
description: "Standard template for IT security policies with approval workflow. Includes merge fields for department, effective date, and policy owner."
document_type: policy
category: information_security
approval_required: true
approval_group: [security_governance_group_sys_id]
version: "1.0"
state: draft
active: true
REST API を使用する場合:
POST /api/now/table/sn_doc_template
Content-Type: application/json
{
"name": "IT Security Policy Template",
"description": "Standard template for IT security policies with approval workflow",
"document_type": "policy",
"category": "information_security",
"approval_required": "true",
"approval_group": "[security_governance_group_sys_id]",
"version": "1.0",
"state": "draft",
"active": "true"
}
ステップ 2:差し込みフィールドを定義する
ServiceNow レコードからドキュメントに動的データを取り込む差し込みフィールドを設定します。
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_merge_field
fields:
template: [template_sys_id]
field_name: "department_name"
display_label: "Department Name"
source_table: cmn_department
source_field: name
placeholder: "{{department_name}}"
field_type: reference
required: true
order: 100
ドキュメントタイプ別の一般的な差し込みフィールド:
| ドキュメントタイプ | 差し込みフィールド | ソーステーブル | ソースフィールド | プレースホルダー |
|---|---|---|---|---|
| ポリシー | 部門 | cmn_department | name | {{department_name}} |
| ポリシー | 発効日 | (手動) | (日付) | {{effective_date}} |
| ポリシー | ポリシー所有者 | sys_user | name | {{policy_owner}} |
| ポリシー | レビュー日 | (計算値) | (日付) | {{next_review_date}} |
| 契約書 | ベンダー名 | core_company | name | {{vendor_name}} |
| 契約書 | 契約金額 | ast_contract | total_cost | {{contract_value}} |
| 契約書 | 開始日 | ast_contract | starts | {{start_date}} |
| 契約書 | 終了日 | ast_contract | ends | {{end_date}} |
| レポート | レポート期間 | (手動) | (文字列) | {{report_period}} |
| レポート | 作成者 | sys_user | name | {{author_name}} |
| レポート | 生成日 | (システム) | (日時) | {{generated_date}} |
REST API を使用する場合:
POST /api/now/table/sn_doc_merge_field
Content-Type: application/json
{
"template": "[template_sys_id]",
"field_name": "department_name",
"display_label": "Department Name",
"source_table": "cmn_department",
"source_field": "name",
"placeholder": "{{department_name}}",
"field_type": "reference",
"required": "true",
"order": "100"
}
ステップ 3:テンプレートからドキュメントを作成する
テンプレートから新しいドキュメントインスタンスを生成し、差し込みフィールドに実際のデータを入力します。
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_management
fields:
short_description: "IT Security Policy - Remote Access - Engineering Department"
template: [template_sys_id]
document_type: policy
category: information_security
department: [department_sys_id]
owner: [policy_owner_sys_id]
effective_date: "2026-04-01"
review_date: "2027-04-01"
state: draft
version: "1.0"
confidentiality: internal
REST API を使用する場合:
POST /api/now/table/sn_doc_management
Content-Type: application/json
{
"short_description": "IT Security Policy - Remote Access - Engineering Department",
"template": "[template_sys_id]",
"document_type": "policy",
"category": "information_security",
"department": "[department_sys_id]",
"owner": "[policy_owner_sys_id]",
"effective_date": "2026-04-01",
"review_date": "2027-04-01",
"state": "draft",
"version": "1.0",
"confidentiality": "internal"
}
ステップ 4:ドキュメントのバージョンを管理する
改訂を追跡し、バージョン履歴を維持します。
編集時に新しいバージョンを作成する:
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_version
fields:
document: [document_sys_id]
version_number: "1.1"
change_description: "Updated remote access VPN requirements per security audit findings. Added MFA requirement for all remote connections."
author: [editor_sys_id]
state: draft
previous_version: [previous_version_sys_id]
attachment: [updated_attachment_sys_id]
バージョン履歴を検索する:
Tool: SN-Query-Table
Parameters:
table_name: sn_doc_version
query: document=[document_sys_id]
fields: sys_id,version_number,change_description,author,state,sys_created_on,attachment,previous_version
limit: 20
order_by: -sys_created_on
REST API を使用する場合:
# Create new version
POST /api/now/table/sn_doc_version
Content-Type: application/json
{
"document": "[document_sys_id]",
"version_number": "1.1",
"change_description": "Updated remote access VPN requirements",
"author": "[editor_sys_id]",
"state": "draft",
"previous_version": "[previous_version_sys_id]"
}
# Get version history
GET /api/now/table/sn_doc_version?sysparm_query=document=[document_sys_id]^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,version_number,change_description,author,state,sys_created_on&sysparm_limit=20&sysparm_display_value=true
ステップ 5:承認を申請する
設定済みの承認ワークフローにドキュメントを回します。
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_approval
fields:
document: [document_sys_id]
document_version: [version_sys_id]
approval_type: sequential
state: requested
short_description: "Approval required: IT Security Policy v1.1 - Remote Access"
comments: "Updated policy requires approval from Security Governance and CISO before publication."
次に、個々の承認者レコードを作成します。
Tool: SN-Create-Record
Parameters:
table_name: sysapproval_approver
fields:
sysapproval: [approval_sys_id]
approver: [approver_sys_id]
state: requested
order: 100
comments: "Please review the updated remote access policy. Key changes: MFA requirement added for all VPN connections."
REST API を使用する場合:
POST /api/now/table/sn_doc_approval
Content-Type: application/json
{
"document": "[document_sys_id]",
"document_version": "[version_sys_id]",
"approval_type": "sequential",
"state": "requested",
"short_description": "Approval required: IT Security Policy v1.1"
}
承認状況を監視する:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: sysapproval=[approval_sys_id]
fields: sys_id,approver,state,comments,sys_updated_on,order
limit: 10
order_by: order
ステップ 6:ドキュメントを公開して状態を更新する
承認後、ドキュメントを公開し、その状態を更新します。
MCP を使用する場合:
Tool: SN-Update-Record
Parameters:
table_name: sn_doc_management
sys_id: [document_sys_id]
data:
state: published
version: "1.1"
published_date: "2026-03-19"
work_notes: "Document approved by Security Governance (2026-03-17) and CISO (2026-03-19). Published as version 1.1."
バージョンレコードを更新します。
Tool: SN-Update-Record
Parameters:
table_name: sn_doc_version
sys_id: [version_sys_id]
data:
state: published
REST API を使用する場合:
PATCH /api/now/table/sn_doc_management/[document_sys_id]
Content-Type: application/json
{
"state": "published",
"version": "1.1",
"published_date": "2026-03-19",
"work_notes": "Approved and published as version 1.1."
}
ステップ 7:ドキュメントの配布を設定する
適切な対象者にドキュメントが届くように、管理された配布を設定します。
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_distribution
fields:
document: [document_sys_id]
distribution_type: group
recipient_group: [engineering_group_sys_id]
delivery_method: email_notification
notify_on_update: true
acknowledgment_required: true
acknowledgment_deadline: "2026-04-15"
short_description: "Distribute IT Security Policy v1.1 to Engineering"
REST API を使用する場合:
POST /api/now/table/sn_doc_distribution
Content-Type: application/json
{
"document": "[document_sys_id]",
"distribution_type": "group",
"recipient_group": "[engineering_group_sys_id]",
"delivery_method": "email_notification",
"notify_on_update": "true",
"acknowledgment_required": "true",
"acknowledgment_deadline": "2026-04-15"
}
確認状況を追跡する:
Tool: SN-Query-Table
Parameters:
table_name: sn_doc_distribution
query: document=[document_sys_id]
fields: sys_id,recipient_group,recipient_user,delivery_method,acknowledged,acknowledged_date,acknowledgment_deadline
limit: 50
ステップ 8:ドキュメントのライフサイクルを監視する
レビュー日が近づいているドキュメントや、更新が必要なドキュメントを追跡します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: sn_doc_management
query: state=published^review_date<=javascript:gs.daysAgoEnd(-30)^review_date>=javascript:gs.beginningOfToday()
fields: sys_id,number,short_description,document_type,owner,review_date,version,department
limit: 25
order_by: review_date
REST API を使用する場合:
GET /api/now/table/sn_doc_management?sysparm_query=state=published^review_dateBETWEENjavascript:gs.beginningOfToday()@javascript:gs.daysAgoEnd(-30)^ORDERBYreview_date&sysparm_fields=sys_id,number,short_description,document_type,owner,review_date,version,department&sysparm_limit=25&sysparm_display_value=true
ライフサイクルレポートを生成する:
Tool: SN-Add-Work-Notes
Parameters:
table_name: sn_doc_management
sys_id: [document_sys_id]
work_notes: |
=== DOCUMENT LIFECYCLE STATUS ===
Document: [number] - [short_description]
Current Version: [version]
State: Published
Owner: [owner]
VERSION HISTORY:
- v1.0 (2026-01-15) - Initial publication
- v1.1 (2026-03-19) - Updated MFA requirements
APPROVAL HISTORY:
- v1.0: Approved by Security Governance (2026-01-12), CISO (2026-01-14)
- v1.1: Approved by Security Governance (2026-03-17), CISO (2026-03-19)
DISTRIBUTION:
- Engineering: 45/50 acknowledged (90%)
- IT Operations: 28/30 acknowledged (93%)
- Outstanding: 7 users past deadline
NEXT REVIEW: 2027-04-01 (378 days)
ACTION: Schedule review kickoff for 2027-02-01
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用する場面 |
|---|---|
SN-Natural-Language-Search | 説明やコンテンツのキーワードからドキュメントを検索する |
SN-Query-Table | ドキュメント、テンプレート、バージョン、承認、配布を照会する |
SN-Get-Record | 特定のドキュメントまたはテンプレートのレコードを取得する |
SN-Create-Record | ドキュメント、バージョン、承認、配布、マージフィールドを作成する |
SN-Update-Record | ドキュメントの状態を更新し、公開またはアーカイブする |
SN-Add-Work-Notes | ドキュメントのライフサイクルイベントやレビューのメモを記録する |
REST API リファレンス
| エンドポイント | メソッド | 目的 |
|---|---|---|
/api/now/table/sn_doc_management | GET/POST/PATCH | ドキュメントレコードを管理する |
/api/now/table/sn_doc_template | GET/POST | ドキュメントテンプレートを管理する |
/api/now/table/sn_doc_version | GET/POST/PATCH | ドキュメントのバージョンを追跡する |
/api/now/table/sn_doc_approval | GET/POST | ドキュメントの承認を管理する |
/api/now/table/sn_doc_distribution | GET/POST | 配布リストを管理する |
/api/now/table/sn_doc_merge_field | GET/POST | マージフィールドを設定する |
/api/now/table/sysapproval_approver | GET/POST | 個々の承認者を管理する |
/api/now/table/sys_attachment | GET | ドキュメントのファイル添付にアクセスする |
ベストプラクティス
- テンプレートのガバナンス: 承認済みテンプレートの中央ライブラリを維持し、テンプレートの作成をドキュメント管理者に制限します
- バージョン管理の徹底: 公開済みのバージョンを上書きしないでください。監査証跡を保持するため、必ず新しいバージョンレコードを作成します
- 変更内容を明確に記載: 「ドキュメントを更新」のような記述だけでなく、各バージョンに何を、なぜ変更したかを明確に記載します
- 配布前の承認: 承認ワークフローが完了していないドキュメントは配布しないでください
- 確認状況の追跡: コンプライアンス上重要なドキュメント(ポリシー、手順書)では確認を必須とし、完了率を追跡します
- レビュー周期: ドキュメントの種類に応じてレビュー日を設定します。ポリシーは年次、手順書は半年ごと、標準は四半期ごとに設定します
- 機密性の分類: アクセスを制御するため、すべてのドキュメントに機密性レベル(公開、社内、機密、制限付き)をタグ付けします
- マージフィールドの検証: テンプレートを公開する前に、すべてのマージフィールドをサンプルデータでテストし、正しく表示されることを確認します
トラブルシューティング
「テンプレートのマージフィールドに値が入力されない」
原因: ドキュメントの内容にあるマージフィールドのプレースホルダーが、sn_doc_merge_field に設定された placeholder の値と一致していません
解決策: プレースホルダーの構文が完全に一致していることを確認します(例:{{department_name}})。余分なスペースやエンコードの問題がないか確認します。template=[template_sys_id] を指定して sn_doc_merge_field を照会し、フィールドの設定を確認します。
「承認ワークフローが開始されない」
原因: テンプレートの approval_required フラグが設定されていないか、承認グループが設定されていません
解決策: テンプレートの approval_required=true と、有効な approval_group が設定されていることを確認します。承認グループに、approver_user ロールを持つ有効なメンバーがいることを確認します。
「ドキュメントのバージョンが競合している」
原因: 2 人のユーザーが同じドキュメントを同時に編集しているか、前のバージョンをロックせずにバージョンが作成されました
解決策: ドキュメントの sn_doc_version を照会し、競合するドラフトを特定します。編集時にドキュメントの state フィールドを checked_out に設定するチェックアウト/ロックの仕組みを導入します。
「配布通知が送信されない」
原因: メール通知の設定が存在しないか、受信者グループにメール通知が有効なメンバーがいません
解決方法: sysevent_email_action に、配布トリガーと一致するイベント名の通知テンプレートが存在することを確認します。受信者の sys_user レコードに有効なメールアドレスが登録されていることを確認します。
「ドキュメントの添付ファイルが見つからない」
原因: 添付ファイルがドキュメントレコードではなく、バージョンレコードに関連付けられている可能性があります
解決方法: sys_attachment を table_name=sn_doc_management^table_sys_id=[doc_sys_id] と table_name=sn_doc_version^table_sys_id=[version_sys_id] の両方でクエリし、関連するすべてのファイルを検索します。
例
例 1:セキュリティポリシーの作成と公開
入力: 「財務部門向けの新しいデータ分類ポリシーを作成する」
手順:
- テンプレートを選択:「IT Security Policy Template」
- マージフィールドを指定してドキュメントを作成:部門=財務、所有者=CISO、発効日=2026-04-01
- ドラフトの内容を添付ファイルとしてアップロード
- バージョン 1.0 を作成
- 承認を申請:セキュリティガバナンス、続いて CISO
- 承認後、財務部門に公開して配布
- 30 日以内の確認を必須にする
例 2:既存の手順書の更新
入力: 「ランサムウェア対応プレイブックを含めるため、インシデント対応手順書を更新する」
手順:
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_version
fields:
document: [ir_procedure_sys_id]
version_number: "3.2"
change_description: "Added ransomware response playbook (Section 7). Updated escalation matrix to include Cyber Insurance carrier notification. Revised recovery time objectives per 2026 BCP update."
author: [security_analyst_sys_id]
state: draft
previous_version: [v31_sys_id]
例 3:契約書の自動生成
入力: 「ベンダーのオンボーディング用に、テンプレートから NDA ドキュメントを生成する」
手順:
- テンプレートを選択:「Mutual NDA Template」
core_companyとsys_userからマージフィールドに値を入力します:{{vendor_name}}:「TechPartners Inc」{{vendor_address}}:「123 Innovation Blvd, Austin, TX」{{effective_date}}:「2026-03-19」{{term_length}}:「2 years」{{company_signatory}}:「Jane Smith, VP Legal」
- ドキュメントを生成し、バージョン 1.0 を作成
- 法務部門の承認に回す
- 承認後、安全なリンクを使ってベンダーに配布
Tool: SN-Create-Record
Parameters:
table_name: sn_doc_management
fields:
short_description: "Mutual NDA - TechPartners Inc - Vendor Onboarding"
template: [nda_template_sys_id]
document_type: contract
category: nda
state: draft
version: "1.0"
confidentiality: confidential
related_record_table: core_company
related_record: [vendor_sys_id]
関連スキル
document/document-extraction- アップロードされたドキュメントから構造化データを抽出しますlegal/contract-analysis- 生成された契約書を分析してリスクを特定しますlegal/contract-obligation-extraction- 契約書から義務を抽出しますcatalog/approval-workflows- ドキュメント処理の承認ワークフローを設定しますadmin/workflow-creation- カスタムのドキュメントライフサイクルワークフローを構築します