CRMの顧客情報から契約書を作成する方法|Googleドキュメントへの差し込みとPDF化
契約書の作成で毎回同じ顧客名や住所、金額を入力しているなら、CRMの情報をGoogleドキュメントのテンプレートへ差し込む方法が使えます。重要なのは、文書を自動で作ることだけではありません。どの情報を正として採用し、どの版の条文に反映し、誰が送信前に確認するかを決めることです。
CRM情報から契約書を作る基本構成は、データ取得、テンプレート複製、項目の差し込み、確認、PDF出力です。Googleの公式ガイドはDrive APIのfiles.copyで文書を複製し、Docs APIのdocuments.batchUpdateとreplaceAllTextで置換する方法を示しています。生成された文書は未署名の下書きであり、承認と署名依頼は別工程として設計します。
API仕様の確認日は2026年9月11日です。以下は実装の設計例です。特定CRMとの接続があらかじめ提供されることを意味せず、CRMの取得API、項目名、認証方式は利用環境で確認してください。
本記事のポイント
- テンプレートを契約ごとに複製し、検証済みCRMデータをDocs APIで差し込む構成が基本になる。
- 生成成功と承認完了を分け、PDFの金額・日付・改ページを確認してから署名を依頼する。
- 案件IDと契約版、生成文書IDを残すことで再実行時の重複や送信済み文書の上書きを防げる。
テンプレートと差し込み項目を先に決める

| 差し込み項目 | データの取得元例 | 検証する条件 |
|---|---|---|
| 契約名義 | 顧客マスターの正式法人名 | 略称、旧社名、請求先名義との違い |
| 契約住所 | 契約用の住所項目 | 支店や請求先住所を混同しない |
| 金額 | 承認済みの案件金額 | 税区分、通貨、単位、端数 |
| 契約期間 | 契約開始日・終了日 | 前後関係、自動更新条件 |
| 署名者 | 確認済みの署名担当者 | 営業窓口と締結権限の違い |
まず、固定の条文と案件ごとの変動項目を分けたテンプレートを用意します。差し込み箇所には、通常の文章に現れにくい文字列を使います。例えば{{company_name}}、{{contract_start}}、{{amount_ex_tax}}のように項目を識別できる形にすると、置換漏れを検索しやすくなります。
顧客情報が揃っていても、契約用の正式情報であるとは限りません。営業用の社名略称や、最新の見込み金額をそのまま使うと誤った契約書になります。文書を作る前に、必須項目、許容する形式、確認者を決めます。金額未確定や署名担当者未確認の案件は、生成を止める条件にします。
テンプレートには文書種別、版、適用開始日、承認者を付けます。NDAと業務委託契約で同じテンプレートを無理に共用せず、必要な条項に応じて分けます。条文を変更したら新しい版として管理し、過去の契約で使った版を追跡できるようにします。
複数タブを持つGoogleドキュメントでは、どのタブへ差し込むかも確認します。Googleのガイドは、replaceAllTextのtabsCriteriaで対象タブを指定する方法と、省略して全タブを対象にする方法を示しています。別タブの説明書や社内メモまで顧客情報で置き換えないよう、対象範囲を決めます。
Driveで複製し、Docsで置換してPDFへ出力する
実装の流れは、最初にCRMから対象案件と顧客の情報を取得し、入力チェックを通した後、Drive APIでテンプレートをコピーする順序です。原本テンプレートを直接書き換えると次の案件へ前の顧客情報が残るため、契約ごとに新しい文書を作ります。コピー結果のファイルIDを契約レコードへ保存します。
次にDocs APIのdocuments.batchUpdateへ、必要な置換要求をまとめて送ります。例えば会社名を置き換える要求は、containsTextに{{company_name}}、replaceTextに正式な法人名を指定する形です。同じ更新要求に金額や期間の置換を含めると、項目ごとに何度も通信する処理を減らせます。
{
"requests": [
{
"replaceAllText": {
"containsText": {"text": "{{company_name}}", "matchCase": true},
"replaceText": "サンプル株式会社"
}
}
]
}
これは文書置換要求の最小例であり、CRM接続、OAuth認証、ファイル複製、権限設定、エラー処理を含む完成プログラムではありません。置換対象を限定する場合は対象タブ等の条件も加えます。実装時は公式リファレンスの現在の要求形式に合わせてください。
置換後に文書を取得し、未処理のプレースホルダーが残っていないかを検査します。必須項目が空文字に置き換わっている場合もあるため、単に記号が消えたことだけで合格にしません。差し込み件数と期待箇所を照合し、契約に必要な項目が文書内にあるかを確認します。
PDF化にはDrive APIのfiles.exportでapplication/pdfを指定する方法があります。今回確認した公式リファレンスでは、エクスポートされる内容の上限は10MBです。画像や長い添付を含む文書では上限を超えないかを確認します。出力したバイト列を保存する処理と、Google文書自体を保存する処理も分けます。
生成後の確認と署名依頼を別の状態にする
APIが成功した文書でも、読みやすい契約書になっているとは限りません。長い会社名が二行になったり、明細表が次ページへはみ出したり、署名欄だけが新しいページへ移ったりすることがあります。通常データ、最長データ、空欄、明細の最大件数でPDFを開き、見た目を確認します。
金額は数値形式だけでなく、税抜・税込、通貨、月額・総額の意味を確認します。契約期間も単純な日付置換だけで判断せず、開始日が終了日より後にならないか、更新条件と整合しているかを見ます。数値や日付が入力されていることと、契約条件として正しいことは別です。
CRMの契約レコードでは、生成完了、内容確認済み、社内承認済み、署名依頼済みを分けます。再生成で金額や条文が変わった場合は確認済み状態を戻し、必要な承認をやり直します。承認者が見た文書ID・版と、実際に送信するPDFが対応していることを記録します。
Google Workspace標準電子署名を使う場合は、対象ユーザーがDocsまたはPDFから依頼します。Docs APIで文書を生成できても、標準電子署名を同じAPIで依頼できるとは限りません。今回の公開リファレンス確認では署名専用操作を見つけていないため、送信を手動にする構成と、専用電子契約APIへ渡す構成を比較します。
専用電子契約サービスへ送る場合も、アップロードと署名依頼を別の処理にします。作成した文書を下書きとして登録し、承認結果と宛先を照合して送信する順序なら、生成処理の失敗が外部送信へ直結するのを防げます。自動処理が宛先や契約条件を推測して補完する構成は避けます。
再実行・権限・テンプレート変更に備える
文書生成は途中で止まることがあります。コピーに成功して置換が失敗した場合、再実行のたびに新しい文書を作ると不要なファイルが増えます。案件ID、契約版、生成処理ID、コピー先ファイルID、処理段階を保存し、どの工程から再開するかを判断できるようにします。
同じ顧客でも契約条件を変更した再生成は、同じ処理の再試行とは異なります。元データの版や確認日時を残し、既存下書きを更新するのか新しい版を作るのかを決めます。送信済みや署名済みの文書は、文書生成の再実行で置き換えないようにします。
認証では、テンプレートを読めること、コピー先へ作成できること、生成文書を担当者が開けることを別に確認します。共有ドライブを使うならAPI側の対応指定と実行アカウントの権限が必要です。認証情報を文書内やCRMの一般項目に記録せず、適切な認証情報管理の仕組みを使います。
テンプレートの編集権限は限定します。担当者が原本のプレースホルダーを削除すると、APIが正常応答しても必要な情報が差し込まれない可能性があります。新しい版を公開する前にテストデータで生成し、必須項目、レイアウト、PDF出力、承認の流れを確認します。
完成文書の所在は顧客フォルダ設計、契約用データの定義はCRMの要件整理、Google環境とCRMの分担はGoogle WorkspaceのCRM活用と合わせて整理できます。文書生成を独立した工程にすると、署名サービスを変更してもテンプレートと顧客データを活用しやすくなります。
文書生成後の署名と案件管理は、Google Workspace電子署名の徹底解説、電子契約とCRMの連携方法で詳しく確認できます。
CRMからの契約書生成FAQ
Google DocsだけでCRM情報を自動取得できますか?
CRM側のAPIや連携手段が必要です。認証して必要な項目を取得し、入力を検証したうえでDocsへ渡す処理を設計します。
原本テンプレートをそのまま更新してよいですか?
契約ごとに複製してから差し込みます。原本を更新すると次の案件へ前の情報が混ざる可能性があるため、テンプレートと生成文書を分けます。
PDFを作れば電子契約は完了ですか?
生成したPDFは未署名の文書です。内容確認、社内承認、署名依頼、全署名者の完了確認、完成PDFの保管を別に行います。
APIが成功した文書も目視確認が必要ですか?
必要です。長い会社名や明細の増加で改ページや署名欄が崩れることがあるため、PDFの内容とレイアウトを確認します。
一次情報:Google Docsの文書差し込み、files.copy、files.export。
顧客情報からの文書作成と契約管理をつなぎたい場合は、ファネルAiへGoogle WorkspaceとCRMの連携を相談することができます。