はじめに
寄せられた質問に複数人で答えていくと、自然にFAQが積み重なっていきます。
それをナレッジとして整理・公開できれば便利ですが、手動でまとめるのは手間がかかります。
そこで「みんなで作るFAQを自動化する仕組み」を考え、まずはGoogleサービスを使って試作しました。
Formsで質問を集め、SpreadSheetで管理し、Docsで回答を記入し、Sitesで公開する流れです。
その後、環境に合わせてMicrosoftサービスでも同様の仕組みを展開し、Qiitaにはそちらを先に公開しました。
この記事では、その前段階のGoogle版をご紹介します。
全体フロー
- Google Forms:質問を収集
- Google SpreadSheet:「回答中」シートに自動登録(Forms回答が入ると自動で行を追加)
- Google Apps Script:回答中シートに新しい行が追加された時点でDocsを生成
- Google Docs:質問ごとに新規作成し、回答欄・コメント欄をテンプレート化
- Google Sites:Docsをまとめて公開(現状は手動、将来的に自動化予定)
整理用シートの設計
「回答中」シートは以下のような列構成で管理します。
| 列 | 内容 |
|---|---|
| A | 通番 |
| B | 質問文 |
| C | 質問カテゴリ |
| D | 質問者名 |
| E | Docsリンク |
| F | 状態(回答中/回答済/公開済) |
Docs生成コード
function generateDocsForUnlinkedQuestions() {
const sheetName = "回答中";
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
const docLink = data[i][4]; // E列:Docsリンク
if (!docLink) {
const id = data[i][0]; // A列:通番
const question = data[i][1]; // B列:質問文
const asker = data[i][3]; // D列:質問者名
// Docsのタイトルに通番を付与
const docTitle = `${id}_質問`;
const doc = DocumentApp.create(docTitle);
const body = doc.getBody();
// 本文に通番を明示的に追加
body.appendParagraph(`番号:${id}`);
body.appendParagraph(`📝 質問内容:\n${question}`);
body.appendParagraph(`👤 質問者:\n${asker}`);
body.appendParagraph(`✍️ 回答:\nこの欄に自由に回答を記入してください。\n【回答者名】を冒頭に入れてください。`);
body.appendParagraph(`💬 コメント欄:\n補足や意見があればこちらに記入してください。`);
const url = doc.getUrl();
sheet.getRange(i + 1, 5).setValue(url); // E列にURL
sheet.getRange(i + 1, 6).setValue("回答中"); // F列に状態
}
}
}
生成されるDocsの表示イメージ
番号:001
📝 質問内容:
・・・
👤 質問者:
山田 太郎
✍️ 回答:
この欄に自由に回答を記入してください。
【回答者名】を冒頭に入れてください。
💬 コメント欄:
補足や意見があればこちらに記入してください。
運用の工夫
-
回答の進め方
「回答中」シートに複数のサポーターが自由に回答を書き込みます。
月1回の相談会で「どんな回答が出ているか」をみんなで確認し、その場で新しい回答や補足があれば追加します。
その時点で出揃った回答を入力後「回答済」シートへ移動します。
-
状態管理
状態列は「回答中/回答済み」としています。- 回答中:複数人が書き込み中、相談会で確認予定
- 回答済み:相談会で確認し、相談会で出てきた内容を追加したもの
-
公開までの自動化
Docsでみんなが回答を書き込める仕組みまではできているが、Sitesへの自動公開は未実装 → 今後の課題
まとめ
- Forms→SpreadSheet→Docs→Sitesの流れで「みんなで作るFAQ」をGoogleサービス内で自動化できる
- 「回答中」シートを基点に、質問ごとにDocsを新規作成し、リンクを記録することで共同編集がしやすくなる
- 状態列を設けることで進捗管理も可能
- 今後は「回答済」シートへの移動やSitesへの自動公開など、さらに発展させる予定
同じような課題を抱えている人の参考になれば幸いです。
参考リンク
- Google Apps Script 公式ガイド
- Google Forms と SpreadSheet の連携
- DocumentApp リファレンス
- SpreadsheetApp リファレンス
- Google Sites ヘルプセンター
- Google サイトの使い方(公式ガイド)
※この記事は現在勉強中の内容を整理したものであり、技術的に不正確な点が含まれている可能性があります。
ご指摘や改善案などがあれば、コメントで教えていただけると嬉しいです。