※2021年5月時点の情報です。今後の仕様変更により利用できなくなる場合もございます。
こんにちは、Chatworkのさかぐち(cw-sakaguchi)です。
「Google Apps Script」を利用して「業務効率化」する手順を不定期に更新しております。
Chatworkに「ピアボーナスの仕組みがあればいいのに!」思ったことはありませんか?
ピアボーナスとは
ピアボーナスは、従来の会社から社員に対して贈られる報酬とは違い、社員同士で報酬を贈りあうことができる仕組み・制度です。
弊社には「ピアボーナス」の制度があり、メンバー間で積極的に「称賛」や「ありがとう」を伝えています(ここ1年で1万件以上のピアボーナスが生まれています!!)
ピアボーナスもらうと、(個人的に)モチベーションがあがり「また頑張ろう!」と気合いがはいるため、従業員満足度の向上にも繋がると思っています。
ということで!今回は「Chatworkでピアボーナスのメッセージを送る仕組み」を作成しようと思います。
Googleフォームにピアボーナスを「送りたい相手」「メッセージ」を入力すると、Chatwork上で送られた相手にメッセージが飛ぶようにしていきます。
※今回の手順ではピアボーナス「報酬」の仕組みは紹介しておらず、「メッセージを送る仕組み」のみ紹介しております。送られたメッセージはスプレットシートに記録されるようになるため、社内の制度と合わせて運用を考えてみてください!^^
目次
Google Apps Scriptとは
Googleが提供しているJavaScriptベースのスクリプト言語です。
インストール作業等は不要でGoogle のサーバーで実行されます。 実行するために必要なものは以下の通りです。
- Googleアカウント
- ネットワーク環境
- ブラウザ
手順
Chatwork API Tokenの発行
Chatwork APIを利用してメッセージを送信するため、Chatwork API Tokenを取得します。
以下の手順に沿って発行してください。
取得した「API Token」はメモ帳などに保存してください(後ほど使います)
ピアボーナス送信用のグループチャットを作成
ピアボーナスのメッセージを送信するためのグループチャットを作成します。
以下の手順に沿って作成してください。
作成したグループチャットの「ルームID」を取得
作成したグループチャットの「ルームID」を取得します。
取得した「ルームID」はメモ帳などに保存してください(後ほど使います)
Googleフォーム作成
1.ピアボーナス送信用のGoogleフォームを作成
こちらよりGoogleフォームを作成してください。
「送りたい相手」は後続の「人事マスタ作成」のあとに設定したほうが効率がよいため、現時点では空で構いません。
※項目の名前(氏名・送りたい相手・メッセージ)をプログラム内で指定します。項目名を変更する場合、プログラムも合わせて修正してください。
2.回答を選んで緑のアイコンをクリック(回答結果をスプレットシートに記録します)
3.「新しいスプレットシートを作成」をクリック
4.スプレットシートが作成される
※「タイムスタンプ」列は自動で作成されます。
人事マスタを作成
今回は、Chatworkでメッセージを送る際、送りたい相手に「TO」をつけて送ります。
「TO」をつけるためには「アカウントID」が必要になるため、事前にスプレットシートに従業員の「アカウントID」「氏名」を設定し、プログラム内から参照します。
※管理者設定画面より「ユーザーリスト」をエクスポートする手順があります。管理者でない場合は管理者に依頼をしてください。
1.新しいシートを追加し、シート名を「人事マスタ」に変更
※シート名(人事マスタ)をプログラム内で指定します。シート名を変更する場合、プログラムも合わせて修正してください。
2.管理者設定より「ユーザーリスト」をエクスポート
管理者設定よりユーザーの情報(名前・アカウントID)を取得します。
以下の手順に沿って「ユーザーリスト」をエクスポートしてください。
https://help.chatwork.com/hc/ja/articles/900006849823
3.作成した「人事マスタ」シートにユーザーの情報を記入
※名字と名前の間にスペースを入れる場合は「半角スペース」を利用してください。
「送りたい相手」プルダウン作成
作成した「人事マスタ」シートの「氏名」列をコピーし
Googleフォームの「送りたい相手」の選択肢に貼り付けてください。
Google Apps Scriptの作成
1.スプレットシートの「ツール」メニューから「スクリプト エディタ」をクリック
2.左上の「無題のプロジェクト」をクリックし、プロジェクトの名前を設定
3.最初から記載のある以下のコードは利用しないため削除
function myFunction() { }
4.以下のコードをコピペし、【編集対象】と書かれている部分を修正
// 【編集対象】Chatwork API Token const token = 'ここにChatwork API Token'; // 【編集対象】ピアボーナスのメッセージを送信するグループチャットのルームID const room_id = 'ここにルームID'; function sendReport(e) { // 【編集対象】Googleフォームの項目名を変更した場合、日本語の部分を修正 const from_name = e.namedValues['氏名']; const to_name = e.namedValues['送りたい相手']; const send_message = e.namedValues['メッセージ']; const account_id = getAccountId(to_name); // Chatwork送信用のメッセージ作成 const message = `[info][title]${from_name}さん→[To:${account_id}]${to_name}さんにピアボーナス(cracker)[/title]${send_message}[/info]`; // Chatworkへ送信 const client = ChatWorkClient.factory({token: token}); client.sendMessage({room_id: room_id ,body: message}); } // スプレットシートよりアカウントIDを取得 function getAccountId(to_name){ // スプレットシート読み込み const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('人事マスタ'); const lastRow = sheet.getLastRow(); // スプレットシートに記載がある分だけ繰り返す for(var i = 2; i <= lastRow; i++) { const name = sheet.getRange(i, 1).getValue(); // 氏名 const account_id = sheet.getRange(i, 2).getValue(); // アカウントID if(name==to_name){ // 氏名が同じ場合、アカウントIDを返却 return account_id; } } }
※シート名を「人事マスタ」から変更した場合、以下の日本語の部分を変更してください。
const sheet = ss.getSheetByName('人事マスタ');
5.「プロジェクトを保存」をクリック
ライブラリの読み込み
Chatworkへメッセージ送信はライブラリ「Chatwork Client for Google Apps Script」を利用します。
1.ライブラリの「+」をクリック
2.「スクリプトID」欄に以下のIDを入力後「検索」をクリックし、必要な設定をおこない「追加」をクリック
スクリプトID:
1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav
項目 | 内容 |
---|---|
バージョン | 最新バージョン(一番大きな数字) |
ID | 変更なし(ChatWorkClient) |
3.「ChatWorkClient」が追加されたら完了
トリガーの設定
Googleフォームに入力があったタイミングでスクリプトを動かし、Chatworkへメッセージを投稿するようトリガーを設定します。
1.左側のアイコンから、時計のアイコンにカーソルをあてる
2.「トリガー」をクリック
3.必要な設定をおこない、「保存」をクリック
項目 | 内容 |
---|---|
イベントのソースを選択 | スプレットシートから |
イベントの種類を選択 | フォーム送信時 |
※保存後にポップアップブロックが表示された場合は「許可」してください。
4.新しい画面が立ち上がるので、自分のアカウントをクリック
5.「許可」をクリックし、画面が自動で閉じるのを待つ
6.1行追加されたら完了
動作確認
フォームから送りたい相手を選んで送信
Chatworkにメッセージが送られた!
まとめ
いかがでしたでしょうか?
まずはお試しでやってみて、よさそうであれば仕組みをどんどんバージョンアップしてみてください!
- Googleフォームにオリジナルの画像を入れてみる
- Googleフォームの「送りたい相手」プルダウンのリストをスプレットシートから取り込むようにする
- 基幹システムの人事DBと従業員データを連携する 等
それでは、よいGAS生活を〜
※プログラムの書き方など、具体的な実装方法については「サポート対象外」となります。