目次
相談するアンケートフォームのレビューって正直面倒じゃないですか?
Slackでこんな通知、よく来ませんか?
「アンケートのレビューお願いします!本日中で!」
リンクを開くと、50問もの質問がズラリ。一問ずつGoogle Formの画面を見ながらポチポチ確認していく作業...正直、気が重くなりませんか?
そして結局、こんなフィードバックになってしまう。
- 「『その他』の選択肢も追加したほうがいいかも」
- 「この表現、もう少し分かりやすくできそう」
- 「質問の順番、入れ替えたほうが回答しやすいかも」
確かに大切な指摘です。でも、心のどこかで「もっと本質的なフィードバックがあるはず」と感じていませんか?
実際のレビューって、こんな感じになってませんか?
Slackでよく見る光景
- メンバーA:「問3の選択肢、もう1つ追加できますか?」
- メンバーB:「セクション2のタイトル、もう少し具体的に」
- メンバーC:「必須/任意の設定、確認お願いします」
5-10分の片手間レビューだと、どうしてもこうなりがちですよね...。
でも実は、本当に必要なフィードバックって、こういうことではないでしょうか。
本来やりたかったこと
- この質問、そもそも調査目的に合ってる?
- 集めたデータ、次のアクションにつながりそうですかね?
- 分析時に使えるインサイトが得られる設計になってる?
さらに上記を踏まえた具体の代案として「こんな質問の仕方と選択肢のセットを加えるのどうですかね?」までセットで付記できたらベストですよね。
これらをチェックするには、全体構造を把握して、調査目的を深く理解して、データ活用シーンまで想像する必要があります。変に深入りした指摘をしてるのに、ピンボケだった場合、めちゃくちゃ迷惑になる諸刃な役回り...。
正直、ガチでやると平気で1時間とか飛んでいく作業、片手間の10分ではやりたくてもできない、っていうジレンマがありますよね。
解決策 GAS×AIによる構造的レビューの実現
そこで試行錯誤の末、こんなフローを作ってみました。
- GASでGoogle FormをMarkdown変換(5分)
- 変換結果と目的をAIに投げる(3分)
- 戦略的フィードバックを獲得(5分で読める)
シンプルなので、非常に再現性も高いと思います。
Step 1: GASでMarkdown変換
以下のコードをGoogle FormのApps Scriptに貼り付けて実行するだけなので、技術的なハードルはほぼありません。
実行すると、フォームの全体構造がMarkdown形式で出力されます。GoogleFormのUI上でで一問ずつ見るのと違って、全体の流れが一目瞭然かつAIの可読性が高い状態になります。
/**
* Googleフォーム → Markdown エクスポート
*/
const FORM_ID = ""; // スタンドアロン運用時のみ設定
function onOpen() {
const ui = FormApp.getUi();
ui.createMenu("Export")
.addItem("Export as Markdown", "exportFormToMarkdown")
.addToUi();
}
function exportFormToMarkdown() {
const form = (FORM_ID ? FormApp.openById(FORM_ID) : FormApp.getActiveForm());
if (!form) throw new Error("フォームが取得できませんでした。");
const md = buildMarkdown(form);
const fileName = sanitize_(form.getTitle()) + ".md";
const file = DriveApp.createFile(fileName, md, MimeType.PLAIN_TEXT);
const html = HtmlService.createHtmlOutput(
`<p><a href="${file.getUrl()}" target="_blank">Markdown生成完了</a></p>
<textarea style="width:100%;height:70vh;">${escapeHtml_(md)}</textarea>`
).setWidth(800).setHeight(600);
FormApp.getUi().showModalDialog(html, "Form → Markdown");
}
// ---- 変換処理 ----
function buildMarkdown(form) {
const lines = [];
lines.push(`# ${form.getTitle()}`);
const desc = form.getDescription();
if (desc) lines.push("", desc.trim());
const items = form.getItems();
let sectionCount = 0;
for (const it of items) {
const type = it.getType();
// セクション処理
if (type === FormApp.ItemType.SECTION_HEADER) {
sectionCount++;
lines.push("", `## セクション${sectionCount}: ${it.getTitle()}`);
continue;
}
// 質問処理
const title = it.getTitle() || "(無題)";
const required = isRequiredSafe_(it) ? "(必須)" : "(任意)";
lines.push("", `### ${title} ${required}`);
switch (type) {
case FormApp.ItemType.MULTIPLE_CHOICE:
lines.push("_タイプ: 単一選択_");
it.asMultipleChoiceItem().getChoices().forEach(c =>
lines.push(`- [ ] ${c.getValue()}`)
);
break;
case FormApp.ItemType.CHECKBOX:
lines.push("_タイプ: 複数選択_");
it.asCheckboxItem().getChoices().forEach(c =>
lines.push(`- [ ] ${c.getValue()}`)
);
break;
case FormApp.ItemType.TEXT:
lines.push("_タイプ: 短文入力_");
break;
// ... 他のタイプも同様に処理
}
}
return lines.join("\n");
}
function isRequiredSafe_(item) {
try {
return typeof item.isRequired === "function" ? item.isRequired() : false;
} catch (e) {
return false;
}
}
function sanitize_(name) {
return (name || "form").replace(/[\\/:*?"<>|#%&{}$!@+`=]/g, "_").trim();
}
function escapeHtml_(s) {
return String(s)
.replace(/&/g, "&").replace(/</g, "<")
.replace(/>/g, ">").replace(/"/g, """);
}
Step 2: AIへの効果的な依頼
生成されたMarkdownを、以下のようなプロンプトと共にAIに投げます。
ポイントは「何のためのアンケートか」を明確に伝えることです。これがないと、AIも表面的な指摘しかできません。
以下のアンケートをUXリサーチャーの視点でレビューしてください。
対象:約10万人の既存顧客
目的:
1. 属性ごとの加入動機、価値認識の把握
3. 継続/解約理由の深掘り
活用先:
- LPのCVR改善
- マーケティング施策のPDCA
この観点で、ネクストアクションにつながる設問設計になっているか
評価し、改善提案をお願いします。
[ここにMarkdownを貼り付け]
実例:ある大規模顧客調査での成果
ある商材の既存顧客向けに、商品購入タイミングで刺さったポイントを明らかにして、LPやバナーでの訴求コンテンツの強弱を決めたり、新コンテンツの開発の判断に使いたい、という場面がありました。
Before:人間チームのフィードバック
メンバーA:「年齢の選択肢、もう少し細かくしたいです」
メンバーB:「セクション3長いので分割しては?」
メンバーC:「この質問の必須/任意が逆かも?」
After:AI×構造化でのフィードバック
1. 目的に直結する新規設問の提案
これでLPでどの訴求を前面に出すか明確になります
【追加提案】
Q. このサービスを選ぶ際、最も重視する点は?
○ 即効性重視型:すぐに使える・効果が出る
○ 比較検討型:他社と詳しく比較してから決める
○ コスト重視型:価格が最優先
○ ブランド重視型:企業の信頼性で選ぶ
○ 推奨重視型:知人の評価を参考にする
2. データ活用を見据えた設問改善
現状の「利用開始理由を教えてください(複数選択・選択肢10個以上)」では、分析が困難だという指摘。代わりに価値カテゴリーで整理する提案が来ました。
アンケート改修後の実際の行動(施策の企画)まで睨んで、価値の粒度と訴求ポイントを明確にしてくれたことで、あとの動きが非常に軽やかになるなと思いました。
【改善提案】
現在:「利用開始理由を教えてください(複数選択)」
→ 選択肢が12個で分析困難
改善案:価値カテゴリーで整理
【機能的価値】使いやすさ、機能の充実度
【情緒的価値】安心感、ブランドへの共感
【経済的価値】コスパ、料金体系の明確さ
【社会的価値】社会貢献、コミュニティ参加
→ 価値マップが作成でき、訴求ポイントが明確に3. カスタマージャーニー分析のための行動把握
これも、まさに欲しかった観点でした。アップグレードの最適タイミングが分かれば、施策の打ち方が変わります。
【新設提案】
Q. 有料プランへアップグレードを決めた瞬間は?
○ 無料版の利用直後
○ 利用制限に到達した時
○ キャンペーン案内を見た時
○ 必要な機能を発見した時
○ 同僚・友人の推薦時
→ アップグレードの最適タイミングが特定可能「単なる効率化」を超えられる説
最初は、Google Formをコピペしやすく(=AIへの取り回しをよく)できるの便利じゃね?というノリで、時短ツールくらいの感覚だったのですが、フィードバックの質的なレビューにじっくり向き合えるので、設問の質を上げることにもつながるなと思いました。
例えば、元々は、
- 片手間10分では、どうしても表面的な文言修正になる
- 全体構造の把握は、GUI操作だと本当に難しい
- 目的との整合性チェックは、時間的に無理がある
でも、AI×構造化なら...
- 15分で全体構造を踏まえた戦略的提案が得られる
- 目的から逆算した設問設計ができる
- データ活用シーンを見据えた改善案が出てくる
実際の成果
- レビュー時間:2-3時間 → 15分(90%削減)
- 改善提案数:平均5個 → 25個(5倍)
- 実装可能率:30% → 85%(具体的で実践的だから)
- 最も重要:マーケ施策に直結する設問の追加や、不要な設問自体の削除ができた
数字も大事ですが、何より「今まで見逃していた観点に気づけた」ことが大きかったです。
今すぐ始められる3ステップ
難しそうに見えるかもしれませんが、実はとてもシンプルです。
1. GASコードをコピー
上記のコードをそのままコピーしてください。カスタマイズは不要です。
2. Google Formで実行
- 拡張機能 → Apps Script を開く
- コードを貼り付けて実行
- Markdownファイルが自動生成される
3. AIに投げる
- 生成されたMarkdownをコピー
- 調査目的と活用先を明記してAIに依頼
- 15分で戦略的フィードバックを獲得成功のための3つのポイント
成功させるための3つのコツ(失敗から学んだこと)
実は最初、うまくいかないこともありました。その経験から学んだコツをシェアします。
1. 目的は具体的に言語化する
- ❌「アンケートをレビューして」
- ⭕「CVR改善のためのインサイト取得が目的。この観点でレビュー」
曖昧だと、AIも曖昧な答えしか返せません。
2. 活用シーンをリアルに描く
- ❌「データを分析に使う」
- ⭕「LPのメインコピー決定に使う」
具体的な活用シーンを伝えると、提案の質が格段に上がります。
3. 制約条件も正直に伝える
- ❌「いい感じにして」
- ⭕「回答率を下げずに、インサイト回収やその後の施策に繋げやすい形でデータを取りたい」
制約があるなら、それも含めて相談したほうが現実的な提案が返ってきます。
レビュー文化そのものをアップデートしませんか?
これは単なるツールの話ではないと思っています。
チームのレビュー文化を...
- 細かい文言調整 → 戦略的な設問設計へ
- 表面的な改善 → 本質的な価値創造へ
アップデートする話だと考えています。
技術的なハードルは本当に低いです。GASのコードをコピペして、AIに投げるだけなので!
次のGoogle Formレビュー依頼が来たら、ぜひ試してみていただけると嬉しいです。効率化だけでなくて、レビューの質自体が少しでも上がったら良いかなと思います。