KyashでのZapierによる自動化を紹介する

Kyashの@konifarです。

Kyashでは2019年4月頃からZapierを使って定型的な業務を自動化しています。Zapierはプログラミングの知識や経験がなくてもポチポチしていくだけで様々な自動化ができるのがとてもよいですね。今回はKyashで実際に動いているZapをいくつか紹介したいと思います。

内容の簡単な紹介にとどめるので、もし詳しく中身を知りたい人がいたらDMなどで気軽に聞いてください。

1. Slackコマンドで休暇予定を勤怠カレンダーに登録して勤怠チャネルに通知

/休む 2020-08-01 夏休みとります のようにSlackコマンドを打つと、勤怠カレンダーに登録した上でSlackの勤怠チャネルに周知されます。

f:id:konifar:20200731004131p:plain

Triggerを Webhook by Zapier にしてSlackコマンドで発火するようにし、SlackのActionを使ってメールアドレスを抽出してカレンダー登録したりして実現しています。これはnote株式会社の岡野さんにレクチャーしてもらって最初に作ったZapでした。想像以上にスッとメンバーに浸透して使われています。

2. 毎朝9時に休暇取得者をSlackに通知

勤怠カレンダーのタイトルに 休み と入っている人の一覧を朝の9時にコメントしてくれます。誰が休みなのか朝把握できるので便利です。

f:id:konifar:20200731005659p:plain

既存のGoogle CalendarのActionだと複数のイベントを取得して何かするというのができなかったので、ここはPythonのコードを書いて実現しています。詳しくは ZapierでGoogleカレンダーの複数のイベントを取得する - Konifar's WIP をご参照ください。

3. 新しいSlack絵文字が追加された時にSlackのemojiチャネルに通知

そのまんまです。もともと雑談チャネルに通知するようにしてたんですが、わりと高頻度にemojiが追加されて邪魔だったので専用のチャネルを作りました。

f:id:konifar:20200731011011p:plain

これはZapier社内講習会をやった時にデモで作ったZapだったんですが、雑談のきっかけにもなってていい感じです。

4. 定例ミーティングのKibela作成

KyashではドキュメントツールにKibelaを使っています。まだα版ですがKibelaはZapierのActionに対応しているので、Kibelaを作成 => カレンダーの予定詳細にリンクを追記 => Slackチャネルで周知 という流れをZapにしています

f:id:konifar:20200731011907p:plain

ひとつだけ不満なのは、KibelaのActionにテンプレートから作成する機能がないことですね。対応を心待ちにしています。

5. 新しいSlackチャネルが作成されたら通知

そのまんまです。これがないと新しくチャネルが作られた時に気づけないので重宝しています。

f:id:konifar:20200731012210p:plain

新しいチャネルなんて把握できなくても問題ないじゃんと思われるかもしれませんが、作成されたチャネルがわかるとどんなことが動いているのかざっくり把握できて意外と便利です。

6. Slackチャネル名が命名規則に沿っていなかったら通知

新しいSlackチャネルが作られた時に、名前が命名規則に沿っていなかったら通知するようにしています。

f:id:konifar:20200731012520p:plain

チャネル名のフィルタする条件をわりと愚直に書いて実現しています。もう少しスマートにやれるといいですが、命名規則はそう頻繁に変わるものではないので今のところ問題はないです。

7. 月末日に勤怠締めのリマインドをSlackチャネルに通知

勤怠の締め処理をスムーズに行うべく、リマインドをしています。

f:id:konifar:20200731013017p:plain

土日祝日を加味した月末をどう判断しているかというと、36ヶ月先までベタ書きで条件を書いて実現しています。月1の通知くらいならそのやり方が一番楽じゃないかと思います。

8. Googleフォーム送信されたらSlackチャネルに通知

様々なGoogleフォームの送信内容を適切なSlackチャネルに通知しています。例えば会社のバリューを体現していると感じた人を投稿するフォームが送信されたら雑談チャネルに通知されます。

f:id:konifar:20200731013627p:plain

他にも経理や財務、Bizチームでもいくつかのフォーム送信の通知に活用しています。

9. Kyash GitHub orgにpublicリポジトリが作られたらtechチャネルに通知

間違えてpublicリポジトリで作ってしまった、という事故が起きないように通知しています。

f:id:konifar:20200731014459p:plain

これはテストとして送信したもので、今のところまだ発火したことはありません。

10. Slackのグループメンション時にMulti Channel Guestにもメンション

Slackの仕様上、Multi Channel Guestはグループメンションに追加できません。例えば業務委託で複数のQAのメンバーにMulti Channel Guestで入ってもらった場合など、個別でメンションするのはちょっと不便です。そのため、特定のグループメンション時にスレッドで個別メンションされるようにしています。

f:id:konifar:20200731015139p:plain

11. 提携サービスの障害メールをSlackチャネルに通知

提携しているサービスの障害メールが届いたら、少し整形した上でSlackチャネルに流しています。担当者だけではなくチーム全員がいち早く障害情報をキャッチできます。

f:id:konifar:20200731015649p:plain

障害の対応はある程度フローが固まっているので、もう少しZapierで自動化できそうな気はしています。

12. 毎朝10時に直近のリリース予定をSlackのチャネルに周知

Kyashではリリースカレンダーにリリース関連の情報を全て記入しています。以前リリース予定をCSチームやマーケチームが把握しにくいという問題があったため、リリースカレンダーの情報をサマリしてSlackチャネルに流すようにしました。

f:id:konifar:20200731020500p:plain

既存のGoogle CalendarのActionだと複数のイベントを取得して何かするというのができなかったので、これもPythonのコードを書いて実現しています。Zapierでコードを書くとなんだか少し負けたような気持ちになりますが、まあ役に立っているのでよしとしましょう。

13. Google Play Storeに新しいバージョンのアプリが公開されたらSlackのチャネルに通知

新しいバージョンのアプリが公開されてインストール可能な状態になると、Store Consoleに登録したメールアドレス宛てにメールが届きます。それをSlackに通知しています。

f:id:konifar:20200731091927p:plain

同じように、iOSApple Storeの審査通過などもメールのTriggerでZapierで通知しています。

14. ジョブカンに打刻した時にリモートっぽい文字が含まれていたら指定したSlackのチャネルに通知

Kyashでは勤怠管理にジョブカンを利用していて、Slackで打刻できます。 /jobcan_touch リモート開始します #チャネル名 のようにコマンドを打つと、指定したチャネルにメッセージが飛びます。

f:id:konifar:20200731092647p:plain

今はコロナの影響で全員リモート勤務になっているので、もしかしたらリモート開始や終了の連絡自体Slackに流す必要はないかもしれませんね。会社のルール次第で廃止する可能性はあります。


最初は1人でいじっていたZapierでしたが、今では様々なチームメンバーが自分たちで自動化に取り組むような雰囲気になってきて嬉しいかぎりです。Zapier楽しいですね。

ちなみにKyashは2020年7月現在絶賛採用強化中です。もし興味を持っていただけたら気軽に応募してください。 open.talentio.com

また、もしZapierの設定をもっと詳しく知りたい人がいたらTwitter DMなどで気軽に聞いてください。