Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Automating Client Proposal Generation with Google Forms, Sheets, and Apps Script (Step-by-Step Guide)

2025年10月04日に「Dev.to」が公開したITニュース「Automating Client Proposal Generation with Google Forms, Sheets, and Apps Script (Step-by-Step Guide)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Googleフォーム、スプレッドシート、Apps Scriptを活用し、顧客向け提案書作成を自動化する詳細手順を紹介。顧客がフォーム入力した情報からPDF提案書を自動生成し、顧客へメール送信、Googleドライブに保存する仕組みを構築できる。これにより、手作業の手間を削減し、効率化を図る。

ITニュース解説

このシステムは、手作業で行っていたクライアントへの提案書作成という煩雑な作業を、Googleが提供する無料ツール群を使って自動化する仕組みである。毎週のように多くの提案依頼が来るような状況では、一つ一つ手作業で提案書を作成し、メールで送り、保存するといった作業は非常に時間と手間がかかるものだ。この自動化システムを導入すれば、クライアントがフォームに情報を入力するだけで、個別の提案書が瞬時に作成され、自動的にPDF形式でクライアントのメールアドレスに送信され、さらに記録としてGoogleドライブに保存される。これにより、提案書作成にかかる時間を大幅に削減し、より重要な業務に集中できるようになる。システムエンジニアを目指す者にとって、このような身近な課題をITの力で解決する実践的なプロジェクトは、非常に良い学習機会となるだろう。

このシステムを構築するために必要なものは、Googleアカウントと、Googleドライブ、Googleフォーム、Googleスプレッドシートへのアクセス権限、そしてJavaScriptをベースにしたGoogle Apps Scriptの基本的な知識だ。さらに、提案書のレイアウトを決めるGoogleドキュメントのテンプレートを準備することも推奨される。これらはすべてGoogleが提供するツールであり、無料で利用できる点が大きな魅力だ。

最初のステップとして、Googleフォームを作成する。このフォームは、クライアントから提案書作成に必要な情報を効率的に収集するための入り口となる。具体的には、クライアント名、会社名、会社住所、クライアントのメールアドレスといった項目を追加する。これらの情報をフォームで受け付けることで、手作業での情報入力ミスを防ぎ、定型化されたデータを確実に取得できる。フォームが完成したら、「回答」タブからGoogleスプレッドシートのアイコンをクリックし、フォームの回答が自動的に保存されるスプレッドシートを連携させる。このスプレッドシートは、フォームから送信されたすべてのデータを時系列で管理するデータベースのような役割を果たすことになる。

次に、提案書のテンプレートをGoogleドキュメントで作成する。このテンプレートは、自動生成される提案書のひな形となるものだ。提案書の内容を記述し、クライアントごとに変わる部分、例えばクライアント名や会社名といった箇所には、{{ClientName}}{{CompanyName}}といった「プレースホルダー」を設定する。プレースホルダーとは、後でスクリプトによって実際のデータに置き換えられる目印のことだ。テンプレートが完成したら、ドキュメントを保存し、そのURLに含まれるドキュメントIDを控えておく。このIDは、Apps Scriptから特定のドキュメントを識別するために必要となる。

このシステムの心臓部となるのが、Google Apps Scriptの記述だ。連携したGoogleスプレッドシートから「拡張機能」メニューの「Apps Script」を選択すると、スクリプトエディタが開く。ここに、あらかじめ用意されたスタータースクリプトを貼り付ける。このスクリプトはJavaScriptをベースにしており、フォームが送信されたときに自動的に実行されるonFormSubmitという関数を中心に構成されている。

onFormSubmit(e)関数が実行されると、まずフォームから送信されたデータがe.namedValuesという形でスクリプトに渡される。これは、フォームの各項目名とそれに対応する入力値のペアを格納したオブジェクトだ。スクリプトは、このデータを使って提案書を作成していく。具体的には、事前に設定したGoogleドキュメントのテンプレートID、PDFを保存するGoogleドライブのフォルダID、そしてPDFのダウンロードリンクを記録するスプレッドシートの列番号といった定数を定義する。

スクリプトはまず、指定されたテンプレートファイル(Googleドキュメント)をGoogleドライブから探し出し、それを複製して新しいGoogleドキュメントを作成する。この複製されたドキュメントが、クライアント個別の提案書となる。複製されたドキュメントを開き、その本文に対して、フォームから取得したデータを使ってプレースホルダーを実際の情報に置き換える処理を行う。例えば、{{ClientName}}というプレースホルダーがあれば、フォームで入力された「クライアント名」の値に置き換えられる。この処理が終わると、個別の提案書が完成する。

完成したGoogleドキュメントは、その後PDF形式に変換される。PDFは、環境に依存せず同じレイアウトで表示できるため、公式文書として広く利用されている。変換されたPDFファイルは、指定されたGoogleドライブのフォルダに保存される。このとき、一時的に作成されたGoogleドキュメントのコピーは、必要に応じて自動的にゴミ箱に移動され、ドライブを整理する。

さらに、このPDFファイルには、誰でもリンクを知っていれば閲覧できる共有設定が付与され、その後直接ダウンロードできるURLが生成される。このダウンロードURLは、連携しているスプレッドシートの該当する行の指定された列に記録される。これにより、どの提案書が生成されたか、そのPDFはどこにあるかといった記録を一元的に管理できる。

そして、最も便利な機能の一つが、クライアントへの自動メール送信だ。フォームに「Client Email」フィールドがあり、メールアドレスが入力されていれば、スクリプトはそのアドレス宛に、件名と本文を含むカスタマイズされたメールを送信する。メールの本文には、会社名やクライアント名が組み込まれるだけでなく、先ほど生成されたPDF提案書のダウンロードリンクが埋め込まれる。これにより、クライアントはフォーム送信後すぐに、個別の提案書を受け取ることができるのだ。

スクリプトの記述と必要な設定が完了したら、次に「トリガー」を設定する。トリガーとは、特定のイベントが発生したときにスクリプトを自動的に実行させる仕組みのことだ。今回のシステムでは、Googleフォームが送信されたときにonFormSubmit関数が自動的に実行されるように設定する。これにより、手動でスクリプトを実行する必要がなくなり、完全に自動化されたフローが実現する。

最後に、システムが意図した通りに動作するかをテストする。自分でGoogleフォームにテストデータを入力して送信してみる。数秒待って、Googleドライブの指定されたフォルダにPDFが生成されているか、自分のメールアドレス(テスト用のクライアントメールアドレスとして入力したもの)にPDFが添付されたメールが届いているか、そしてスプレッドシートにPDFのダウンロードリンクが記録されているかを確認する。これらがすべて正常に動作すれば、あなた自身のスマートなドキュメント生成システムが完成したことになる。

このシステムは、さらに拡張することも可能だ。例えば、提案書テンプレートに会社のロゴや署名を追加したり、サービスごとの価格表や動的な提案文を組み込んだりすることもできる。また、外部のAPIと連携させることで、WhatsAppなどのメッセージングアプリで通知を送信したり、生成された提案書のデータを専用のデータベースに格納して分析に利用したりすることも考えられる。

この自動化システムは、クライアント情報の収集から、カスタム提案書の生成、自動送信、そして記録のアーカイブまでを一連のプロセスとして統合する。Googleフォーム、Googleスプレッドシート、そしてGoogle Apps Scriptという無料のツールを少しのスクリプトで連携させるだけで、これほど強力な自動化を実現できることは、Googleエコシステムの可能性を示す良い例だ。システムエンジニアを目指す上で、このような身近なツールを組み合わせて業務課題を解決する能力は、非常に重要となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース