このチュートリアルでは、Googleフォームから、問い合わせがあった時にその結果をSlackに通知する方法を学びます。 完成すると、以下のような通知Botが起動して、フォームの内容を共有してくれます。   これは地味に便利で、例えば

  • ライターさんが入稿を完了したときに報告するフォームの内容を、Slack通知する
  • 入社書類の送信完了を、人事側で確認する

など、いろいろな用途に応用することが可能です。

このチュートリアルを学習するうえで必要な知識

このチュートリアルでは、主にGoogle Apps Scriptと、Slack Web APIを利用しています。

  • JavaScript
  • Web API全般の知識
  • Slack APIの知識

の知識が必要になります。 以下のチュートリアルで学習を済ませてください。

JavaScript
JavaScriptの基礎を学びます。
Google Apps ScriptでGoogle SpreadsheetのデータをSlackに自動で通知しよう
Google Apps Scriptを利用して、Twitterのフォロワー数を毎日Slackに自動通知します。日々の通知を自動化したい方におすすめです。
文字起こしAIアプリ「文字起こしくん」を作ろう
LINEに画像を送ると、自動で文字起こしをしてくれる「文字起こしくん」を作成します。Google Apps ScriptとLINE Messagnig APIを利用して、簡単に実装できます。

手順

それでははじめていきたいと思います。手順としては、以下のようになります。

  1. Google Formの作成
  2. Slackの作成と、Incoming Webhookの取得
  3. Google Apps Scriptで、処理の実装

となります。  

Google Driveから、スプレッドシートを作成しよう

それでは、さっそく進めていきましょう。 まずは、Googleフォームを作成する必要がありますので、準備をします。 Google Driveにアクセスして、スプレッドシートを作成してください。 ※すでに、Googleアカウントが存在する場合は、URLに

spreadsheet.new 

と入力すると、新規でスプレッドシートを作成することができます。 [無題のスプレッドシート]という名前になっているので、「問い合わせフォーム」という名前に変更しておきましょう。

スプレッドシートから、Google Formを作成しよう

次に、Google Spreadsheetの[ツール] > [フォーム作成]をクリックします。 こうすることで、フォームを作成することができます。 フォームの内容は、動画のように、適当に作っておきましょう。

  • 名前:記述式
  • メールアドレス:記述式
  • 質問内容:段落

Google Formから、スクリプトエディタを起動しよう

次に、Google Formからスクリプトエディアを起動します。 新規で作成すると、「無題のプロジェクト」となっているはずなので、[問い合わせスクリプト]に変更しておきましょう。 スクリプトエディアは、Google Apps Scriptを起動するためのツールです。

Slackチャンネルと、Incoming Webhookを取得しよう

次に、Slackチャンネルと、Incoming Webhookの設定をします。 すでにSlackチャンネルを作成している方は、そのまま進めてください。

Google Apps ScriptでGoogle SpreadsheetのデータをSlackに自動で通知しよう
Google Apps Scriptを利用して、Twitterのフォロワー数を毎日Slackに自動通知します。日々の通知を自動化したい方におすすめです。
Slackチャンネルを作成していない方は、こちらのチュートリアルを参考に進めてみてください(無料部分で進めることができます) ※注意:Incoming Webhookは、Slackの管理者、開発者権限がないと、利用することができません。会社で利用する場合、権限の関係でできない可能性があります。

実装しよう

それでは、さっそく実装していきましょう。 最終的なコードはこちらになります。

function sendToSlack(body, channel) {
   const url = "https://hooks.slack.com/services/T011Q0DCJ8M/B012QK130HZ/x2EVq0AK";
   const data = {
      "channel" : channel,
      "username" : "お問い合わせ通知",
      "attachments": [{
         "color": "#d23546",
         "title": "お問い合わせがありました。",
         "text" : body,
      }],
   "icon_url" : "http://2.bp.blogspot.com/-Rd_w7b2kq70/VnE4FZen5oI/AAAAAAAA18w/mMasxPYIuCM/s800/pose_kyosyu_boy.png"
   };
   const payload = JSON.stringify(data);
   const options = {
      "method" : "POST",
      "contentType" : "application/json",
      "payload" : payload
   };
   const response = UrlFetchApp.fetch(url, options);
}

function onFormSubmit(e){
   let body = "";
   const itemResponses = e.response.getItemResponses();
   for (const index in itemResponses){
      const itemResponse = itemResponses[index];
      const title = itemResponse.getItem().getTitle();
      const response = itemResponse.getResponse();
      body += Utilities.formatString(title + ":" + response + "\n\n");
   }
   sendToSlack(body, "contact");
}

処理の流れを確認すると、

  1. Google Formで申込が完了する
  2. 申込が完了すると、onFormSubmit関数が起動する
  3. onFormSubmit関数が起動すると、フォームの内容を処理して、sendToSlack関数を起動する
  4. sendToSlack関数を起動すると、Web APIを通して、Slackにフォームの内容が通知される

という順番になります。

このチュートリアルは¥1,980で購入できますが、業務自動化コースに含まれる3記事¥5,940相当が¥4,980で購入できる、お得なセット割もあります。詳しくは業務自動化コースをご覧ください。