cybozu developer network

カテゴリー内の他の記事

Garoon 在席情報 × kintone で「自分の働き方」を共有しよう

Index

はじめに

働き方改革の一環として、オフィスに出社せずに在宅やコワーキングスペースで働くリモートワーク制度や、オフィス勤務でも座席が固定ではないフリーアドレス制度がさまざまな企業に導入されつつあります。
サイボウズでも、オフィス以外で働くメンバーがいたり、営業など席を外すことの多いメンバーはフリーアドレス制を利用して「フリー席」と呼ばれる席で働いています。

そうした場合に気になるのが、チームメンバーが「今日は、オフィス or リモートで働いているのか」「オフィスのどこで働いているのか?」です。

この記事では、Garoon の在席情報と kintone を使って、自分の働き方を自動で共有するカスタマイズを紹介します。

完成イメージ

完成イメージ

kintone の「働き方」アプリに登録されているレコードから、その日(曜日)の働き方を Garoon の在席情報の「ステータス」に自動で反映します。

  • 「会社」で働く場合は、固定席かフリー席かを表示します。
    • kintone アプリの「座席番号(固定席の場合のみ)」フィールドに値が入っている場合は、[ステータス]が「固定席」、入っていない場合は「フリー席」と表示します。
    • 「固定席」と表示する場合は、在席情報の[メモ]に、「座席番号(固定席の場合のみ)」フィールドの値を表示します。

システム構成図

構成図

Google Apps Script に登録したスクリプトを1日1回実行し、次のことを行います。
※ このスクリプトでは、Google Apps Script でログイン情報を設定した cybozu.com ユーザーの Garoon 在席情報のみを更新します。

  • kintone の「働き方アプリ」からログイン名をキーに、働き方レコードを取得します。
  • 取得したレコードを使って、曜日をキーにその日の働き方をGaroon 在席情報に反映します。

事前準備

  • kintone および Garoon を利用できるアカウント
  • Google アカウント(Google Apps Script を利用するため)

詳細設定

Garoon

Garoon の在席情報のステータスを追加します(参照:在席確認:ステータスを追加する

  1. ヘッダーのユーザー名をクリックし、[個人設定]をクリックします。
  2. [各アプリケーションの管理]タブを選択します。
  3. [在席確認]を選択肢、[ステータスの設定]をクリックします。
  4. 「ステータスの設定」画面で、1行ずつ「固定席」「フリー席」「自宅」「コワーキングスペース」を入力します。
    入力後、 [設定する]ボタンをクリックして保存します。
    ステータスの設定

注意事項:
このカスタマイズを利用する際は、ステータスの自動設定を無効にしてください。
ステータスの自動設定が有効な場合、ユーザーが 1日の最初に Garoon へログインしたときに、「ステータス」が自動で「在席」に上書きされます。
ステータスの自動設定については、在席確認:ステータスの自動設定を利用するをご参照ください。

kintone

 「社員名簿」アプリと「働き方」アプリを作成します。

社員名簿

  1. アプリストアの「社員名簿」アプリをもとに作成します(参考:アプリストアからアプリを追加する
  2. アプリの設定画面から、「ログイン名」フィールドを追加します。
    フィールド名 フィールドタイプ フィールドコード 備考
    ログイン名 文字列(1行) loginName 「必須項目にする」にチェックします

働き方アプリ

  1. 「はじめから作成」で、アプリを新規に追加します。(参考:アプリをはじめから作成する
  2. 次のようにフィールドを追加します。
    workstyle_app_setting.png
    フィールド名 フィールドタイプ フィールドコード 備考
    社員番号 ルックアップ employeeNumber
    • 「必須項目にする」にチェックします
    • 関連付けるアプリ:社員名簿
    • コピー元のフィールド:社員番号
    • その他のフィールドのコピー:
      • 社員名簿の「氏名」→「氏名」
      • 社員名簿の「ログイン名」→「ログイン名」
    ログイン名 文字列(1行) loginName
    • 「必須項目にする」にチェックします
    氏名 文字列(1行) name  
    座席番号(固定席の場合のみ) 文字列(1行) seat  
    テーブル Table  

    テーブルの内容は次のように設定します。
    フィールド名 フィールドタイプ フィールドコード 備考
    曜日 チェックボックス week
    • 「必須項目にする」にチェックします
    • 以下の項目を追加します
    • 並び:横
    場所 ドロップダウン location
    • 「必須項目にする」にチェックします
    • 勤務場所については、今回は以下の項目を追加します。
      • 会社
      • 自宅
      • コワーキングスペース

Google Apps Script の設定

kintone の「働き方」アプリに登録されたレコードを使って Garoon の在席情報を更新するスクリプトを適用します。
スクリプトを定期実行(1日1回)するよう、トリガーも設定します。

  1. G SuiteDeveloper Hub を開き(要 Googleログイン)、[新規スクリプト]ボタンをクリックします。
    新規スクリプトの作成
  2. エディタ部分に後述のサンプルコードを貼り付けます。
    Google Apps Script エディタ
  3. [ファイル]メニューから、[保存]を選択し、保存します。
    適当なプロジェクト名(ここでは「grkin-workstyle」としました)を入力し、[OK]ボタンをクリックします。
    プロジェクトの保存
  4. スクリプトのプロパティを使って、.com 環境やユーザー名・パスワードを設定します。
    [ファイル]メニューから、[プロジェクトのプロパティ]を選択します。
    [プロジェクトのプロパティダイアログ]が表示されるので、[スクリプトのプロパティ]タブを選択します。
  5. [行を追加]リンクをクリックし、次のプロパティを入力します。
    プロパティの追加
    プロパティ
    SUBDOMAIN .com 環境のサブドメインを入力します
    「xxxxx.cybozu.com」の xxx の部分です
    USERNAME .com 環境にログインするユーザー名を入力します
    PASSWORD .com 環境にログインするパスワードを入力します
    WORKSTYLE_APP_ID 働き方アプリのアプリIDを入力します

    3つすべて入力したら、[保存]ボタンをクリックします。
    プロパティの追加
  6. スクリプトの実行タイミングを設定します。
    [編集]メニューから、[現在のプロジェクトのトリガー]を選択します。
  7. [トリガーを追加]ボタンをクリックします。
    トリガーを追加
  8. 次のように設定し、[保存]ボタンをクリックします。
    項目
    実行する関数を選択 「main」を選択します
    実行するデプロイを選択 「HEAD」を選択します
    イベントのソースを選択 「時間主導型」を選択します
    時間ベースのトリガーのタイプを選択 「日付ベースのタイマー」を選択します
    時刻を選択 スクリプトを実行したい時間帯を選択します。
    ここでは「午前7時〜8時」を選択します。

    トリガーが追加されます。
    トリガーが追加される

設定は以上です。
「午前7時〜8時」にトリガーを設定したので、毎日午前7時〜8時の間にスクリプトが1回実行されます。

動作確認

動作確認

  1. kintone の「働き方」アプリに、Google Apps Script でログイン情報を設定したユーザーのレコードを登録します。
  2. Google Apps Script の画面で、「関数を選択」リストで「main」を選んで、[▶]ボタンをクリックします。

サンプルコード

以下のソースコードを Google Apps Scripts に貼り付けてください。

サンプルコードの解説

今回のプログラムのポイントは次のとおりです。

  • 46-56行目
    • 「働き方」アプリから、「ログイン名」フィールドが Google Apps Script のスクリプトのプロパティで設定した USERNAME に一致するレコードを1件取得します。
    • UrlFetchApp.fetch では、GETのときにリクエストパラメータをつけてリクエストできないため、レコードの一括取得(クエリで条件を指定)API を利用します。
  • 63-101行目
    • 働き方の詳細が記録されているテーブルの中身を使って、曜日をプロパティにもつオブジェクトに整形します。
    • 「場所」フィールドの値が "会社" かつ「座席番号(固定席の場合のみ)」フィールドに値があれば、「固定席」とします。
    • 「場所」フィールドの値が "会社" かつ「座席番号(固定席の場合のみ)」フィールドが空であれば「フリー席」とします。
  • 108-123行目:

おわりに

今回、固定席の場合は kintone のレコード情報を使って「メモ」に座席番号を表示しました。
手動での設定になりますが、フリー席も在席情報の「メモ」(参照:在席情報の変更)に「xxxの近く」と設定すると、より詳細な情報も伝えることができるのでオススメです。

在席情報の変更

このサンプルでは Google Apps Script でログイン情報を設定した cybozu.com ユーザーの Garoon 在席情報のみを更新しますが、コードを書き換えることで「働き方」アプリに設定した全員分の在席情報も更新することも可能です。

利用している API

このTipsは、2020年3月版 Garoon と kintone で確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。