勤務表を自動で作成したい
弊社の勤怠はスプレッドシートで1ヶ月ごと1スプレッドシートで管理しています。
そのため、月初めには必ず、勤務表のフォーマットを手動でコピーして、その月の分の勤務表を作成する作業があります。
面倒な作業ではないのですが、月初めの出社時に勤務表作成を忘れており、退社時に慌てて作業することが多かったので、Yoomの勉強もかねて自動で勤務表を作成するフローを作成することにしました。
Yoom(ユーム)とは
様々なSaaS・AIと連携した独自の業務ツールをノーコードで作成できるツール。
主に以下の3種類のツールを用いて作成することができ、組み合わせて作成することも可能。
無料版だとタスク実行が100回/月の制限あり。
ちなみに、勤務表作成のツールにYoomを選んだ理由は、無料版の範囲で手動実行だけでなく、トリガー実行も対応しているためです。
今回はフローボットのみを使用して勤務表作成の自動化を行いました。
フローボット
他アプリと連携することで、様々なアクションを自動的に実行することが可能。
実行方法は、手動実行の他に、時間やフォームに情報を送信したタイミングをトリガーとして自動で実行させる方法がある。
入力フォーム
GoogleFormのような簡単なフォームを作成することができ、入力した情報をデータベースに保存したり、情報を更新したりすることができる。
データベース
一からデータベースを作成できるだけでなく、入力フォームの情報を蓄積したり、
他のアプリと連携して、データベースの情報を一つに集約したりすることもできる。
※100レコード毎の追加、更新でタスク実行回数1回分消費する
作成手順
①Yoomにログイン後、新規プロジェクトを作成します。ホーム画面から新規作成をクリックします。(アカウント作成とログインの手順は割愛してます)
②作成したプロジェクトが開くので、フローボットをクリックし、新規作成をクリックします。
作成方法を「はじめから作成」または「テンプレートギャラリーから作成」を選択します。
今回は「はじめから作成」を選択しました。
③フローボット作成画面が表示されるので、フローボットのタイトルと、説明文を入力します。
月初に起動したいので、トリガーは「特定のスケジュールになった時」を選択します。
④トリガーの設定画面が開くので、タイトル「月初の9時になったら」を入力し、スケジュール設定は「日付指定」、日は「1」、時刻は「9」を入力し、保存ボタンをクリックします。
トリガーが設定されました。初期設定ではトリガーがOFFになっているので、クリックしてONにしておきます。
↓
⑤次に、複製したファイル名に勤務表(202309)
のようにフロー実行日の年(yyyy)と月(MM)を設定したいので、取得する処理を追加します。+アイコンをクリックします。
オペレーションタイプの選択で「データを操作・変換する」をクリックします。
変換タイプの選択で、「正規表現によるデータの抽出」をクリックします。
タイトルに「yyyyを取得する」と入力して「次へ」をクリックします。
※yyyyMM(年と月を繋げて)で取得することもできますが、今回はyyyyとMMを別々に取得します。
抽出対象の文字列の欄をクリックすると、プルダウンが表示されるので、「今日」→「%Y%m%d」を選択します。
選択後は{{today_%Y%m%d}}
と自動で表示されます。
これでロボを実行した日の年月日がyyyyMMddの形式で取得されます。
ここから正規表現を使用して先頭のyyyyを抽出します。
抽出箇所を検索欄に正規表現の\d{4}
を入力します。
下のテストボタンをクリックすると、2023
が抽出されているので成功です。
※正規表現についての説明は割愛します。Yoom正規表現のヘルプ
最後にアウトプット名にyyyy
と入力して保存ボタンをクリックします。
アウトプット名は、他のアクションから年(yyyy)を呼び出す際に指定する変数名のようなイメージです。
⑥⑤と同様にフロー実行日の月(MM)を取得する処理を追加します。
流れは⑤と同様なので割愛しますが、正規表現を入力する欄で(?<=[0-9]{4})(.*)(?=(0[1-9]|[12][0-9]|3[01]))
と入力します。
⑦次に、GoogleドライブとYoomを連携して、勤務表フォーマットのスプレッドシートをコピーするアクションを設定します。+アイコンをクリックします。
オペレーションタイプの選択で「アプリと連携する」をクリックします。
どのアプリと連携するか聞かれるので「GoogleDrive」を選択します。
タイトルを入力し、Googleドライブと連携するため「連携アカウントを追加する」をクリックします。
アカウント選択画面が表示されるので、連携したいアカウントを選択します。
内容を確認し、「続行」をクリックします。
アカウントが連携されました。
アクションは「ファイルを複製する」を選択し、次へをクリックします。
次の画面では、どのスプレッドシートを複製するか設定します。
「ファイルID」に複製したいスプレッドシートのIDを入力します。
※スプレッドシートURLの●●●●●部分
https://docs.google.com/spreadsheets/d/●●●●●/edit#gid=0
「フォルダID」は複製したファイルを格納するフォルダIDを入力します。
※フォルダURLの●●●●●部分
https://drive.google.com/drive/u/0/folders/●●●●●
「ファイル名」には勤務表(202309)
のように実行日の年と月を設定したいので、まず勤務表()
と入力し、()
の間にカーソルがある状態にします。
その状態で、ファイル名欄をクリックするとプルダウンが表示されるので、⑤で設定したタイトル名yyyyを取得する
→アウトプット名yyyy
を選択します。すると勤務表({{yyyy}})
と表示されます。
同様にMMを取得する
→アウトプット名MM
を選択します。
最終的にファイル名が勤務表({{yyyy}}{{MM}})
と表示されていれば成功です。
すべて入力したら、一番下の「保存する」をクリックします。
⑧次に複製した勤務表スプレッドシートのD2セルに年(yyyy)、F2セルに月(MM)を入力する処理を追加します。
以下画像のようなイメージです。
+アイコンをクリックし、「アプリと連携する」から「Googleスプレッドシート」を選択します。
タイトルを入力し、アクションは「セルに値を入力」を選択し、次へをクリックします。
「スプレッドシートID」の設定では、プルダウンのアウトプットを入力
→勤務表フォーマットをコピーして新しい勤務表を作成する
(⑦のタイトル名)→複製したファイルID
をクリックします。
「シート名」は複製したファイルのシート名を入力し、「対象のセル」はyyyyを入力したいセルを設定します。
「値」では年(yyyy)を入力したいので、⑤で設定したタイトル名yyyyを取得する
→アウトプット名yyyy
を選択します。
全て設定し終えたら一番下の保存するボタンをクリックします。
⑨次は、勤務表スプレッドシートのF2セルに、月(MM)を入力する処理を追加します。
⑧と同様なので説明は割愛します。
⑩最後に、勤務表を作成し終えたら、通知メッセージを送信する処理を追加します。
+アイコンをクリックし、「アプリと連携する」から「Chatwork」を選択します。
⑦のGoogleドライブのアカウント追加の処理と同様に、Chatworkのアカウント追加を行います。「連携アカウントを追加する」をクリックします。
連携画面が表示されるので任意の方法で接続します。
内容を確認し「許可」をクリックします。
アカウントの追加が完了したら、アクションで「メッセージを送る」を設定し「次へ」をクリックします。
Chatworkのどのルームにメッセージを送信するか、ルームIDを設定します。
※送信したいルームIDのURLの●●●●●部分
https://www.chatwork.com/#!rid●●●●●●
または、ルームID欄をクリックすると、ルーム名が表記されたプルダウンが表示されるので、それを選択することでもルームIDを設定できます。
メッセージ内容は任意のメッセージを設定します。
画像下の「テスト」をクリックすると、指定したルームIDにテストメッセージを送信することができます。
正しくメッセージが送信されたことを確認したら、保存ボタンをクリックします。
⑪以上でフローが完成したので、動作確認をします。
編集画面を上までスクロールし、「<フローボット詳細に戻る」をクリックします。
アクションが上から順番に実行されていきます。
トリガーを月初の9時に設定しましたが、最初の起動はトリガーが無視されるようで、実行日が月初でなくても起動し、最後の通知のアクションまで進みました。
Chatworkに完了通知が届きました。
※送信者名はYoomと連携したアカウント名が表示されます。
Googleドライブを確認すると新しい勤務表が作成されていました!
ファイル名と、D2、F2セルにも日付が正確に設定されていました。
タスク実行回数について
今回は計7個のアクションでフローボットを作成したので、
1回の起動で、タスク実行回数は7回消費されます。
無料版の範囲で作成したい場合、月100回を超えないようにアクションの数を計算してフローボットを作成する工夫が必要そうです。
感想
タスク実行回数の制限はあるものの、無料版で、作成したフローの自動実行(トリガー設定)ができることに感動しました。
また、日付の取得方法がわからなかったので、Yoom画面右下のフォームから質問したところ、すぐに回答があったので、サポートも手厚いのかなと思います。
今回はフローボットしか使用できなかったので、他の入力フォームやデータベースを組み込んだツール作成にもチャレンジできたらいいなと思っています!