はじめに
個人サイトや小規模サイトを運営していると、
お問い合わせの管理で次のような問題が起こります。
メール管理だと見落としがある
過去の問い合わせを探しにくい
複数人で共有できない
この問題を解決する方法としてよく使われるのが
お問い合わせ内容をGoogleスプレッドシートに保存する方法です。こんなサービスも作成しました。↓↓↓
この記事では
フォーム → スプレッドシート連携の方法
Google Apps Script(GAS)での実装
実際に作ってわかった問題
を解説します。
お問い合わせフォームをスプレッドシートで管理するメリット
問い合わせ内容をスプレッドシートに保存すると、
次のメリットがあります。
履歴管理 問い合わせ履歴を一覧管理できる
検索 名前やメールで検索できる
共有 チームで共有できる
分析 問い合わせ数の分析ができる
構造としては次のようになります。
お問い合わせフォーム
↓
サーバー
↓
Googleスプレッドシート
この仕組みを作ることで、問い合わせ管理が非常に楽になります。
主な方法としては以下の3つ
Googleフォーム 最も簡単だが自由度が低い
WordPressプラグイン WordPressサイトのみ
API連携 自由度が高い
Google公式でもGoogle Apps Script を使ってWebアプリを作る方法が紹介されています。
GASを使うと、次の構成が作れます。
HTMLフォーム
↓
fetch POST
↓
GAS Webアプリ
↓
Googleスプレッドシート
メリットは次の通りです。
サーバー不要
Googleサービスと連携しやすい
無料で使える
そのため、最初は
「GASで十分では?」
と考えました。
実際に作ってみると問題が見えてきた
GASは便利ですが、公開フォームとして運用する場合いくつか問題がありました。
問題① WebアプリURLが公開される
GASのWebアプリは次のようなURLが公開されます。
このURLはフォームの送信先として使用するため誰でもアクセス可能なURLになります。
その結果
ボット送信
スパム投稿
のリスクがあります。
問題② スパム対策が弱い
公開フォームには必ずスパムが来ます。
一般的な対策は
reCAPTCHA
IP制限
ドメイン制限
などです。
しかしGASの場合は
サーバーレベルの制御ができない
高度なアクセス制御が難しい
という問題があります。
問題③ 利用制限(Quota)
Google Apps Scriptには利用制限があります。
主な制限
実行時間制限
API呼び出し回数制限
アカウント単位の制限
スパムが増えると制限に引っかかる可能性があります。
そのため最終的に次の構成にしました。
HTMLフォーム
↓
APIサーバー
↓
Googleスプレッドシート
API側で
APIキー認証
ドメイン制限
スパム対策
ログ管理
を行うことで、
セキュリティ向上
スパム対策
複数サイト対応
が可能になります。
小規模サイト向けにそんな問い合わせ連携サービスを作りました
この仕組みをもとにお問い合わせフォーム → スプレッドシート連携のサービスを作りました。
主な特徴
HTMLフォーム付き
Googleスプレッドシート自動保存
スパム対策
簡単設置
小規模サイトや個人事業主の問い合わせ管理を想定した仕組みです。