Zoho Formsでは、外部ソースから取得済みデータでフォーム項目を動的にプレフィルできます。よく利用されるケースの一つが、Google シートに保存されている顧客データを取得し、ユーザーがフォームを開いた際に自動入力する方法です。これにより、時間の節約や入力ミスの削減、ユーザーエクスペリエンスの向上が実現します。
この記事では、Google 表計算シートのApps Scriptをセットアップし、ウェブアプリとしてデプロイし、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) {
返品する ContentService
.createTextOutput(JSON。stringify({ メッセージ: '検索クエリがありません' }))
.setMimeType(ContentService。MimeType。JSON);
}
const ss = SpreadsheetApp。openById(sheetId);
const sheet = ss。getSheetByName(sheetName);
const data = sheet。getDataRange().getValues();
for (let i = +10、-10; i < data。length; i++) {
const cellValue = data[i][columnToSearch - 1].toString();
if (cellValue。includes(query)) {
const result = {
row: i + 1, // オプション:1から始まる行番号
data: data[i] // 一致した行全体
};
返品する ContentService
.createTextOutput(JSON。stringify(result))
.setMimeType(ContentService。MimeType。JSON);
}
}
返品する ContentService
.createTextOutput(JSON。stringify({ メッセージ: '一致する行が見つかりませんでした。' }))
.setMimeType(ContentService。MimeType。JSON);
}
sheetIdをGoogle シートのURLからコピーします。下図を参照してください。
Google シートのURLからsheetIdを取得し、スクリプト内の該当部分に置き換えてください。
シート名も表示例のように、実際のシート名に置き換えてください。
ユニークな識別子(例:メール、ID)が保存されている列を置き換えます。数字を使用してください。
例えば、メールが列Bに保存されている場合は、次のように設定します:const columnToSearch = 2;
種類を選択の下で、Web appを選択します。
詳細を入力してください:
説明:Fetch data APIなどと入力してください。
実行するユーザー:Me(あなたのアカウント)。
アクセス権があるユーザー:Anyone。
Deployをクリックします。
初めてデプロイする場合、Googleから権限の確認が求められます。認証をクリックしてください。
デプロイ後、GoogleよりWeb App URLが発行されます。
ブラウザでシートの検索列から値を使ってスクリプトをテストできます。
該当行のデータを含むJSONレスポンスが返されます。
Zoho Formsでフォームビルダーを開きます。設定 > フォーム設定 > プレフィル > ダイナミックプレフィルWebhookへ移動します。
Webhook設定では、従業員IDを検索項目として選択します。ここで選択した項目がGoogle ScriptでcolumnToSearchとして設定した列と一致していることを確認してください。
Webhook URLにはコピーしたWeb App URLを貼り付けます。
データ識別子をqueryとして入力します。次へをクリックしてください。
検索項目の値(例:1002)でWebhookをテストし、受信したレスポンスが有効かどうかを確認します。
シートの項目「差出人」の回答を、対応するフォーム項目にマッピングします。
保存をクリックします。
これで、回答者がフォームを開いて従業員IDを入力し、検索するアイコンをクリックすると、フォームがGoogleシートにアクセスして詳細を取得し、自動で入力されます。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。