Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

【GASで業務効率化】Chatworkでピアボーナスのメッセージを送る

こんにちは、Chatworkのさかぐち(cw-sakaguchi)です。

「Google Apps Script」を利用して「業務効率化」する手順を不定期に更新しております。

Chatworkに「ピアボーナスの仕組みがあればいいのに!」思ったことはありませんか?

ピアボーナスとは

ピアボーナスは、従来の会社から社員に対して贈られる報酬とは違い、社員同士で報酬を贈りあうことができる仕組み・制度です。

[引用] ピアボーナスとはなんですか?(人事労務Q&A)|人事、採用、労務の情報ならエン人事のミカタ

弊社には「ピアボーナス」の制度があり、メンバー間で積極的に「称賛」や「ありがとう」を伝えています(ここ1年で1万件以上のピアボーナスが生まれています!!)

ピアボーナスもらうと、(個人的に)モチベーションがあがり「また頑張ろう!」と気合いがはいるため、従業員満足度の向上にも繋がると思っています。

ということで!今回は「Chatworkでピアボーナスのメッセージを送る仕組み」を作成しようと思います。

ピアボーナスイメージ

Googleフォームにピアボーナスを「送りたい相手」「メッセージ」を入力すると、Chatwork上で送られた相手にメッセージが飛ぶようにしていきます。

※今回の手順ではピアボーナス「報酬」の仕組みは紹介しておらず、「メッセージを送る仕組み」のみ紹介しております。送られたメッセージはスプレットシートに記録されるようになるため、社内の制度と合わせて運用を考えてみてください!^^

目次

Google Apps Scriptとは

gsuite.google.co.jp

Googleが提供しているJavaScriptベースのスクリプト言語です。

インストール作業等は不要でGoogle のサーバーで実行されます。 実行するために必要なものは以下の通りです。

  • Googleアカウント
  • ネットワーク環境
  • ブラウザ

手順

Chatwork API Tokenの発行

Chatwork APIを利用してメッセージを送信するため、Chatwork API Tokenを取得します。

以下の手順に沿って発行してください。

APIトークンを発行する – ヘルプ | Chatwork

取得した「API Token」はメモ帳などに保存してください(後ほど使います)

ピアボーナス送信用のグループチャットを作成

ピアボーナスのメッセージを送信するためのグループチャットを作成します。

以下の手順に沿って作成してください。

グループチャットを作成する – ヘルプ | Chatwork

作成したグループチャットの「ルームID」を取得

作成したグループチャットの「ルームID」を取得します。

ルームIDを確認する – ヘルプ | Chatwork

取得した「ルームID」はメモ帳などに保存してください(後ほど使います)

Googleフォーム作成

1.ピアボーナス送信用のGoogleフォームを作成

こちらよりGoogleフォームを作成してください。

Googleフォーム作成

「送りたい相手」は後続の「人事マスタ作成」のあとに設定したほうが効率がよいため、現時点では空で構いません。

※項目の名前(氏名・送りたい相手・メッセージ)をプログラム内で指定します。項目名を変更する場合、プログラムも合わせて修正してください。

2.回答を選んで緑のアイコンをクリック(回答結果をスプレットシートに記録します)

緑のアイコンをクリック

3.「新しいスプレットシートを作成」をクリック

新しいスプレットシートを作成

4.スプレットシートが作成される

スプレットシートが作成される

※「タイムスタンプ」列は自動で作成されます。

人事マスタを作成

今回は、Chatworkでメッセージを送る際、送りたい相手に「TO」をつけて送ります。

「TO」をつけるためには「アカウントID」が必要になるため、事前にスプレットシートに従業員の「アカウントID」「氏名」を設定し、プログラム内から参照します。

※管理者設定画面より「ユーザーリスト」をエクスポートする手順があります。管理者でない場合は管理者に依頼をしてください。

1.新しいシートを追加し、シート名を「人事マスタ」に変更

人事マスタ

※シート名(人事マスタ)をプログラム内で指定します。シート名を変更する場合、プログラムも合わせて修正してください。

2.管理者設定より「ユーザーリスト」をエクスポート

管理者設定よりユーザーの情報(名前・アカウントID)を取得します。

以下の手順に沿って「ユーザーリスト」をエクスポートしてください。

ユーザーリストのCSVエクスポート(ユーザー情報・利用状況・2段階認証設定状況) – ヘルプ | Chatwork

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」が追加されたら完了

ChatWorkClient追加完了

トリガーの設定

Googleフォームに入力があったタイミングでスクリプトを動かし、Chatworkへメッセージを投稿するようトリガーを設定します。

1.左側のアイコンから、時計のアイコンにカーソルをあてる

時計のアイコン

2.「トリガー」をクリック

「トリガー」をクリック

3.必要な設定をおこない、「保存」をクリック

「保存」をクリック

項目 内容
イベントのソースを選択 スプレットシートから
イベントの種類を選択 フォーム送信時

※保存後にポップアップブロックが表示された場合は「許可」してください。

ポップアップブロック

4.新しい画面が立ち上がるので、自分のアカウントをクリック

アカウントの選択

5.「許可」をクリックし、画面が自動で閉じるのを待つ

許可をクリック

6.1行追加されたら完了

1行追加されたら完了

動作確認

フォームから送りたい相手を選んで送信

フォームから送信

Chatworkにメッセージが送られた!

Chatworkにメッセージが届く

まとめ

いかがでしたでしょうか?

まずはお試しでやってみて、よさそうであれば仕組みをどんどんバージョンアップしてみてください!

  • Googleフォームにオリジナルの画像を入れてみる
  • Googleフォームの「送りたい相手」プルダウンのリストをスプレットシートから取り込むようにする
  • 基幹システムの人事DBと従業員データを連携する 等

それでは、よいGAS生活を〜

※プログラムの書き方など、具体的な実装方法については「サポート対象外」となります。