1000件以上の大量メールをRPAで送付する方法

RPA化の対象業務の代表的なもののひとつにメール配信の自動化があります。
その中でも条件分岐によって配信内容を切り替えるような場合は、配信する数が多いとロボットの設計次第では実行時間がかさんでしまうケースも起こりえます。
そのため、速く正確なロボットを作成するには、RPAツールの特徴に合わせた設計を組み込むことが重要になります。

実際に私が過去に携わった「1000件以上の大量メール送信業務」も、メールの本文が宛先ごとで可変になる等の条件があり、手動で行うと作業時間が30時間以上になるため、どのようにしてRPAで稼働時間をいかに削減するかが検討されました。
ただ、RPAツールの特徴に合わせて設計を考え直したところ、稼働時間30時間以上から約1時間までの稼働時間に抑えることができました。


本日は、私たちの成功事例を踏まえて「1000件以上の大量メール送信業務」の開発で稼働時間を大幅に短縮できた方法をご紹介させていただきます。

1000件以上大量のメールを送る必要がある業務を自動化する際の懸念点

画面操作でメール送信処理を行うのは、現実的な設定方法ではない

1000件以上の宛先にメール送信をする際に、宛先ごとに内容が可変になる場合、
まず、簡単な設定方法として宛先ごとに、可変になる内容をレコーダー機能とキーボード操作機能を組み合わせて設定する方法があります。
この方法は、実際にOutlookを立ち上げて、画面操作をすることで、可変の内容を処理することが可能で、設定方法がとても簡単です。
しかし、上記の方法は、1件送信につき、2~3分程度の送信時間がかかってしまっていたため、1000件のメールを送信した場合、約30時間以上にもなります。
上記の設定方法では、RPA稼働時間が現実的ではありません。
では、1000件以上の大量メール送信を行う業務を現実的なRPAにする為には、どうすればよいのか。
次のフェーズにて、その現実的な方法をご紹介します。

自動化する際にロボットの稼働時間を抑えるポイント

1番時間がかかる処理はバックグラウンドで行うように設定することで時間を短縮!

1000件以上の大量メール送信を行う業務をRPA化する際の処理時間を抑える方法として、RPAツール内のEメール送信機能を使用した方法があります。
RPAツール内のEメール送信機能のメリットとしては、バックグランドで操作を行う為、処理時間を短縮することができます。
一方でデメリットとしては、今回のように、宛先ごとに内容が可変になる業務は、バックグランド操作でメール本文の可変箇所を設定する方法がかなり複雑になることが挙げられます。
ただ、どの部分が可変で、どの部分が固定なのか、要素をしっかり整理すれば、複雑な設定をより簡単に設定することが可能です。

次の章では実際に私が上記のような業務を担当した際に、どのように工夫して開発に成功した事例を紹介いたします。

1000件以上大量のメールを送る必要がある業務の自動化事例

稼働時間24時間以上のRPAを1時間弱まで稼働時間を削減することに成功!?

今回は、Automation 360を使用して、1000件以上の大量メールを送る必要がある業務の自動化成功事例を紹介します。

<業務内容>
賞味期限切れの商品を仕入れた店舗に賞味期限切れの商品があることをメールでお知らせする

上記業務内容を自動化する上で、以下の課題点が出てきました。

課題点

<課題1>
1.送信先の店舗ごとで期限切れ商品の品目数が異なる為、メール本文の内容が可変となる
2.1の課題点を解決する為に、メール送信の処理をレコーダー機能とキーボード操作で設計すると、RPAの稼働時間が24時間以上になってしまう

課題1を解決する為に、画面操作でメール送信を行うように、設計しておりました。
メーラーの立ち上げから送信完了迄、1件あたりが2~3分だったので、送信件数が少ない場合は、こちらの設定方法でも問題ないです。しかし、後々業務ユーザーに確認すると、実運用する際に1000件以上の店舗にメールを送信しないといけないと発覚し、次の課題が出てきました。

<課題2>
全件のメールを送信するだけでロボットの稼働が24時間以上かかってしまう

原因としては以下の2点が考えられます。

  1. メーラーの1回ずつ立ち上げるのに時間がかかる
  2. メール本文に入力するデータを1回ずつ抽出するため時間がかかる

両方の課題を解決するためには、

  1. RPAのメーラーの立ち上げ時間を短縮する為に、メール送信機能を使ってメールを送信する
  2. メール本文に入力する可変のデータをRPAの変数やマージ機能を使ってまとめて抽出する

具体的には以下業務フロー図をご参考ください。

<業務フロー図>

改善方法<テーブル変数とマージの設定方法>

上記業務フロー図の1-7のIF分岐が1回目なら、品目内容の1行目をテーブル変数から文字列変数に格納する。
列数が決まっているので、テーブル変数の枠を以下の通りに設定します。

<マージ1回目の設定例>
$tTableData[0][0]$$String:Tab$$tTableData[0][1]$$String:Tab$$tTableData[0][2]$
>sEmailBody に代入

2回目以降の場合は、本文記載用変数に改行を追加し、その後1回目の取得時と同様にテーブル変数を設定します。

<マージ2回目以降の設定例>
例:$sEmailBody$$String:Enter$$tTableData[0][0]$$String:Tab$$tTableData[0][1]$$String:Tab$$tTableData[0][2]$
>sEmailBody に代入

<Automation360の設定画面>

上記設計を元にロボットを開発したところ、当初想定したRPAの稼働時間を33時間から約1.3時間まで削減することに成功しました。

RPA稼働時間の詳しい内訳は以下の通りです。
改善前
メール送信1件につき 2分✕1000件=約33時間
改善後
メール送信1件につき 5秒✕1000件=約1.3時間

同じ処理を行う業務でもRPAの設計次第で削減効果には大きな差が生まれます。
RPAで自動化したものの処理時間が大きくなり、期待した削減効果を得られていないロボットはございませんか。
弊社では、上記以外にも様々な業務を工夫して自動化しております。
今回は、Automation 360を使用した自動化事例をご紹介しましたが、ほかにもBizRobo!UiPath等のRPAツールを使って業務を自動化しております。
この業務も自動化できるのか、など業務フローの整理からお手伝いすることも可能ですので、ご興味がありましたら、以下よりご相談ください。

本記事の執筆者

ペネトレイター株式会社 平石