悩みつつ記事も書きつつ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する
Send Channel Message in Slack: 特定のSlack Channelにメッセージを送信
こまいことにbot Iconなどを設定した
結果
運用
このformを開いたままにしているiPadとかiPhoneを会社受付に設置すればOK!
メンションは今度作る!おわり!