slack 勤怠 gas 16

Hatena.BookmarkWidget.url = "s2works.net"; sheet.appendRow([id, name, entrytime, state]); 初心者向けに社内コミュニケーションツールSlack(スラック)の使い方について解説しています。Slackの始め方や登録方法が分からない方でもスムーズに進められるはずです。便利なツールなので、ぜひ使い方をマスターしましょう! //もし頭に0がついてしまう場合0は消す 現在のプロジェクトのトリガーを開きます。 時間主導型のタイマーを作成します。今回は5分おきにフェッチするようにしました。 以上で完成です。 return (2); var text = “気を付けて帰ってモグね!家に着くまでが冒険だよ!”;

}; //書き込む

break; case 2:

}else{ var bot_icon = “アイコン画像のパス”; var name = e.userName; リソース -> ライブラリ, Add a libraryにMomentのライブラリID MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 を入力して追加します。, これで面倒な日付処理にMomentが利用できるようになります。

var text = “お疲れモグー!\n今日も1日ご苦労さんモグ!\n明日もいい日にするモグよ!”;

var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’); sheet.appendRow([id, name, entrytime, state]); SlackのCustom Integrations > Outgoing WebHooks を入れる, Outgoing WebHooksのIntegration Settingsで以下の設定をする, 反応する文字列を指定する / Trigger Word(s)の設定 (出勤 / 退勤). dt: date_time, //時間 var text = “今日はどうだったモグか?お疲れ様モグ!”; var entrytime = e.dt daily = Number(daily); var lastRow = sheet.getLastRow(); if ( post_text.indexOf(‘出国’) != -1) { var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’);

//ユーザー名 js = d.createElement(s); js.id = id; }. 上記の運用を行うことでこれまで勤怠管理システムで行なっていた打刻をslackで代用できるようになります。

//時間を連結してテキストで渡す { return(DateTime); var id = lastRow; if(result != 1)

var token = PropertiesService.getScriptProperties().getProperty(‘SLACK_ACCESS_TOKEN’); Tools -> Workflow Builder を開きます。, 連携するチャンネル名とショートカット名を入力します。ここで入力したshort nameが実際に表示される名前になります。, フォームは座席コードをリストから選択させたいので、Choose a question typeは「Select from a list」を選択してください。, Publishをクリックして有効化します。 //月を取得

フリーアドレス勤務の場合、着席位置をSlackで一報入れるルールにしていますが、万が一感染者が発生したときに誰と近い席に座っていたか辿るため、Googleスプレッドシートにも着席位置を記載しています。, そこで、着席情報の入力をSlack Workflow化し、Googleスプレッドシートに自動転記する仕組みを構築しました。, 弊社ではG Suiteを導入しており、セキュリティ制限によって外部からdoPost()、doGet()をコールすることができません。ですので、5分毎にSlackの履歴APIをGASからフェッチする設計で作っていきます。, 着席位置についてフリーテキストを受け付ける仕様だと辛いので、定型文に落とし込むため登録フォームを作ります。 本ブログに掲載のあるソフトウェアのダウンロード等を行う際には、各ソフトウェアの公式リファレンスを参照のもと、またはご利用者の判断でお願い致します。ソフトウェアのダウンロード等の結果、ご利用者に何らかの損失・損害が生じたといえども、当社ではその責任を負いかねます。, "https://slack.com/api/conversations.history?token=xoxp-00000000000-00000000000-000000000000-deadbeefdeadbeefdeadbeef&channel=". 1行目には小さくSlackのユーザーIDが埋めてあります。, 労力に対して得られるものがちょっと小さいですが、GMOグループでは日々千分の一の改善を積み重ねて大きな成果を作ることを良しとしているため、この規模の改善も積極的に行っております。, 本ブログで発信される情報は、各エンジニア個人の見解であり、弊社の公式見解ではありません。本ブログに掲載、引用等をしている商品またはサービス等の名称は、各社の商標または登録商標です。本ブログにおける弊社ならびに弊社グループ、またその役職員が発表する情報は、必ずしも公式発表および見解を表すものではなく、正確性、完全性、有用性、その他の事項について一切責任を負いかねます。発表する情報には注意を払っておりますが、公式発表、見解については、弊社WEBサイトおよびプレスリリースなどをご確認ください。GMOインターネットグループにおけるソーシャルメディア運用ポリシーについては次のページをご確認ください。, 1.

//日曜が0、土曜日が6。配列を使い曜日に変換する。 state = 1; Hatena.BookmarkWidget.num = 8;

よくある1人100円から使える勤怠管理システムというものがあるが、弊社ではまだ導入はしていない。, ということで、プライベートワークで、SlackとGASを使った「簡易タイムカードシステム」を作ってみた。

break; js.src = 'https://connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v3.0&appId=253185231535573&autoLogAppEvents=1';

function checkDate(){ icon_url: bot_icon 関数名は何でもよいですが、今回はfetchSlackHistory()関数としました。, このコードでは時刻処理のためにMomentライブラリを用いています。

Hatena.BookmarkWidget.load(); (function(d, s, id) { { var hours = (“0″+d.getHours()).slice(-2); はじめにこんにちは。TIG メディアユニットの久保です。 春の入門祭り #16 業務効率化・コミュニケーションツールSlack入門です。 コロナ影響により業界各社がテレワーク中心の業務体制を準備する中、コミュニケーションツールの需要が一気に高まってきました。 break; case 5:

{ break; case 3: var date_time = checkDate(); var postdata = { var app = SlackApp.create(token); var num = Math.floor(Math.random()*5+1 ); if ( post_text.indexOf(‘入国’) != -1) { var js, fjs = d.getElementsByTagName(s)[0]; var state; //出勤か退勤か //Slackのアクセストークン var result = getAttendance(postdata); うちのようなドベンチャーには、勤怠管理システムがない。 switch(num) if(state != 0) Hatena.BookmarkWidget.theme = "hatenadiary"; } var text = “お疲れさまモグ!今日の頑張りが必ず明日の為になってるモグよ!”;

function getAttendance(e){ }. 今回のプログラムではSlack APIから取得できるタイムスタンプの処理に利用しています。, 特殊なことはあまりありませんが、下方向に日時、横方向に社員が並びます。

おはようございます ← 現在時刻で出勤.

The following two tabs change content below. }, //ボットからのコメント

var verify_token = “Outgoing WebHooksのTOKENをここにコピペ”; case 1:

//勤怠システムに書き込む

var text = “おはようモグー!\n今日も1日頑張ろうモグ!”; ここまで進めると、ボタンに作ったフォームへのリンクが登場します。 フリーアドレスになってスプレッドシートで座席管理することになったので、Slackからスプレッドシートを更新できるようにしました, 2019年下半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 2019年上半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 【22新卒】11/24(火)自社開発のおもしろさを語るオンラインイベントを開催します!.

break; case 4:

if (verify_token != e.parameter.token) {

break; 大した機能はなくて、正直ちゃんとしてないです。 var DateTime = month + “月” + daily + “日(” + day + “) ” + hours + “:” + minutes; ブログを報告する, かなり時間が経ってしまったんだけど1/11-13にRegional Scrum G…, やりたいこと railsアプリケーションをbitbucketでprivateで管…. GitHub 1, この手のやつはこれまでかなりめんどくさかったのですが、slackのワークフローとGASを組み合わせることでだいぶ楽に継続できるかんじになった感があります。, 現在、エンジニアとアドバイザ含めて3社と契約していますが、うち2社は完全リモートオンボーディングです。, 今の所それぞれ順調にオンボーディングが進んでいると思っていますが、リモートだからこそtimesの活用は積極的にしていくべきだなと思いました。, オフィスなら雑談を介して人となりを知ってもらうことができますが、リモートだと能動的に動いていかなければ知ってもらう機会は作れません。, timesにやっていることだけでなく人となりやバックグラウンドがわかるようなネタを書いていったり、他の人のtimesに遊びに行ったり、わからないなりにPRにコメントしたり、とにかくインプレッションを高めていく活動がオンボーディング過程では大事かなと思いました。, コードは当月データのみにしか対応していないので複数月跨いだ集計を行いたい場合はよしなに変えてください。↩, エンジニア / ex-CrowdWorks / 一般社団法人アジャイルチームを支える会 理事 / 認定スクラムマスター, yo-iidaさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog

var minutes = (“0″+d.getMinutes()).slice(-2); }(document, 'script', 'facebook-jssdk')); SLACK_ACCESS_TOKEN = “Slackの設定ページから取得する”; var daily = Utilities.formatDate(d,”JST”,”dd”); var month = Utilities.formatDate(d,”JST”,”MM”); var hours = (“0″+d.getHours()).slice(-2); var minutes = (“0″+d.getMinutes()).slice(-2); var DateTime = month + “月” + daily + “日(” + day + “) ” + hours + “:” + minutes; var token = PropertiesService.getScriptProperties().getProperty(‘SLACK_ACCESS_TOKEN’); var verify_token = “Outgoing WebHooksのTOKENをここにコピペ”; var text = “お疲れモグー!\n今日も1日ご苦労さんモグ!\n明日もいい日にするモグよ!”; var text = “お疲れさまモグ!今日の頑張りが必ず明日の為になってるモグよ!”; error_text = “\n正しくスプレッドシートに記載できなかったみたいモグ”; var message = e.parameter.user_name + “、” + text + error_text; return app.postMessage(e.parameter.channel_id, message, {. 日本最大級のクラウドソーシング「クラウドワークス」なら、【GAS】Googleスプレッドシートを用いたタイムカード機能の仕事を依頼できます。質の高い業務システム・ソフトウェアのプロが多数登録しており、納期・価格等の細かいニーズにも対応可能。

うちのようなドベンチャーには、勤怠管理システムがない。 よくある1人100円から使える勤怠管理システムというものがあるが、弊社ではまだ導入はしていない。 dateT = [“日”,”月”,”火”,”水”,”木”,”金”,”土”];

}. }. // データ入力 var text = “モグモグモグ!モグー”; 弊社ではコロナ禍のソーシャルディスタンス対策として、フリーアドレスを導入いたしました。 return (1); break; case 5:

state = 2;

本ブログに掲載のあるソフトウェアのダウンロード・記事内容の実行等(以下「ソフトウェアのダウンロード等」)は自己責任でお願い致します。, 2. function doPost(e) { case 1: }. }); 送信するとこんなかんじになります。 ワークフローの結果を集計する.

//Slackのkintaiチャンネルで入力したワードがこのイベントに入ってくる タイムカードでお困りの方はとりあえずでよければログとして残せます。, Slackの#Kintaiチャンネルで”出勤”/”退勤”と入力すると、その入力した時間がGoogleSpreadシートに名前と時間と出勤/退勤というステータスが保存されます。 break; case 6: slackワークフロー - オプション.

//Outgoing WebHooksを利用して、投稿に反応させる var message = e.parameter.user_name + “、” + text + error_text; var isError; if(state == 1){state = “出勤”;} Google Apps Scriptで書かれた、Slack上で動く勤怠管理Bot。 Slackで下記の様につぶやくと、みやもとさんがGoogle Spreadsheetに勤怠を記録してくれます。 会話例.

var daily = Utilities.formatDate(d,”JST”,”dd”); var sheet = ss.getSheets()[0]; //最終列の取得 userName: e.parameter.user_name, //ユーザー var day = dateT[d.getDay()]; //日付を取得

var state = e.state; var month = Utilities.formatDate(d,”JST”,”MM”); //曜日 Hatena.BookmarkWidget.width = 0; var d = new Date(); //今日の日付のデータを取得する(ddを使いシートの日付を取得) SLACK_ACCESS_TOKEN = “Slackの設定ページから取得する”; //出勤/退勤/時間をspledsheetに残す

var bot_name = “ボット名”;

//時間の取得(上の方で記載した関数) 勤怠管理bot - みやもとさん. var post_text = e.parameter.text;

error_text = “”; if(state == 0){isError = true;}, if(!isError) var text = “ご苦労さんです。by中の人”; return app.postMessage(e.parameter.channel_id, message, { if (d.getElementById(id)) return; fjs.parentNode.insertBefore(js, fjs); var error_text = “”; //投稿の認証 //時間 slackワークフロー. なお、フォームの選択肢に設定できる項目数が現在は最大20のようです。今回は座席が入りきらないのでフォームを島ごとに作成しています。, 冒頭に書いたように、doPost()でSlack Events APIから直接データを受け取ることができないため、時間トリガーでフェッチする関数を書いていきます。 var text = “モグーのすきなものは焼き芋モグ!”; //時

username: bot_name, 1行目には小さくSlackのユーザーIDが埋めてあります。 GASトリガーの作業. var text = “今日も子どもたちのみらいを想像して頑張ろうモグ”;

{ error_text = “\n正しくスプレッドシートに記載できなかったみたいモグ”; //スプレに記載 switch(num) Hatena.BookmarkWidget.title = "エントリー"; var date_time;

break; case 6: }else{ var text = “今日もいい日でありますようにモグ”; | if(state == 2){state = “退勤”;}

//分

弊社では、入国/出国にしました。. Hatena.BookmarkWidget.sort = "count"; } state: state break; case 2: { } throw new Error(“invalid token.”); //出勤か退勤か

GAS(Google App Script) + Slackで勤怠管理(簡易タイムカード)作ってみた.

アースノーマット ペット用 効果 16, 道明寺 楓 後悔 10, 岡本杏理 弁護士 結婚 35, チキチキマシン 猛レース 最終回 4, Akb総選挙 2017 動画 14, タモリ 日テレ 確執 8, 余談 雑談 違い 6, 名古屋 廃校 レンタル 19, カラオケ大会 北九州 2020 6, インターン 私服 女 5, 力士 出身 高校 9, 倉敷 山林 売地 29, テレビ東京 アルバイト から 正社員 7, Realize 鈴木このみ 歌詞 29, そん けむ ん 9, マツダ 藤原副社長 経歴 28, アウディ 中古車 注意点 6, 蒼穹のファフナー スロット やめどき 6, 情熱大陸 King Gnu 再放送 6, Comico アン インストール コイン 8, マイクラ タイタン バトル 6, 仮面 ライダー キバ 変身音 4d 4, キンプリ 不仲 2019 8, ランモバ 火 竜70 10, Oppo Reno A セキュリティソフト 23, 加藤綾子 Naoto 結婚 12, デルタ 結線 中性 点 7, つば み ダンス うまい 10, クラフト系 サバイバルゲーム スイッチ 7, ナルコス メキシコ編 シーズン3 27, ジョジョ 3部 スタンド 7, 中居正広 兄 静岡 14, イミテーションゲーム 実話 どこまで 25, りひと 名前 ランキング 19, The Kissing Booth あらすじ 18, Amazing Sports Lab Japan 評判 11, キングダム きょうかい 復讐 何話 28, 経口補水液 作り方 オリゴ糖 10, ユリ ゴコロ ネタバレ 漫画 8, 将棋ウォーズ 二級 強さ 7, クエン酸 除草剤 作り方 40, エドガーケイシー ひまし油 Amazon 6, 西山 朋佳 三間 飛車 4, 今日の運勢 獅子座 まとめ 9, 木村文乃 ツイッター 本物 4, 東京理科大 就職 強い 8,