Zoho Forms では、外部ソースから取得したデータを使ってフォーム項目を動的に事前入力できます。よくある利用ケースとして、Google スプレッドシートに保存されている顧客データを取得し、ユーザーがフォームを開いたときに自動で入力しておく方法があります。これにより、時間を節約し、入力ミスを減らし、ユーザー体験を向上させることができます。
この記事では、Google スプレッドシートで Apps Script を設定し、Web アプリとしてデプロイし、Dynamic Prefill Webhook を使って Zoho Forms と連携するまでの手順を順を追って説明します。
データが保存されている Google スプレッドシートを開きます。
上部メニューから、次をクリックします:
拡張機能 → Apps Script。
これにより、Apps Script エディタが新しいタブで開きます。
次のスクリプトをコピーして貼り付けます。
function doGet(e) {
const sheetId = '{sheet_id}'; // <-- 実際のシート ID に置き換える
const sheetName = 'Sheet1'; // <-- 実際のシート名に置き換える
const columnToSearch = 1; // 例: 列 B = 2
const query = e。parameter。query; // 例: ?query=Doe
if (!query) {
返品する HtmlService。createHtmlOutput('Missing query');
}
const sheet = SpreadsheetApp。openById(sheetId).getSheetByName(sheetName);
const range = sheet。getRange(2, columnToSearch, sheet。getLastRow() - 1, 1);
const finder = range。createTextFinder(query)
.matchEntireCell(真) // 完全一致
.matchCase(無効); // 大文字小文字を区別しない
const 照合する = finder。findNext(); // 最初に一致した 1 件のみ
if (!照合する) {
返品する HtmlService。createHtmlOutput('いいえ matching row found');
}
const row = 照合する。getRow();
const data = sheet。getRange(row, 1, 1, sheet。getLastColumn()).getValues()[0];
返品する ContentService。createTextOutput(
JSON。stringify({
row: row,
data: data
})
).setMimeType(ContentService。MimeType。JSON);
}
表示されているように、Google スプレッドシートの URL からsheetId をコピーします。
スクリプト内のsheetId を、コピーした Google スプレッドシートの ID に置き換えます。
表示されているように、シート名を実際のシート名に置き換えます。
一意の識別子(例: メールアドレス、ID)が保存されている列番号に置き換えます。数値で指定します。
たとえば、メールアドレスが列 B に保存されており、それで検索したい場合は、const columnToSearch = 2; と設定します。
選択する 種類 で、Web app を選択します。
次の詳細を入力します。
説明: Fetch data API など、わかりやすい説明を入力します。
実行する as: Me(自分のアカウント)。
Who has access: Anyone(全員)。
Deploy をクリックします。
初回のデプロイ時には、Google から権限の許可を求められます。認証 をクリックします。
デプロイが完了すると、Google から Web App URL が発行されます。
ブラウザで、この URL にシートの検索列にある値を指定してアクセスすることで、スクリプトをテストできます。
指定した行のデータを含む JSON レスポンスが返されます。
Zoho Forms でフォームビルダーを開きます。[設定] > [フォーム設定] > [事前入力] > [Dynamic Prefill Webhook] に移動します。
Webhook 設定 で、検索項目として 従業員 ID を選択します。ここで選択する項目が、Google スクリプト内で columnToSearch として設定した列と一致していることを確認してください。
Webhook URL に、先ほどコピーした Web App URL を貼り付けます。
データ識別子 に query と入力します。[次] をクリックします。
検索項目の値(例: 1002)を使って Webhook をテストし、受信したレスポンスが有効かどうかを確認します。
シートからのレスポンスに含まれる項目を、対応するフォーム項目にマッピングします。
[保存] をクリックします。
これで、回答者がフォームを開き、従業員 ID を入力して検索アイコンをクリックすると、フォームから Google スプレッドシートにアクセスして詳細を取得し、フォーム項目が自動的に事前入力されるようになります。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。