私、いわゆるExcel職人と呼ばれるほど、マクロが得意だったのですが、脱エクセルの風潮が強く、マクロに変わる業務効率をアップさせるツールとしてGASが注目されています。私自身、フロントエンドはほとんどタッチしたこともないこともあり、JavaScriptは初心者でして、JavaScriptベースのGASはツール等を積極的に作ることで学んでいるところです。(マクロもツールを多く作っていくことで学んでいった)
そんな私が作ったツールを紹介します。今回はGmailをインプットにAsanaにタスク登録をする、というツールです。
目次
ツール作成の背景
メールを受信した後にやらなければいけないタスクってたくさんありますよね。今回の例でいうとお問い合わせフォームから送信されたメールに返答したかどうかを管理したい、というのが要件です。1日に何通も届いたりするときもあり、あれ?返信したっけ?となることが多くありました。読んで回答を頭でさっと考えるので、送ったつもりになってる感じです。なので、いちいち送信メールを確認していました。こういったちょっとした作業を効率化していく必要があり、よしツール作るか、となった次第です。
この例以外にも、例えばワークフローシステムから「承認依頼が届いています」といったメールが届いたら自動でAsanaに登録、等利用用途に応じて幅広く使えるかと思います。
そもそもGASって何ですか?
GASとは「Google Apps Script」の略でGoogleが提供しています。公式によるとこのように表現されています。
Apps Script は、Google Workspace の統合、自動化、拡張のためのビジネス ソリューションをすばやく簡単に構築するための唯一のローコード プラットフォームです。Apps Script を使えば、ビジネス ユーザーは本格的なソフトウェア開発の経験がなくても、Google Workspace 上にカスタム ソリューションを構築できます。Apps Script は、Gmail アカウントをお持ちであればどなたでもご利用いただけます。
引用元:Google Apps Script
横文字が多く分かりにくいですが、表面的にはExcelのマクロのようなもの、とイメージして頂ければわかりやすいです。GASはGoogleから提供されているだけあって、Googleのサービスと親和性が高いです。Google Workspace(旧GSuite)を利用している方は、GASを少し触ってみると色々な部分で業務生産性が上がるかと思います。
GASの始め方はまた別の記事で記載します。GASを利用出来る環境がある前提で進めます。
Gmailから特定のメールをGASで抽出してAsanaに登録する方法
簡単な仕様
簡単な仕様はこんなところです。
- GmailからAsanaに登録したいメールを検索
- Asanaにはタスク名はメール件名、説明にメール本文をセットして登録する
- 登録済のメールはスターを付けて、次回以降2重登録を抑止する(ラベル分けしたりでも可)
サンプルスクリプト
getMail:メールを検索する関数
(補足)1行目の「subject:(“WPからのお問い合わせ”)」を適切な検索条件に変更してください。Gmailは強力な検索方法が用意されています。別途、記事にしたいと思いますが、詳細はこちらを参照してください。また、この部品は幅広く汎用的に使えるかと思います。メールの検索条件とputTask関数の呼び出し部分を変えることで、例えばスプレッドシートに出力したり、等色々使えそうです。
putTask:Asanaにタスク登録する関数
(補足)workspaceId等、*で潰していますが、以下の方法で確認した数値を設定してください。
- workspaceIdは管理者コンソールのURLから確認できます
- projectIdはタスク登録したいプロジェクトのURLから確認できます
- userIdはAsanaにログインしている状態で、以下URLを実行すると確認できます。
URL:https://app.asana.com/api/1.0/users
AsanaManager:Asanaマネージャクラス
このnoteを参考に、今後も汎用的に利用出来るようにクラス化しました。他のAPIもいれていって拡充させていきたいですね。
トリガー(自動実行)設定
作ったものを自動実行しないとですね。目覚まし時計のようなアイコンのトリガー画面からこのように設定し、保存すれば完了です。
実行する関数はgetMailを選択し、この例では1時間おきにcronのような形で自動実行されます。
参考リンク
- Asanaガイド:https://asana.com/ja/guide/help/api/api
- な~@GASブログ更新中さんのnote:https://note.com/gasnao703/n/nfef4b8ae1f5b
コメント