contract-obligation-extraction について
ServiceNow Legal Service Deliveryで契約上の義務を抽出・追跡するための構造化スキルです。法務・契約チームが条項を担当者と期限付きのタスクに変換し、ポートフォリオ全体のコンプライアンスを監視できます。
主な機能
- 01契約文書と条項の解析
- 02支払い、納品、SLA義務の分類
- 03期限と定期スケジュールの抽出
- 04担当者と期限付きの法務タスク作成
- 05コンプライアンス監視と差異の報告
活用シーン
- 01契約締結後の義務追跡の設定
- 02監査時の義務コンプライアンス確認
- 03ベンダー受け入れ時の義務追跡
- 04更新交渉に向けた義務記録の準備
MCP 対応
ServiceNow MCPツールで契約と添付ファイルを取得し、条項やタスクを照会して、義務追跡タスクの作成、レコード更新、報告の記録を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill contract-obligation-extractionインストール後、Claude Code で/contract-obligation-extractionを入力して読み込まれたか確認します。
詳細
契約上の義務の抽出
概要
このスキルは、ServiceNow Legal Service Delivery で契約上の義務を抽出し、追跡するための体系的なアプローチを提供します。次のことができます。
ast_contractおよび関連するsys_attachmentレコードから契約書類を解析し、拘束力のある義務をすべて特定する- 義務を種類別に分類する:成果物、支払条件、SLA の確約、報告要件、契約解除条件、コンプライアンス上の義務
- 具体的な期限、マイルストーン、定期的な義務のスケジュールを抽出する
- 各義務について、期限と担当者を設定した追跡可能な法務タスクを
sn_legal_taskに作成する - ポートフォリオ全体のコンプライアンス監視に使用する義務一覧を作成する
- 義務のコンプライアンス状況を監視し、差異レポートを生成する
使用するタイミング: 契約締結後に義務の追跡を設定するとき、コンプライアンスを確認するために契約監査を行うとき、新しいベンダーとの関係を開始するとき、または契約更新の交渉準備をするときに使用します。
必要なプラグイン: com.sn_legal_service_delivery
前提条件
- ロール:
sn_legal_case_user、sn_legal_case_manager、contract_manager、またはsn_legal_admin - アクセス権:
ast_contract、sn_legal_task、sn_legal_case、sys_attachmentテーブルへの読み取り/書き込みアクセス権 - 知識: 契約書の構成、義務の種類、組織のコンプライアンス追跡要件に関する理解
- プラグイン: Legal Service Delivery(
com.sn_legal_service_delivery)が有効化されている必要があります
手順
ステップ 1:契約レコードと書類を取得する
契約のメタデータと関連する書類添付ファイルを取得します。
MCP を使用する場合(Claude Code/Desktop):
Tool: SN-Get-Record
Parameters:
table_name: ast_contract
sys_id: [contract_sys_id]
fields: sys_id,number,short_description,contract_type,vendor,starts,ends,renewal_date,payment_amount,payment_terms,total_cost,state,terms_and_conditions,auto_renew,notice_period,assigned_to,department
添付ファイルを取得します。
Tool: SN-Query-Table
Parameters:
table_name: sys_attachment
query: table_name=ast_contract^table_sys_id=[contract_sys_id]
fields: sys_id,file_name,content_type,size_bytes,sys_created_on
limit: 20
order_by: sys_created_on
REST API を使用する場合:
# Get contract record
GET /api/now/table/ast_contract/[contract_sys_id]?sysparm_fields=sys_id,number,short_description,contract_type,vendor,starts,ends,renewal_date,payment_amount,payment_terms,total_cost,state,terms_and_conditions,auto_renew,notice_period,assigned_to,department&sysparm_display_value=true
# Get attachments
GET /api/now/table/sys_attachment?sysparm_query=table_name=ast_contract^table_sys_id=[contract_sys_id]&sysparm_fields=sys_id,file_name,content_type,size_bytes,sys_created_on&sysparm_limit=20
# Download contract document
GET /api/now/attachment/[attachment_sys_id]/file
ステップ 2:既存の契約条件を取得する
Contract Lifecycle Management が有効な場合は、関連付けられた契約条件を照会します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: clm_m2m_contract_and_terms
query: contract=[contract_sys_id]
fields: sys_id,contract,terms_and_conditions,state
limit: 50
次に、契約条件の詳細を取得します。
Tool: SN-Query-Table
Parameters:
table_name: clm_terms_and_conditions
query: sys_idIN[terms_sys_ids]
fields: sys_id,name,description,category,obligation_type,obligation_owner,due_date,frequency,status
limit: 50
REST API を使用する場合:
GET /api/now/table/clm_m2m_contract_and_terms?sysparm_query=contract=[contract_sys_id]&sysparm_fields=sys_id,contract,terms_and_conditions,state&sysparm_limit=50
GET /api/now/table/clm_terms_and_conditions?sysparm_query=sys_idIN[terms_sys_ids]&sysparm_fields=sys_id,name,description,category,obligation_type,obligation_owner,due_date,frequency,status&sysparm_limit=50&sysparm_display_value=true
ステップ 3:カテゴリ別に義務を抽出する
契約書のテキストを解析し、各義務を分類します。
3a. 支払義務
| フィールド | 抽出する内容 | 例 |
|---|---|---|
| 金額 | 1 回あたりの支払額 | 25,000 ドル/月 |
| 頻度 | 支払スケジュール | 月次、四半期ごと、年次 |
| 支払期限 | 支払期限までの日数 | Net 30、Net 45、Net 60 |
| 延滞料 | 支払いが遅れた場合のペナルティ | 延滞額に対して月 1.5% |
| 値上げ | 年間の価格上昇率 | 年 3%の値上げ |
| 精算 | 使用量の精算 | 超過分を四半期ごとに精算 |
| マイルストーン払い | 成果物の達成を条件とする支払い | キックオフ時に 30%、UAT 時に 40%、本稼働時に 30% |
3b. 成果物に関する義務
| フィールド | 抽出する内容 | 例 |
|---|---|---|
| 成果物 | 提供が必要なもの | 月次セキュリティ監査レポート |
| 担当者 | 責任を負う当事者 | ベンダー/クライアント |
| 期限 | 提出期限 | 毎月 15 日 |
| 受け入れ基準 | 評価方法 | 別紙 B の仕様に準拠 |
| 是正期間 | 不備を修正する期間 | 10 営業日 |
3c. SLA の確約
| フィールド | 抽出する内容 | 例 |
|---|---|---|
| 指標 | SLA の測定項目 | システム稼働率 |
| 目標 | 必要な水準 | 月次 99.95% |
| 測定期間 | 対象期間 | 暦月 |
| クレジット | 未達時の救済措置 | 目標を 0.1%下回るごとに 5%のクレジット |
| 除外事項 | 対象外となるもの | 予定されたメンテナンス時間 |
| 継続的な不履行 | 未達の繰り返し | 3 回連続の未達で契約解除権が発生 |
3d. コンプライアンスと報告
| フィールド | 抽出する内容 | 例 |
|---|---|---|
| レポート | 必要な報告書 | SOC 2 Type II 監査レポート |
| 頻度 | 実施頻度 | 年次 |
| 期限 | 提出期限 | 監査期間終了後 90 日以内 |
| 認証 | 必要な認証 | ISO 27001、SOC 2、HITRUST |
| データの取り扱い | プライバシー要件 | GDPR DPA、EU 内のデータ保管 |
| 侵害の通知 | インシデントの報告 | 発見後 72 時間以内 |
3e. 契約終了条件
| 項目 | 抽出する内容 | 例 |
|---|---|---|
| 正当な理由による終了 | 発動条件 | 重大な契約違反が30日以内に是正されない場合 |
| 任意解除 | 必要な通知 | 90日前までの書面による通知 |
| 移行期間 | 移行期間 | 6か月間の移行支援 |
| データ返却 | 終了後の対応 | 30日以内にすべてのデータを返却 |
| 存続条項 | 存続する条項 | 第7条、第8条、第12条、第15条が存続 |
ステップ 4:義務管理台帳を作成する
抽出した各義務について法務タスクを作成し、統合された義務管理台帳を構築します。
MCP を使用する場合:
Tool: SN-Create-Record
Parameters:
table_name: sn_legal_task
fields:
short_description: "Payment obligation - Monthly license fee $25,000"
description: |
Contract: [contract_number]
Vendor: [vendor_name]
Obligation Type: Payment
Amount: $25,000
Frequency: Monthly
Due: 1st of each month
Net Terms: Net 30
Late Fee: 1.5% per month
Contract Reference: Section 4.1
legal_case: [case_sys_id]
priority: 3
task_type: obligation_tracking
assigned_to: [finance_contact_sys_id]
due_date: [next_payment_date]
state: 1
義務のカテゴリごとに繰り返します。SLA の追跡例:
Tool: SN-Create-Record
Parameters:
table_name: sn_legal_task
fields:
short_description: "SLA monitoring - 99.95% uptime commitment"
description: |
Contract: [contract_number]
Vendor: [vendor_name]
Obligation Type: SLA
Metric: System uptime
Target: 99.95% monthly
Credit: 5% per 0.1% below target
Chronic Failure: 3 consecutive misses triggers termination right
Contract Reference: Exhibit C, Section 2.1
legal_case: [case_sys_id]
priority: 2
task_type: obligation_tracking
assigned_to: [service_manager_sys_id]
due_date: [month_end_date]
state: 1
REST API を使用する場合:
POST /api/now/table/sn_legal_task
Content-Type: application/json
{
"short_description": "Payment obligation - Monthly license fee $25,000",
"description": "Contract: CON0045678\nObligation Type: Payment\nAmount: $25,000\nFrequency: Monthly\nDue: 1st of each month\nNet Terms: Net 30",
"legal_case": "[case_sys_id]",
"priority": "3",
"task_type": "obligation_tracking",
"assigned_to": "[finance_contact_sys_id]",
"due_date": "[next_payment_date]",
"state": "1"
}
ステップ 5:義務のコンプライアンス監視を設定する
既存の義務タスクを照会して、コンプライアンス状況を追跡します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: sn_legal_task
query: legal_case.legal_matter=[matter_sys_id]^task_type=obligation_tracking
fields: sys_id,number,short_description,state,due_date,assigned_to,priority,work_notes
limit: 100
order_by: due_date
REST API を使用する場合:
GET /api/now/table/sn_legal_task?sysparm_query=legal_case.legal_matter=[matter_sys_id]^task_type=obligation_tracking^ORDERBYdue_date&sysparm_fields=sys_id,number,short_description,state,due_date,assigned_to,priority,work_notes&sysparm_limit=100&sysparm_display_value=true
期限超過の義務を監視します:
Tool: SN-Query-Table
Parameters:
table_name: sn_legal_task
query: task_type=obligation_tracking^due_date<javascript:gs.beginningOfToday()^state!=3^state!=7
fields: sys_id,number,short_description,due_date,assigned_to,legal_case,priority
limit: 50
order_by: due_date
ステップ 6:義務コンプライアンスレポートを生成する
義務管理台帳全体とコンプライアンス状況を記録します。
MCP を使用する場合:
Tool: SN-Add-Work-Notes
Parameters:
table_name: sn_legal_case
sys_id: [case_sys_id]
work_notes: |
=== OBLIGATION EXTRACTION REPORT ===
Contract: [contract_number] - [short_description]
Vendor: [vendor_name]
Effective: [start_date] to [end_date]
Analyst: AI Obligation Analyst
Date: [current_date]
OBLIGATION SUMMARY:
Total Obligations Extracted: [total_count]
- Payment: [payment_count]
- Deliverables: [deliverable_count]
- SLA Commitments: [sla_count]
- Compliance/Reporting: [compliance_count]
- Termination Conditions: [termination_count]
PAYMENT OBLIGATIONS:
1. Monthly license fee: $25,000 due 1st of month (Net 30)
2. Annual support fee: $50,000 due January 15
3. Quarterly true-up: Variable, due 15th after quarter end
Total Annual Financial Commitment: $350,000 + overages
DELIVERABLE OBLIGATIONS:
1. Monthly security report: Due 15th of each month (Vendor)
2. Quarterly business review: Due within 30 days of quarter end (Mutual)
3. Annual SOC 2 report: Due within 90 days of audit period (Vendor)
SLA COMMITMENTS:
1. System uptime: 99.95% monthly (5% credit per 0.1% miss)
2. Support response: P1 within 1 hour, P2 within 4 hours
3. Data backup: Daily with 4-hour RPO
KEY DEADLINES:
| Date | Obligation | Owner | Task # |
|------|-----------|-------|--------|
| Monthly 1st | License payment | Client | LT0012345 |
| Monthly 15th | Security report | Vendor | LT0012346 |
| Quarterly | Business review | Mutual | LT0012347 |
| 2026-12-01 | Renewal notice deadline | Client | LT0012348 |
COMPLIANCE STATUS:
- On Track: [on_track_count] obligations
- At Risk: [at_risk_count] obligations
- Overdue: [overdue_count] obligations
RECOMMENDED ACTIONS:
1. Configure automated reminders for payment due dates
2. Assign SLA monitoring to service delivery team
3. Calendar renewal notice deadline 90 days before expiration
4. Schedule quarterly obligation compliance review
ステップ 7:契約の義務メタデータを更新する
義務の抽出結果を契約レコードに記録します。
MCP を使用する場合:
Tool: SN-Update-Record
Parameters:
table_name: ast_contract
sys_id: [contract_sys_id]
data:
work_notes: "Obligation extraction completed. [total_count] obligations identified and tracked. See legal case [case_number] for full register. Next review: [next_review_date]."
REST API を使用する場合:
PATCH /api/now/table/ast_contract/[contract_sys_id]
Content-Type: application/json
{
"work_notes": "Obligation extraction completed. 14 obligations identified and tracked across 5 categories."
}
ツールの使用方法
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/ast_contract | GET | 契約レコードを照会する |
/api/now/table/ast_contract/{sys_id} | GET/PATCH | 契約を読み取る、または更新する |
/api/now/table/sn_legal_task | GET/POST | 義務タスクを照会または作成する |
/api/now/table/sn_legal_case | GET | 関連する法務案件を照会する |
/api/now/table/sys_attachment | GET | 契約の添付ファイルを取得する |
/api/now/attachment/{sys_id}/file | GET | 契約書類をダウンロードする |
/api/now/table/clm_terms_and_conditions | GET | CLM 契約条件レコードを照会する |
ベストプラクティス
- 漏れなく抽出する: 明白なものだけでなく、すべての義務を抽出します。軽微な報告義務がコンプライアンス違反の原因になることもよくあります。
- 担当者を割り当てる: すべての義務に、部門だけでなく、責任者として氏名を指定します。
- リードタイム: 実際の契約上の期限より十分に余裕を持たせてタスクの期限を設定します(例:5営業日前)。
- 定期的な義務: 月次または四半期ごとの義務については、マスタータスクを作成し、ServiceNow のスケジュール済みジョブを使用して定期的な子タスクを生成します。
- 双方向の義務: 自組織を拘束する義務とベンダーを拘束する義務を分けて追跡します。
- バージョンを考慮する: 契約変更または変更注文が実行されるたびに、義務を再抽出します。
- 原典にリンクする: 追跡可能性を確保するため、義務の説明には必ず該当する契約の条項番号を記載します。
- 財務への影響: 予算編成と発生額計上を支援するため、各義務に財務への影響をタグ付けします。
トラブルシューティング
「ast_contract に義務関連のフィールドが見つからない」
原因: 標準の ast_contract には義務専用のフィールドがない場合があり、CLM 拡張テーブルに格納されている可能性があります。
解決方法: 構造化された義務データについては、clm_terms_and_conditions と clm_m2m_contract_and_terms を確認してください。関連するフィールドを見つけるには、sys_dictionary を nameLIKEclm^elementLIKEobligation で照会してください。
"重複する義務が検出されました"
原因: 同じ義務が複数の契約セクションや修正条項に記載されている場合があります。
解決策: 新しい義務タスクを作成する前に、既存のタスクを照会します。sn_legal_task を legal_case=[case_sys_id]^short_descriptionLIKE[obligation_keyword] で検索して、重複を確認してください。
"定期的な義務タスクが生成されない"
原因: 定期タスクを作成するスケジュールジョブが設定されていません。
解決策: sn_legal_task で、頻度フィールドに基づいて定期的な義務タスクを複製するスケジュールスクリプト実行を作成します。既存の義務関連ジョブがないか、sysauto_script を確認してください。
"契約書の添付ファイルを解析できません"
原因: 契約書が、OCR が行われていないスキャン済み PDF または画像形式です。
解決策: ServiceNow Document Intelligence(com.sn_doc_intelligence)を使用して OCR 抽出を行います。設定手順については、document/document-extraction スキルを参照してください。
例
例 1:SaaS 契約の義務抽出
入力: 契約 CON0045678 - "Enterprise CRM Platform - CloudCo"
抽出された義務:
- 支払い:年間ライセンス料 $150,000、1 月 1 日が期限、支払い条件は Net 45
- 支払い:ユーザー数が 500 人を超えた場合、1 ユーザーあたり月額 $2 の超過料金を請求し、四半期ごとに精算
- SLA:稼働率 99.9%、月次測定、0.5%未達ごとに 10%のクレジット
- 成果物:毎月 10 日までに月次利用状況レポートを提出
- コンプライアンス:監査後 90 日以内に、SOC 2 Type II レポートを年次提出
- データ:48 時間以内にデータ侵害を通知
- 契約解除:任意解除の場合は 90 日前に書面で通知し、違反を理由とする解除の場合は是正期間を 30 日設ける
- データ返却:契約解除後 30 日以内にすべてのデータをエクスポート
作成されたタスク: sn_legal_task に義務追跡タスクを 8 件作成
例 2:プロフェッショナルサービス契約
入力: 契約 CON0046789 - "IT Consulting Services - TechPartners Inc"
抽出された義務:
Tool: SN-Create-Record
Parameters:
table_name: sn_legal_task
fields:
short_description: "Milestone payment - Phase 1 completion $75,000"
description: |
Contract: CON0046789
Obligation Type: Milestone Payment
Amount: $75,000
Trigger: Phase 1 UAT sign-off
Net Terms: Net 30 from acceptance
Contract Reference: Exhibit A, Milestone 2
legal_case: [case_sys_id]
priority: 2
task_type: obligation_tracking
assigned_to: [project_manager_sys_id]
due_date: 2026-06-30
state: 1
例 3:義務コンプライアンス監査
入力: 「有効な契約全体で期限を過ぎている義務をすべて表示」
クエリ:
Tool: SN-Query-Table
Parameters:
table_name: sn_legal_task
query: task_type=obligation_tracking^active=true^due_date<javascript:gs.beginningOfToday()^stateNOT IN3,4,7
fields: sys_id,number,short_description,due_date,assigned_to,legal_case.short_description,priority,state
limit: 50
order_by: due_date
結果: 期限を過ぎた義務が 6 件見つかりました:
- ベンダーレポートの提出義務 2 件(SOC 2 レポートが 15 日遅延)
- 支払い義務 1 件(四半期精算の期限を 5 日超過)
- 社内成果物 3 件(ビジネスレビュー会議の日程調整)
対応: ベンダーの義務をエスカレーションし、社内タスクの担当者を更新し、コンプライアンス上の不備を記録します。
関連スキル
legal/contract-analysis- 契約を分析して重要な条項とリスクを評価しますlegal/legal-request-triage- 新たに受け付けた契約審査依頼をトリアージしますlegal/legal-matter-summarization- 契約に関連する法務案件を要約しますdocument/document-extraction- OCR を使用して契約書類から構造化データを抽出しますcatalog/approval-workflows- 義務の承認向けに承認ワークフローを設定します