Money Forward Developers Blog

株式会社マネーフォワード公式開発者向けブログです。技術や開発手法、イベント登壇などを発信します。サービスに関するご質問は、各サービス窓口までご連絡ください。

20230215130734

Zapier × Slack × asanaでタスク管理とユーザーコミュニケーションを効率化する

こんにちは。

マネーフォワードビジネスカンパニー所属の下村です。 ビジネスサイドエンジニアとして、日々業務自動化や、効率化を推進してます。 (以前はCIO室に所属していましたが、ビジネスサイドの業務をテクノロジーで効率化したい!と思い異動しました。)

本日は、社員からの問い合わせや作業依頼についての対応を効率化してみた記事を書いてみます。

この記事の要約

  1. Slackとasanaを併用するうえで、両者のメリットを最大限活かしつつ、デメリットを消せる運用を自動化してみた。
  2. 依頼者とのコミュニケーションはSlackに統一。
  3. 対応者はタスク管理はasana、依頼者とのコミュニケーションをSlackで行いつつ、スレッドでのやり取りをasanaタスクのコメントに記録するようにした。
  4. 上記方法の実現にZapierを使ってノーコードで実現した。

なぜやったか

下記のような課題があったため、Slackやasanaの良いところを最大限、活かしつつタスク管理したいなーと思ったためです。

  • 依頼者とのコミュニケーションはSlackで行うのが便利なのでSlackで行いがち。
  • ただ、Slackはタスクの優先度付けやToDo管理には向いていない...。
    • 「あれ?あの質問内容どのスレッドでやりとりしてたっけ...」となりがち。
  • そこでasanaでタスク管理をしようとするが、下記のような問題点が起きがち。
    • Slackの投稿内容をasanaに転記するの漏れがち。
    • asanaのタスクだけを見ても何やってたか忘れてしまい、Slackのスレッドの内容を再確認して時間を無駄にしがち。

という感じで、まあ...

わけです。

なので、asanaでタスク管理をしつつも、コミュニケーションはSlackに全て寄せる、しかもそれを実現する手間は省きたい ということでZapierに頼ることにしました。

どうなったか

こんな感じになりました。 依頼者はSlackで グループメンション付き で投稿してくれれば 自動で asanaタスク化され、 対応者は依頼者に質問したい場合は、 該当のSlackスレッド でやりとりをすればasanaタスクのコメントに 自動で 投稿内容が記録されます。 とても便利&ラクチンです

どうやって実現したか

前述のとおり、Zapierを使いました。

作成したZapは下記2つです。

  1. 特定チャンネルにグループメンション付きの投稿があった場合、asanaタスク化等をするZap
  2. スレッドの内容をasanaコメントに追記するZap

Zapの設定内容(事前準備編)

※以降はZapierの設定方法なので、長文になります。 不要な方は読み飛ばしてください。

上記Zapを使う前に下記を準備する必要があります。

  1. 課金済Zapierアカウント
    • Freeプランだと多段構成のZapが作れないので課金必須です。
  2. 空のスプレッドシート

    • 何でもいいです。SlackのスレッドURLとasanaのタスクURLを記録するためだけのスプレッドシートです。(DB代わりに使います)
    • 1行目のA列に「slack」B列に「asana」C列に「description」という列を作成してください。
  3. Zapに反応させたいSlackグループとそのグループID

    • 今回用に新規に作成しても、既存のものを流用してもどっちでもいいです。
    • グループIDが必要になるので下記手順で確認してください。
      1. ブラウザでSlackを開いてグループメンバーの管理画面を開く。
      2. URLが https://app.slack.com/client/T02xxxx/C03CXxxxxx/user_groups/S03CZxxxxx といった形式になっているので末尾のIDをメモする。
        • ※このケースの場合は「 S03CZxxxxx 」です。
  4. 連携させたいasanaプロジェクトの作成(新規に作成しなくても既存のものでもOKです)

Zapの設定内容(asanaタスク作成Zap設定編)

  1. asanaタスクを作成するZap を開く。
  2. トリガー1: Slackのメッセージ投稿を検知
  3. トリガー2: メッセージ内容にグループメンションが含まれているか確認
    • 事前に確認したグループIDを下記のような形で指定します。
  4. トリガー3: asanaタスク作成
  5. トリガー4: asanaタスク作成した旨をSlack通知
  6. トリガー5: クエリストリングが含まれない純粋なSlack URLを取得したいため、URLを加工
  7. トリガー6: スプレッドシートにSlack URLが記載済じゃないか確認(重複記録の防止)
  8. トリガー7: トリガー6の結果チェック
  9. トリガー8: トリガー6,7のチェックの結果、スプレッドシートにSlackのスレッドURLが記載されてなければスプレッドシートに記載する。

Zapの設定内容(Slackスレッドの内容をasanaタスクに追記)

  1. asanaコメントに追記するZap を開く。
  2. トリガー1: Slackのメッセージ投稿を検知
    • asanaタスク作成Zapのトリガーと同じ内容なのでスクショは割愛。
  3. トリガー2: スレッドに投稿されたメッセージか判別
    • thread_tsというクエリストリングがあればスレッド投稿なのでそれを利用して判別
  4. トリガー3: クエリストリングに記載されている親スレッドのタイムスタンプから.(ドット)を削除する
  5. トリガー4: スプレッドシートにSlack URLが記載済か確認して、あればSlackURLやasanaURLを取得。
  6. トリガー5: トリガー4の結果チェック
    • asanaタスク作成Zapのトリガー5と同じ内容なのでスクショは割愛。
  7. トリガー6: asanaプロジェクトのGIDを取得するため、asana URLを加工①
    • (これreplace関数でも良かったかも...)
  8. トリガー7: asanaプロジェクトのGIDを取得するため、asana URLを加工②
  9. トリガー8: asanaプロジェクトの"タスクGID"を取得するため、asana URLを加工
  10. トリガー9: asanaのコメントに記載。
    • コメントのことをasanaではstoryと呼ぶらしい。

おわりに

考えることはそれなりにありましたが、Zapierでうまく構成できたので、開発不要で便利な環境ができました。 ノーコードなので、そこまで労力なく快適なasana × Slack環境が構築できるのでぜひ。

なお、マネーフォワードでは、「すべての人のお金の悩みや課題を解決したい」という想いをともにするエンジニアを募集しています。 私が所属するビジネスカンパニーでも募集をしているのでぜひご応募ください! (ビジネスサイドのカオスな課題をテクノロジーで解決したい!と思える方は最適な環境です)

https://hrmos.co/pages/moneyforward/jobs/MFBCbiz208


マネーフォワードでは、エンジニアを募集しています。 ご応募お待ちしています。

【会社情報】 ■Wantedly株式会社マネーフォワード福岡開発拠点関西開発拠点(大阪/京都)

【SNS】 ■マネーフォワード公式noteTwitter - 【公式】マネーフォワードTwitter - Money Forward Developersconnpass - マネーフォワードYouTube - Money Forward Developers