Smartsheet と Webex Bot でプロマネ業務を自動化してみた【ノーコード】

# プロマネ業務を自動化して工数を削減したい

エンジニアであっても、プロジェクトマネージャを兼務する場合があります。でも、本気でプロジェクトマネジメントをしてると、本業がおろそかになっちゃいますよね。

そこで、プロジェクトマネジメント業務の中で時間を割かれる「進捗管理」業務の一部を、SmartsheetとBotで自動化してみました。

# SmartsheetでWBSを作る
まずはSmartsheetを使って、作業工程を小さなタスク単位まで分解した WBS(Work Breakdown Structure) を作ります。
![wbs-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/19c1900f-9a53-29d0-7f62-090fe77dfeb1.jpeg)

Smartsheet の公式サイトに、WBSの作り方やテンプレートも用意されています。

https://jp.smartsheet.com/content-center/project-management/wbs

なお、Botが進捗管理できるよう、WBSには最低限以下の5つのフィールドを含めるようにします。

* タスク名
* 開始日
* 終了日
* 進捗率
* 担当者



# Webex Bot と webmethods.ioアカウントを無料で作る

まずは WebexのBotを作ります。「[Webex for Developers](https://developer.webex.com/)」 にて無料で簡単に作成できます。

次に、Botを動作させるiPaaSの環境として「[Webmethods.io](https://www.softwareag.cloud/site/product/webmethods-io-integration.html#/)」を利用するため、そのアカウントを作成します。

Webex のBotの作成手順やwebmethods.ioのアカウント作成手順は、以下の記事を参照してください。

https://gblogs.cisco.com/jp/2021/06/makebotbywebmethods-io/

　
Botが作成できたら、BotのTOKENを後で利用しますので、大切に保管しておきましょう。

　


# プロジェクトメンバーを入れたスペースを作る

次に、プロジェクトメンバーを入れたWebexのスペース(作業場)を作成します。

Webex アプリの上部「+」ボタンを押し、スペース名を入力して、プロジェクトメンバーを追加します。作成したBotを追加することも忘れないようにしましょう。
![webexapp-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/8346e641-f50e-fd45-4082-cbfe1e300129.jpeg)

　
Webex上にスペースができました。このスペース上で、BotがWBSに基づく進捗管理をしていきます。

![webexapp2-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/d50d258d-0d4a-90a4-3a8b-f7874e62aedd.jpeg)


# Botが進捗管理するよう仕掛ける

最後に、最も重要な、Botの進捗管理機能の実装をします。

以下の機能を [webmethods.io](https://www.softwareag.cloud/site/product/webmethods-io-integration.html#/) 上でノーコードで実装していきます。


**機能A: 開始期限を迎えているのに進捗が無いタスクを洗い出し、通知する**
A-1: Smartsheet上のWBSの中身を読み取る
A-2: 一つ一つのタスク(行)をチェックし、開始期限が過ぎているものを見つける
A-3: 該当するタスクの一覧をBotがWebex上に投稿する

**機能B: 完了期限を迎えているのに完了していないタスクを洗い出し、通知する**
B-1: Smartsheet上のWBSの中身を読み取る
B-2: 一つ一つのタスク(行)をチェックし、完了期限を超過しているタスクを見つける
B-3: 該当するタスクの一覧をBotがWebex上に投稿する

　
機能Aと機能Bはほとんど同じ内容なので、機能Aをどのように実装したのか解説していきます。


## 機能A: 開始期限を迎えているのに進捗が無いタスクを洗い出し、通知する

機能Aのwebmethods.io上のフローの全体像は以下のようになりました。毎週月曜日と木曜日の指定の時間になるとトリガが発動し、フローが実行されます。
A-1からA-3の部分について細かく見ていきましょう。

![bot1-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/bd63157a-0573-cd53-9cba-5fa34833c10d.jpeg)




### A-1: Smartsheet上のWBSの中身を読み取る

最初に作成したWBSのSmartsheetを、「Get Sheet Details」機能で読み出します。

![bot1-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/874a4b82-dcae-24bd-4640-7e5fe3bb92e3.jpeg)


### A-2: 一つ一つのタスク(行)をチェックし、開始期限が過ぎているものを見つける

「Loop」機能を使って、WBSのひとつひとつの行を読み出し、そのタスクの開始日と今日の日付を比較をします。

![bot2-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/6ae2333d-fe75-72e3-77e3-4af845a27f70.jpeg)

開始日を過ぎているタスクのうち、進捗率が0%のものを見つけて、そのタスク名やオーナーをファイルに書き出します。
![bot3-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/230344bc-9f7e-d385-4738-0d1c2436a5a9.jpeg)


### A-3: 該当するタスクの一覧をBotがWebex上に投稿する

開始が遅れているタスクをファイルに書き出したら、最後にそのリストをBotがWebexのプロジェクトスペースに投稿します。
![bot4-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/84eb4fb5-6b80-6d52-bf80-9444ae0b9cee.jpeg)


毎週月曜日と木曜日の指定の時間になると、開始が遅れているタスクの一覧をBotがWebexスペース上に投稿し、進捗の報告を求めます。

![webexapp3-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/70a3bc9e-0396-6ec2-d86a-7356b80d80c8.jpeg)


機能Bの、期限超過タスクを通知する機能についても、同様に実装しました。以下のようにBotがWebexのスペースに投稿をします。

![webexapp4-q.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909320/b684f0e3-dad9-74af-69bd-850768325e2f.jpeg)



# さいごに

Botを使って、進捗管理の一部を自動化することができました。非常に簡単で、他のプロジェクトマネジメント業務にも応用できそうです。プロジェクトマネジメントは手作業でやると時間のかかる業務が多いため、積極的に自動化していきたいですね。

こういったBotでの自動化に加えて、WebexのWeb会議機能(Webex Meetings)には、まもなくAIを使った日本語の議事録作成機能(有償オプション)が搭載される予定になっています。
プロジェクトマネジメントの業務で忙しい方は、こういったテクノロジの活用を検討してみてはいかがでしょうか。
　

# 免責事項

本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、私の所属する組織の意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、私の所属する組織や他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任から私の所属する組織を免責することに同意したものとします。