ジンジニアニッキ!

人事→Opsな人のニッキ。真面目なことも、そうじゃないこともごっちゃで書いてます。

「入社手続きとオンボーディング予定を自動化した話」の補足

社のPodcastで自動化について話しました。
anchor.fm

まじで話すのが苦手で、何やったのかが全然説明できてなかったので、テキストで補足します。

前段

詳しくはPodcastを聴いていただければと思いますが、10Xでは入社する方の手続きやオンボーディングの施策を実施しています。
その中で、各種オリエン・1on1・Podcast収録(←これは10Xの特徴かも)というイベントがあり、その予定を押さえるのが細々と大変だったのでカレンダーを押さえるという部分の自動化を担当しました。

やったこと

やったこと自体はめちゃくちゃシンプルで、スプレッドシートに入社日を登録したらZapier経由でカレンダーに予定を入れるだけです。
f:id:mameco0417:20210602170710p:plain

元々、作業のチェックシートとして運用しているスプレッドシートがあったので、そこにいくつか情報を追加しました。
社員番号とチェックボックスを入れるとZapierが発動されます。
f:id:mameco0417:20210602171309p:plain

Zapierと連携させるためのデータは別で作っています。
このスクショでいうと、A~Fはvlookupで先ほど入力したシートから取ってきた部分。
J~Lはスプレッドシートの関数で、該当するオンボーディングイベントの日付を計算しています。
f:id:mameco0417:20210602171717p:plain

工夫(というか妥協)したところ

日付の取り扱い部分をスプレッドシートの関数にしました。
これは、10Xでは入社日を柔軟に対応していることが主な背景です。

例えば、「入社後1ヶ月面談」というのがあり、入社日から1ヶ月後に実施されます。
仮にですが2021/6/3(木)に入社すると入社後1ヶ月面談は2021/7/3になるわけなのですが、この日は土曜日です。
カレンダーの予定は当然後から動かせるわけなのですが、こういった土日に設定するのはできれば最初から排除しておきたいです。

他にも、Podcastの収録は「入社日から1ヶ月経過以降の金曜日」に設定することになっています。
技術者の方であればシュシュっと書けるのだろうと思っているのですが、非エンジニアの自分にはコードで実装するには難易度が高いものでした。

その点、スプレッドシートにはWORKDAYという関数があり、これを使えば簡単に土日を排除できます。
support.google.com
また、SEQUENCE関数とFILTER関数を使えば、曜日の指定もできます。
support.google.com
support.google.com


活用しているシートではF2セルに入社日が記入されているのですが、入社日の1ヶ月後は

=WORKDAY(EDATE(F2,1)+1,-1)

と記載しています。
で、この1ヶ月後のデータがJ2セルに入っているので、「入社日から1ヶ月後以降の金曜日」は

=filter(sequence(7,1,J2+1),weekday(sequence(7,1,J2+1))=6)

という感じです。

カレンダー自動化の実装を今、見直してみて

短時間でぱぱっとやりたかったので、割と無理やりやなーという感じがあります。
手続きに必要なデータの見直し(スプレッドシート自体の項目部分)をもう少し丁寧にみて、手作業を削減できるとよかったなと。
とはいえ、日付の扱いに関してはスプレッドシートの関数を活用したことで技術者以外にもメンテしやすく、オンボーディングのコンテンツを見直した際など、自分以外の人が修正することも容易になっていると思います。


今回はWORKDAY関数を用いて土日の排除のみを行いましたが、日本は祝日が多いので、祝日の排除も実装できるとより便利そうです。
時間がある時に実装してみようと思います。