今回は、Google Workspace(特に Google フォーム)と kintone を連携させて、問い合わせ対応を自動化する方法をご紹介します。
「スプレッドシートやフォームは日常的に使っているが、そろそろ手作業での転記や管理をなくしたい」と考えている業務担当者の方に向け、弊社で実際に運用している 「Google フォームで受けた問い合わせを、kintone アプリに自動登録して社内共有する仕組み」 を例に、連携の勘所と応用の方向性を解説します。
弊社問い合わせフォームはこちら
なぜ「Google Workspace × kintone」なのか
Google Workspace と kintone は、それぞれ単体でも強力なツールですが、この二つを **「適材適所で組み合わせる」**ことに大きな価値があります。
Google Workspace の強み(入り口としての役割):
- Google フォームで、誰でも手軽に入力画面を作成できる
- ユーザー(お客様)にとって馴染みのある UI で入力ハードルが低い
- Google Apps Script (GAS) を使い、柔軟な連携処理が組める
kintone の強み(業務管理としての役割):
- ステータス管理、担当者アサイン、コメント機能など「管理業務」に必要な機能が標準で揃っている
- データの検索や集計、グラフ化が容易
- REST API が充実しており、外部からのデータ受け入れが得意
この二つを組み合わせることで、以下のような「いいとこ取り」の構成が実現します。
- 外部向けの入力は、手軽な Google フォーム にお任せする
- 社内での込み入った管理・対応は kintone で行う
- その間のデータ連携は自動化して 「転記作業ゼロ」 にする
弊社のお問い合わせフォームも、実はこのパターンで運用しています。
連携の全体像:Google フォームから kintone まで
今回の仕組みの全体像を整理します。
- お客様が Web サイト上の Google フォームから問い合わせを送信
- 「フォームが送信された」ことを検知し、Google Apps Script が起動
- Apps Script が kintone の REST API を叩き、アプリにレコードを作成
- 作成されたレコードを元に、社内メンバーが対応(担当割当、ステータス変更など)

Google フォームは「受付」、kintone は「業務システム」、Apps Script はその間をつなぐ「配管」の役割です。
どんな課題が解消できるのか
問い合わせ対応の現場でよくある、次のような「見えないコスト」を解消できます。
- 情報の散逸:- メール、電話、フォームなど窓口ごとに情報がバラバラ。
- 属人化:- 「あの件どうなった?」と担当者に聞かないと状況が分からない。
- 転記ミス:- Excel 台帳へのコピペ作業で、転記漏れやミスが発生する。
- 集計の手間:- 月末の報告資料を作るために、メールを数え直している。
連携によってデータが kintone に自動で流れるようになれば、転記作業はゼロになります。対応履歴もレコードごとのコメントに残るため、情報の透明性が上がり、対応スピードの向上にもつながります。
準備するもの
実装に必要なものは以下の通りです。
- Google Workspace アカウント
- Google フォーム(受付用)
- Google Apps Script(連携プログラム用)
- kintone 環境
- 問い合わせ管理アプリ
- API トークン(kintone アプリの設定画面から発行)
※ ここで「kintone アプリの設定画面」のキャプチャ候補
ここまで揃っていれば、開発自体は比較的シンプルに進められます。
連携の実装ステップ(概要)
コードの細部には踏み込みすぎず、大まかな実装の流れを解説します。
1. Google フォームの準備
まず、Google フォームを作成します。
2. kintone アプリの作成と API トークン発行
kintone アプリを作成します。この際、kintone アプリと Google フォームの項目を1対1になるように作成してください。
必須項目の設定や文字列の最大文字数なども合わせておいたほうがよいでしょう。
アプリ設定の「API トークン」画面でトークンを生成し、「レコード追加」 の権限にチェックを入れて保存します。このトークンが、外部から書き込むための鍵になります。

3. Apps Script の設定
作成した google フォームのページの上部にあるメニューを開き「Apps Script」 をすると、GAS のエディタが開きます。
このエディタで回答送信時に自動で kintone にデータ連携する処理を記載していきます。

必要なことは
- マニュフェストファイルの編集
- スクリプトの作成
- トリガー の3つです。
マニュフェストファイルの編集
ページ左側の設定アイコンを選択すると、「プロジェクトの設定」という画面が表示されます。
「全般設定」のなかの 「「appsscript.json」マニフェスト ファイルをエディタで表示する」 にチェックをつけてください。
チェックをつけると、「appsscript.json」 というマニュフェストファイルが表示・編集可能となります。

このファイルは **「このスクリプトはどんな環境・権限で動くか」**の設定となります。
初期状態では以下のような設定です。
{
"timeZone": "Asia/Tokyo",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
ここに 「oauthScopes」 というプロパティを追加し、 このスクリプトがどんな権限を要求するか を設定してあげます。
{
"timeZone": "Asia/Tokyo",
"dependencies": {},
"oauthScopes": [
"https://www.googleapis.com/auth/forms",
"https://www.googleapis.com/auth/forms.currentonly",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/drive"
],
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
| 権限 | 説明 |
|---|---|
https://www.googleapis.com/auth/forms |
Google フォーム全体を読み書きできる権限。フォームの作成・編集・質問追加・項目更新などが可能。 |
https://www.googleapis.com/auth/forms.currentonly |
現在操作中のフォームに限定した権限。権限を絞ってフォームを扱う用途に利用。 |
https://www.googleapis.com/auth/script.external_request |
UrlFetchApp.fetch() 等で外部の HTTP API にアクセスするための権限。外部 REST API や Webhook 呼び出しに利用可能。 |
https://www.googleapis.com/auth/drive |
Google ドライブのファイルを読み書きする権限。テンプレート読み込み、ファイル生成、フォルダ操作などが可能。 |
スクリプトの作成
続いて、スクリプト本体を作成します。
デフォルトで作成されている「コード.gs」に JavaScript で処理を定義していきます。
2つの function を定義します
sendToKintone() ・・・フォーム送信時に呼び出される function。後述の getFormResponse()を呼び出しフォームの内容を json に変換し、作成した kintone アプリの API に送信します。
function sendToKintone() {
Logger.log("Form submitted");
const subdomain =
"https://[契約者ごとのサブドメイン].cybozu.com/k/v1/records.json"; // リソースURL
// フォームの回答を取得
const formResponse = getFormResponse(); // 後述のfunction
const records = { app: 120, records: [formResponse] };
// POSTリクエストを作成
const options = {
method: "post",
contentType: "application/json",
// JavaScriptオブジェクトをJSON文字列に変換
payload: JSON.stringify(records),
headers: { "X-Cybozu-API-Token": "[kintone アプリのAPIトークン]" },
muteHttpExceptions: true,
};
// POSTリクエストを実行
const response = UrlFetchApp.fetch(subdomain, options);
Logger.log('Response is "%s"', response.getContentText());
}
getFormResponse()・・・フォームから回答を取得しオブジェクト化する function。
function getFormResponse() {
// アクティブなフォームを取得
const form = FormApp.getActiveForm();
// フォームの回答を取得
const formResponses = form.getResponses();
// 最新のフォームの回答を取得
const latestResponse = formResponses[formResponses.length - 1];
const records = {};
// フォーム内の質問回答事項を取得
const itemResponses = latestResponse.getItemResponses();
// ループして質問事項と各回答を取得
itemResponses.forEach((itemResponse) => {
switch (itemResponse.getItem().getTitle()) {
case "御社名": // フォームの項目タイトル
// 回答をrecordsにセット。
// records.XXXのXXXは、kintoneアプリのフィールドコードと一致させる
records.御社名 = { value: itemResponse.getResponse() };
break;
case "ご担当者様 部署名":
records.ご担当者様_部署名 = { value: itemResponse.getResponse() };
break;
case "ご担当者様 役職名":
records.ご担当者様_役職名 = { value: itemResponse.getResponse() };
break;
case "ご担当者様 氏名":
records.ご担当者様_氏名 = { value: itemResponse.getResponse() };
break;
//以下、フォームの項目ごとにcaseを追加
}
});
return records;
}
トリガーの設定
トリガーは、作成したスクリプトを起動するタイミングを定義する場所です。
画面左側のメニューから、「トリガー」を選択し、画面右下の「トリガーを追加」を押します。
トリガーの登録画面が表示されますので、
- 実行する関数を選択 ・・・sendToKintone
- イベントの種類を選択 ・・・フォーム送信時 としてください。

これで、フォームが送信されるたびにスクリプトが自動実行されるようになります。
4. テスト送信と確認
実際に Google フォームからテスト投稿を行い、kintone にレコードが追加されれば完成です。
↓↓↓

運用を意識した工夫ポイント
単に「連携できた」状態から、もう一歩踏み込んで「現場で使いやすい」状態にするための工夫です。
- 担当者の自動振り分け 問い合わせ種別(「採用」「製品サポート」など)に応じて、kintone 側で担当部署や担当者を自動セットすると、初動が早くなります。
- 通知の設計 kintone にデータが入っただけでは気づかないことがあります。kintone の通知機能を使ったり、Slack / Chatwork への通知も同時に仕込むことで、対応漏れを防ぎます。
- エラーハンドリング 万が一 kintone への連携に失敗した場合(API エラーなど)に備え、管理者にエラーメールが飛ぶようにしたり、ログを残す設計にしておくと安心です。
Google Workspace × kintone の応用例
この「入り口は Google、管理は kintone」というパターンは、問い合わせ対応以外にも応用が効きます。
- 社内申請:- 備品購入や経費精算の一次申請フォームとして
- セミナー申込:- 参加者リストを kintone の顧客管理アプリへ自動登録
- 活動報告:- 外出先からスマホで簡易報告し、日報アプリへ集約
使い慣れた Google の UI を活かしつつ、データ管理を kintone に集約できるため、現場の抵抗感が少なく DX を進められるのがメリットです。
まとめ:内製と外部パートナーの役割分担
本記事では、Google Workspace と kintone を連携させた業務自動化の例をご紹介しました。
- Google フォーム = 入力のハードルを下げる入り口
- kintone = 業務を回すためのシステム
- Apps Script = 両者をつなぐ自動化の要
この構成は非常に強力ですが、実際に業務で運用するとなると、エラー処理やセキュリティ設計、API の保守など、技術的な考慮事項も出てきます。
「まずは手元で試してみたい」という場合は内製でのトライがおすすめですが、「基幹業務に関わるため堅牢に作りたい」「他のシステムとも連携させたい」といった場合は、専門的な知見を持つ外部パートナーへの相談も視野に入れるとスムーズです。
弊社では、こうしたツール連携による業務効率化のご提案から、実装・定着までのご支援を行っております。「どこから自動化すれば効果が高いか」といった段階からでも、お気軽にご相談ください。
