LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログ

Zapier × ChatWorkでちょっと面倒な日々のタスクを自動化する

フロントエンドエンジニアの岡田です。

LCLのエンジニアチームでは、積極的にリモートワークを行っています。私も週に2日は完全リモートワークで、他の3日間も在宅勤務と会社での勤務を併用しています。

そこでエンジニアチームで大切にしているのが、チャットツールでの情報共有です。 たとえば、リモートワーク開始時には以下のような連絡をしています。 f:id:lcl-engineer:20180120064942p:plain

また、デイリースクラムもチャットで行っています。 f:id:lcl-engineer:20180119115843p:plain

たったこれだけですが、毎日やっていると、改善点が見えてきます。

改善したいこと

勤務時間の連絡

  • 勤務時間を打つのが面倒(メモ帳からコピー&ペーストしていた)
  • Googleカレンダーの更新を忘れる(連絡した勤務時間とカレンダーが違っていることがあった)

デイリースクラムの投稿

  • チャットルームを探すのが面倒(1日1回しか使わないルームなのでピン留めするほどではない)
  • 同じルームに全員で投稿するため、あとから自分の投稿を見直しにくい

そこで、この課題をZapierを使って解消しました。

Zapierとは

Zapierとは、異なるウェブサービスをつなげて実行することのできるサービスです。例えば、Googleカレンダーに登録した予定をChatWorkへ通知する、といったことが簡単に実現できます。いくつか制限はありますが、無料で使えます。 zapier.com

今回はZapier × ChatWork連携(フリープランの範囲)で、毎朝の連絡を自動化してみました。

準備

ZapierをChatWorkと連携させる方法は、以下のページに詳しく載っています。 (ChatWork APIの申請が必要です) blog-ja.chatwork.com

設定

とても簡単なので、画面に従って登録していくだけで完成します。 ここではポイントを説明します。

勤務時間の連絡

まずは、勤務時間の連絡の設定です。

Googleカレンダー

先にGoogleカレンダーを登録します。 以下のように設定しています。 f:id:lcl-engineer:20180118175653p:plain

Zapier

次はZapierの設定です。 1つめのTRIGGERにはGoogleカレンダーを選び、「Event Start」を選択します。 f:id:lcl-engineer:20180118161139p:plain

オプションは以下のように設定しています。 f:id:lcl-engineer:20180118165724p:plain Time Beforeを、40分前に設定しているのは、けっこうな頻度で遅延が発生するためです。 以前、30分以上遅く通知されたことがあったので、40分にしています。

Search Termにテキストをいれると、イベントのフィルタリングが可能です。ここでは「在宅」というキーワードの入ったイベントのみで絞り込んでいます。なお、キーワードはカレンダーのタイトル(summary)だけでなく、詳細部分(description)も検索してくれるのが便利です。

Test this Stepでは、設定内容を確認することができます。 「view your event」というリンクを押すと、取得したデータが表示されます。 f:id:lcl-engineer:20180118170646p:plain

ここで表示されない場合は、設定に問題のある可能性があります。 表示されない場合は以下を確認すると良いと思います。

  • 「Re-test Google Calendar to get another event」ボタンを押してイベントを再取得してみる

  • Edit Optionsページに設定した条件のカレンダーイベントが存在するか確認
    今回の設定の場合、40分以内に「在宅」というキーワードの入ったイベントがGoogleカレンダーにあるか

  • Googleカレンダーのテストをする
    以下の画面で「Test」ボタンを押します。ボタンが「success!」に変われば成功です。 f:id:lcl-engineer:20180118164921p:plain

ChatWork

イベントが取得できたら次はChatWorkに通知します。 設定画面は以下のようにしています。 f:id:lcl-engineer:20180119082016p:plain カレンダーのタイトル(summary)と詳細部分(description)、時間等を組み合わせてメッセージを作っています。 ChatWorkの絵文字も入れられます。

実際の投稿です。
f:id:lcl-engineer:20180120064616p:plain
24時間表記の方が好みですが、時間の形式が変えられないので諦めました。
絵文字が入って楽しそうな雰囲気になりました。

効果

これで以下の問題が解消されました。

  • 勤務時間を打つのが面倒
    →カレンダーイベントを繰り返し設定にすることで毎回入力しなくて良くなった
  • Googleカレンダーの更新を忘れる
    →予定変更時もGoogleカレンダーの更新忘れがなくなった

デイリースクラム

次は、デイリースクラムの設定です。

Googleカレンダー

本来の使い方からは外れてしまいますが、こちらもGoogleカレンダーを使います。その理由は、フリープランには、2つのサービスまでしか連携ができないという制約があるためです。1つはChatWorkを使うことが決まっているので、残り1つのサービスで以下の2つができなければなりません。

  • 特定の時間になったら実行
  • 任意のテキストを保存できる

この2つを満たすのは、Googleカレンダーしか思いつきませんでした。 Zapierの連携サービスはたくさんあるため、もしかすると他にもあるのかもしれません。

イベントは、以下のように設定しています。 f:id:lcl-engineer:20180119114152p:plain このイベントは、自分以外の人に見せる必要はないので、非公開にしています。

description欄にURLを入れる場合は、リンクを消しておく必要があります。
f:id:lcl-engineer:20180120071312p:plain
リンクが付いたままにしておくと、ChatWork投稿時にhtml形式で出力されて、崩れてしまいました。

Zapier

次はZapierの設定です。 こちらも「Googleカレンダー」「Event Start」を選択し、オプションは以下のように設定しています。 f:id:lcl-engineer:20180119114632p:plain

ChatWork

ChatWorkの設定画面は以下のようにしています。 f:id:lcl-engineer:20180119115351p:plain

ChatWorkのタグも入れています。

実際の投稿は以下のようになります。 f:id:lcl-engineer:20180119115843p:plain

効果

これで以下の問題が解消されました。

  • チャットルームを探すのが面倒
     →時間になると自動で投稿されるので探さなくて良い
  • 同じルームに全員で投稿するため、あとから自分の投稿を見直しにくい
     →カレンダーに入っているので確認しやすい

まとめ

Zapierは、設定が簡単で気軽に導入できるのが良いですね。 他にもいろいろなタスクを自動化していきたいです。