Slack+Zapier+GoogleFormで秒で作る社内受付システム


悩みつつ記事も書きつつ2時間で作れたよ
iPadのアクセスガイド機能を使ってsafari表示しているだけです

アクセスガイド
https://support.apple.com/ja-jp/guide/ipad/ipada16d1374/ipados

概要

GoogleFormに投稿された受付内容をもとに、該当する特定のSlackチャンネルに通知することをしました
gasだとエンジニア以外の人が読み辛いので、今後の運用も考えて条件分岐はZapierにやらせています

formつくる

form回答完了時に受付画面更新しない問題あるので、一応人力で戻してもらえるように案内する

formの担当者欄をslackから抽出する

slackからメンバーリストをエクスポート

csvでDLしたのをSpreadSheetにはりつける(こんなノリ、チェックとかあってないかも)

Googleフォームのプルダウンにスプレッドシートの内容を反映させる(gasだけどまぁ止まってもそんなに問題はない)

今回はslackのdisplaynameを引用
overwriteMemberList() って名前のfuncにした
https://qiita.com/kobaboy/items/610263087d9c85d8458e
※これだとbotとかも入っちゃうからどうにかしたい気持ちはある
下記参考にして書いたやつ

function overwriteMemberList() {

  /**
  // スプレッドシートの情報を取得する
  // 
  **/
  //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述
  var sheets = SpreadsheetApp.openById('△△△').getSheets();

  // シート1の情報を取得
  //(デフォルトのスプレッドシートの場合、シート1という名称になっています)
  var sheet = sheets[2];

  // スプレッドシートのA1のセルが「username」の場合
  if("username" == sheet.getRange("A1").getValue()){

    // A行の8行目(displayname)からコンテンツをもつ最後の行までの値を配列で取得する
    var colA = sheet.getRange(8, 1, sheet.getLastRow() - 1).getValues();
  }

  /**
  // Googleフォームのプルダウン内の値を上書きする
  // 
  **/

  // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述
  var form = FormApp.openById('〇〇〇');

  // 質問項目がプルダウンのもののみ取得
  var items = form.getItems(FormApp.ItemType.LIST);

  items.forEach(function(item){
    // 質問項目が「担当者名がおわかりでしたらお選びください」を含むものに対して、スプレッドシートの内容を反映する
    if(item.getTitle().match(/担当者名がおわかりでしたらお選びください.*$/)){
      var listItemQuestion = item.asListItem();
      var choices = [];

      colA.forEach(function(name){
        if(name != ""){
          choices.push(listItemQuestion.createChoice(name));
        }
      });

      // プルダウンの選択肢を上書きする
      listItemQuestion.setChoices(choices);
    }
  });

}

月イチ更新トリガーにする

formの回答からSpreadSheet作成

GoogleSpreadSheet更新時にslackに通知が飛ぶようにZapierでzapを組む

全体図

上から
New Spreadseet Raw: 列追加でActionする

Filter: 訪問先名でfilterかけてる

Send Channel Message in Slack: 特定のSlack Channelにメッセージを送信

こまいことにbot Iconなどを設定した

結果

運用

このformを開いたままにしているiPadとかiPhoneを会社受付に設置すればOK!

メンションは今度作る!おわり!