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

悩みつつ記事も書きつつ2時間で作れたよ
iPadのアクセスガイド機能を使ってsafari表示しているだけです
<img width="211" alt="スクリーンショット 2020-07-09 16.07.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/821bd78a-1c09-b235-7537-993e7d41c2ce.png">

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


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

# formつくる
<img width="391" alt="スクリーンショット 2020-07-06 8.13.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/85d14171-c6bf-e96b-7c34-f1585eca4170.png">

form回答完了時に受付画面更新しない問題あるので、一応人力で戻してもらえるように案内する
<img width="603" alt="スクリーンショット 2020-07-06 9.56.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/124012ab-4b41-6cf5-e252-6dfbe7553bcf.png">



# formの担当者欄をslackから抽出する
slackからメンバーリストをエクスポート
<img width="657" alt="スクリーンショット 2020-07-06 8.16.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/26a2e383-4815-f995-d217-3b3f86360aee.png">
csvでDLしたのをSpreadSheetにはりつける(こんなノリ、チェックとかあってないかも)
<img width="369" alt="スクリーンショット 2020-07-06 8.20.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/c4ac81fb-b17a-b782-f666-c3667c9dedb8.png">


# 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);
    }
  });

}
```

月イチ更新トリガーにする
<img width="731" alt="スクリーンショット 2020-07-06 8.41.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/f8e62e67-d822-cf23-6593-c404e9be8fc3.png">

# formの回答からSpreadSheet作成
<img width="1055" alt="スクリーンショット 2020-07-06 8.51.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/e7e44448-a73c-cff9-c48c-261e7cd800e0.png">


# GoogleSpreadSheet更新時にslackに通知が飛ぶようにZapierでzapを組む
全体図
<img width="512" alt="スクリーンショット 2020-07-06 10.06.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/a6716c50-f00b-eec7-ec62-dbd725dfadcc.png">

上から
New Spreadseet Raw: 列追加でActionする
<img width="468" alt="スクリーンショット 2020-07-06 9.52.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/50d30bd7-2ed2-d45b-ccc3-695e6f41cbac.png">


Filter: 訪問先名でfilterかけてる
<img width="470" alt="スクリーンショット 2020-07-06 9.52.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/293dc424-54fd-d598-e5e8-1497b82d08b1.png">

Send Channel Message in Slack: 特定のSlack Channelにメッセージを送信
<img width="466" alt="スクリーンショット 2020-07-06 9.53.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/9c4e0d35-9273-7761-2b57-3a8592472f86.png">
こまいことにbot Iconなどを設定した
![raikyaku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/69d615a9-9268-55b1-a983-d54a5e9fcde7.png)

# 結果
<img width="401" alt="スクリーンショット 2020-07-06 10.14.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86930/cf244712-0520-007f-8087-e47e804d7fd4.png">

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

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