mcpField
S
smart-documents

smart-documents

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

smart-documents について

smart-documentsは、ServiceNow Document Intelligenceで文書を管理するためのスキルです。テンプレートからの作成、バージョン管理、承認、ServiceNowデータを使った内容生成、配布を扱います。

主な機能

  1. 01文書レコードとライフサイクルの管理
  2. 02再利用可能な文書テンプレートの設定
  3. 03バージョン履歴と監査記録の追跡
  4. 04承認とサインオフの管理
  5. 05ServiceNowデータによるフィールド入力
  6. 06配布管理と確認状況の追跡

活用シーン

  1. 01標準的なポリシー、SOP、契約書の作成
  2. 02公開前の改訂と承認の管理
  3. 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_departmentname{{department_name}}
ポリシー発効日(手動)(日付){{effective_date}}
ポリシーポリシー所有者sys_username{{policy_owner}}
ポリシーレビュー日(計算値)(日付){{next_review_date}}
契約書ベンダー名core_companyname{{vendor_name}}
契約書契約金額ast_contracttotal_cost{{contract_value}}
契約書開始日ast_contractstarts{{start_date}}
契約書終了日ast_contractends{{end_date}}
レポートレポート期間(手動)(文字列){{report_period}}
レポート作成者sys_username{{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_managementGET/POST/PATCHドキュメントレコードを管理する
/api/now/table/sn_doc_templateGET/POSTドキュメントテンプレートを管理する
/api/now/table/sn_doc_versionGET/POST/PATCHドキュメントのバージョンを追跡する
/api/now/table/sn_doc_approvalGET/POSTドキュメントの承認を管理する
/api/now/table/sn_doc_distributionGET/POST配布リストを管理する
/api/now/table/sn_doc_merge_fieldGET/POSTマージフィールドを設定する
/api/now/table/sysapproval_approverGET/POST個々の承認者を管理する
/api/now/table/sys_attachmentGETドキュメントのファイル添付にアクセスする

ベストプラクティス

  • テンプレートのガバナンス: 承認済みテンプレートの中央ライブラリを維持し、テンプレートの作成をドキュメント管理者に制限します
  • バージョン管理の徹底: 公開済みのバージョンを上書きしないでください。監査証跡を保持するため、必ず新しいバージョンレコードを作成します
  • 変更内容を明確に記載: 「ドキュメントを更新」のような記述だけでなく、各バージョンに何を、なぜ変更したかを明確に記載します
  • 配布前の承認: 承認ワークフローが完了していないドキュメントは配布しないでください
  • 確認状況の追跡: コンプライアンス上重要なドキュメント(ポリシー、手順書)では確認を必須とし、完了率を追跡します
  • レビュー周期: ドキュメントの種類に応じてレビュー日を設定します。ポリシーは年次、手順書は半年ごと、標準は四半期ごとに設定します
  • 機密性の分類: アクセスを制御するため、すべてのドキュメントに機密性レベル(公開、社内、機密、制限付き)をタグ付けします
  • マージフィールドの検証: テンプレートを公開する前に、すべてのマージフィールドをサンプルデータでテストし、正しく表示されることを確認します

トラブルシューティング

「テンプレートのマージフィールドに値が入力されない」

原因: ドキュメントの内容にあるマージフィールドのプレースホルダーが、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:セキュリティポリシーの作成と公開

入力: 「財務部門向けの新しいデータ分類ポリシーを作成する」

手順:

  1. テンプレートを選択:「IT Security Policy Template」
  2. マージフィールドを指定してドキュメントを作成:部門=財務、所有者=CISO、発効日=2026-04-01
  3. ドラフトの内容を添付ファイルとしてアップロード
  4. バージョン 1.0 を作成
  5. 承認を申請:セキュリティガバナンス、続いて CISO
  6. 承認後、財務部門に公開して配布
  7. 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 ドキュメントを生成する」

手順:

  1. テンプレートを選択:「Mutual NDA Template」
  2. 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」
  3. ドキュメントを生成し、バージョン 1.0 を作成
  4. 法務部門の承認に回す
  5. 承認後、安全なリンクを使ってベンダーに配布
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 - カスタムのドキュメントライフサイクルワークフローを構築します

コメント