Googleフォームの回答をSlackに自動振り分けする方法|無料Makeで30分で構築

Googleフォームの回答をSlackに自動振り分けする方法|無料Makeで30分で構築

1. この記事でできること

この記事では、Googleフォームに届いた回答を内容に応じてSlackの担当者や担当チャンネルへ自動で振り分ける仕組みを作ります。無料ツールを中心に使い、アカウントの準備から設定、動作確認まで順番に進めます。難しい仕組みを覚える必要はありません。所要時間は30分ほどが目安です。途中で設定を間違えても修正できるので、まずは手順どおりに進めてみてください。

2. 今回作る自動化の仕組みの全体像

全体の流れはシンプルです。

ユーザーがGoogleフォームに回答 → 回答が自動でGoogleスプレッドシートに記録 → 自動化ツールMake(旧Integromat)が新しい行を検知 → 回答の「種別(例:営業、サポート、採用)」を見て振り分け → 指定したSlackユーザー(DM)またはチャンネルへメッセージ送信。

この構成にするのは、Googleフォームの回答をスプレッドシートに保存できることと、Makeでシートのデータを条件に応じて振り分けられるためです。Makeでは条件分岐にフィルターを使えます。まずは無料プランの範囲で試せる構成にしています。

3. 事前に必要なアカウント・準備物

  • Googleアカウント(無料)…Googleフォームとスプレッドシートに使います。通常はクレジットカードの登録も必要ありません。
  • Slackワークスペース(無料可)…通知を受ける場所です。ワークスペースを作成するか既存のワークスペースに参加します。外部アプリの追加に承認が必要な場合は管理者への確認が必要です。
  • Makeアカウント(無料プランでOK)…各サービスをつなぐ自動化ツールです。無料プランから始められます。無料プランでは実行回数や実行間隔などに制限があります。

準備しておくと迷わないもの:

  • Googleフォームの設問案(例:「お名前」「メール」「お問い合わせ種別(営業/サポート/採用)」「内容」)
  • Slackの振り分け先(担当者のユーザー、または #営業・#サポート・#採用 のチャンネル)。最初はチャンネル振り分けから始めると設定しやすいです。

所要時間は30分ほどが目安です。まずは無料プランの範囲で動きを確認できます。

4. 必要なツール、アカウントの設定

4-1. Googleフォームとスプレッドシートを作る

まずは回答を受け取るフォームを用意します。Googleフォームを開き「無題のフォーム」から以下の設問を作りましょう。

  • お名前(記述式)
  • メールアドレス(記述式)
  • お問い合わせ種別(ラジオボタン:営業/サポート/採用)…ここが振り分け条件になります。
  • お問い合わせ内容(段落)

作成できたら、フォーム編集画面の上部にある「回答」タブから「スプレッドシートにリンク」を選び、新しいスプレッドシートを作成します。

Googleフォームの回答がこのシートに1行ずつ追加されるため、Makeで新しい回答を受け取れるようになります。フォームを作った後でもスプレッドシートとのリンクは設定できます。

4-2. Slack側の準備

Slackにログインし、テスト用に #営業、#サポート、#採用 の3チャンネルを用意すると進めやすくなります。

担当者に直接DMしたい場合は、その担当者が同じワークスペースに参加していることも確認しておきましょう。先に送信先を決めておくと、Makeの設定で迷いにくくなります。ワークスペースで外部アプリの追加に承認が必要な場合は、管理者に「MakeからSlackへ通知を送りたい」と伝えておきます。

4-3. Makeのアカウント作成

Makeにアクセスして無料アカウントを作成します。クレジットカードの登録は必要ありません。ダッシュボードに入れたら準備完了です。無料プランでは実行間隔に制限があるため、フォームへの回答がSlackに届くまで時間が空くことがあります。ほぼリアルタイムで動かしたい場合は有料プランも検討しましょう。今回の仕組みを作って試すだけなら、まずは無料プランで十分です。

5. 自動化ツールの設定

5-1. シナリオ(Scenario)を新規作成

Makeで「Create scenario」を選び、空のキャンバスを開きます。

最初に何をトリガーにするかを決めます。今回はGoogleスプレッドシートに新しい行が追加されたことをトリガーにします。Googleフォームの回答が送信されるとスプレッドシートに新しい行が追加されるためです。

5-2. トリガー:Google Sheets「Watch new rows」

プラスアイコンからGoogle Sheetsモジュールを追加し「Watch new rows(新しい行を監視)」を選択します。

初回はGoogleアカウントとの連携を求められるので許可します。次に、フォームとリンクしたスプレッドシートとワークシートを選びます。1行目に項目名が入っていることを確認し、監視開始位置はヘッダーの次の行からにしておくと設定しやすくなります。

「Watch new rows」を使うと、スプレッドシートに追加された回答を順番に処理できます。別のシートを選んでしまった場合もMakeの設定から変更できます。

5-3. ルーター(条件分岐)を配置

次にルーター(Router)を追加します。ルーターは条件ごとに処理を分けるための部品です。今回は営業、サポート、採用の3つに分けます。どの条件にも当てはまらない回答を受け取る「その他」の枝も作っておくと確認しやすくなります。一旦テストで作る時はその他はなくていいと思います。


5-4. 各枝でSlackに投稿する

各枝にSlackモジュールを追加し「Send a message(メッセージを投稿)」を選びます。初回はSlackとの連携を求められるので許可してください。MakeからSlackへメッセージを送るために必要な設定です。

送信先「Conversation」は、最初は対象チャンネル(#営業、#サポート、#採用)を選ぶと設定しやすくなります。担当者へ直接送りたい場合は「Conversation」でユーザーを指定してDMとして送信することもできます。ただし、ワークスペースの設定によってはアプリからのDMに制限がある場合があります。まずはチャンネルへの投稿で動作を確認するとスムーズです。

メッセージ本文には、シートから取り込んだデータを差し込みます。例えば:

  • 件名:新規お問い合わせ({{お問い合わせ種別}})
  • 本文:{{お名前}} 様({{メールアドレス}})よりお問い合わせがありました。本文:{{お問い合わせ内容}}
  • 元データ:スプレッドシートのURL(固定で入れてよい)

5-5. 各枝にフィルターを設定

ルーターからSlackモジュールへつながる部分をクリックし、Filterを設定します。条件は「お問い合わせ種別」列が「営業」なら営業枝へ。「サポート」ならサポート枝へ…という形です。フォームの選択肢と同じ文字列を条件に使うと設定ミスを防げます。

「その他」の枝にはフィルターを付けず、最後の受け皿として #inbox のような共通チャンネルに流す方法もあります。想定外の回答が来たときも確認しやすくなります。

5-6. テスト実行と有効化

右下の「Run once」を押して手動で1回実行し、別タブでGoogleフォームからテスト回答を送ります。シートに行が追加され、Makeがそのデータを取得して対応するSlackへメッセージを送れれば成功です。問題がなければシナリオのスケジュールを有効にして保存します。無料プランでは実行間隔に制限があるため、回答してからSlackへ届くまで時間が空くことがあります。テスト中にすぐ確認したい場合は「Run once」を使うと便利です。

6. 動作確認(実際の質問例)

以下のように3回テストしてみましょう。確認したいのは「条件に応じて正しい送信先へ届くか」です。

  • テスト1:種別=営業/内容=料金プランの相談 → #営業 にメッセージが届く(または営業担当者にDM)。
  • テスト2:種別=サポート/内容=ログインできない → #サポート に届く。
  • テスト3:種別=採用/内容=中途採用の応募 → #採用 に届く。

例えば営業ならこんな感じのメッセージが届くと思います。

想定外の種別(例:「その他」)を選ばせる設問がある場合は、#inbox に流れることも確認します。届かなかった場合は慌てずに次章のチェックポイントを確認しましょう。Makeの実行履歴を見れば、どこで止まったのかを確認できます。

7. うまく動かないときのチェックポイント

  • フォームとシートのリンク忘れ…フォームの「回答」からスプレッドシートがリンクされているか確認します。リンクされていない場合はMakeで回答を取得できません。
  • シートの選択ミス…Makeのトリガーで別のスプレッドシートやワークシートを選んでいないか確認します。URLやシート名も見直しましょう。
  • ヘッダー行の位置…1行目に項目名があり、2行目以降がデータになっているか確認します。項目名の位置がずれていると値の差し込みで問題が起きることがあります。
  • フィルター条件の不一致…「営業」と「 営業」のようなスペース違いに注意します。全角と半角の違いも含めてフォーム側の選択肢とフィルターの条件を確認しましょう。
  • シナリオのオン忘れ…テスト時は動くのに自動では処理されない場合は、スケジュールが有効になっているか確認します。
  • 実行間隔のタイムラグ…無料プランでは実行間隔に制限があります。すぐに届かない場合は少し待ってから確認するか「Run once」で手動実行します。
  • Slack連携の権限…ワークスペースで外部アプリの承認が必要な場合は、Makeとの連携が保留になることがあります。管理者に承認を依頼しましょう。
  • 送信先の指定ミス…SlackモジュールのConversationで正しいチャンネルやユーザーを選べているか確認します。プライベートチャンネルへ投稿する場合は、Makeが利用するSlack連携に必要なアクセス権があるかも確認してください。
  • エラーの詳細…Makeの実行履歴から失敗したステップを開くと、エラーの内容や処理時のデータを確認できます。英語のエラーでも、まずはエラーが出たモジュールとメッセージを確認すれば原因を絞り込めます。

8. 次にできる改善アイデア

  • 担当者の表をスプレッドシートに切り出す…「種別→Slack送信先」の一覧を別シートに作り、MakeでLookup(検索)して送信先を動的に決める方法です。担当者や送信先が変わったときもノーコードで表を更新できます。
  • 個人DMへの完全移行…チャンネル振り分けが安定したら、担当者へのDMに切り替える方法もあります。問い合わせを担当者へ直接届けたい場合に向いています。
  • テンプレ整形…Slackメッセージに太字や改行、絵文字、固定フッター(元データのURL)を入れると内容を確認しやすくなります。
  • スレッド化…同じ問い合わせに関するやり取りをスレッドにまとめることで、後から経緯を追いやすくなります。
  • 添付対応…フォームでファイルを受け取り、Googleドライブに保存したファイルのリンクをSlackへ送る運用もできます。
  • アラート強化…重要度の高い問い合わせだけメンション(@here/@channel/@担当者)を付ける方法です。通知が多くなりすぎないように対象を決めておきましょう。
  • 実行間隔の短縮…より短い間隔で処理したい場合はMakeの有料プランを検討します。必要な反応速度と費用を見ながら決めるとよいでしょう。

まずは本記事のゴールである「フォームに回答するとSlackへ自動で届く」状態まで作れれば十分です。実際に使ってみて不便なところが出てきたら、その部分から少しずつ改善していきましょう。