はじめに
本記事の対象者
- Power Automateでoutlookの連絡先一覧に重複している連絡先があって困っている。
本記事の目的
- Power Automateで定期的にoutlookの連絡先一覧に存在する重複する連絡先を削除する
定期的にoutlookの連絡先一覧で重複している連絡先を削除する方法
2021年2月から無料版Power Automateを使って今まで貯めてきたノウハウを解説していきます。
自分のノウハウのまとめは、「【業務効率向上】【備忘】PowerAutomateの使い方一覧」にあります。もしよろしければ確認してみてください!!
今回の紹介するフロー
今回は、Outlookの連絡先一覧で重複している連絡先があった場合に定期的に削除するものになります。
下のフローが今回作成するものです。
今回はそこまで複雑ではないと思います。
今回のフローにおける仕様のコメント
Outlookの連絡先一覧で重複している連絡先があった場合に定期的に削除する一連の流れを下に書きます。
- 任意の時間にフローを実行
- 探索するアドレスを保持する変数を定義
- outlookの連絡先一覧をメールアドレスで昇順にして取得
- No2の変数内のアドレスと抽出したアドレスを比較する
- 同じアドレスの場合アドレスを削除。違うアドレスの場合は何もせず次のアドレスと比較しにいく
絵的には以下のようになります。
Power Automateの新着メールの差出人をoutlookの連絡先に登録する
フローのコネクタ説明
まずはトリガーから説明していきます。
トリガー(繰り返し):同左
トリガーは、「繰り返し」です。
このコネクタでは、どのような頻度でフローを実行するか指定するものです。
今回は、1週間にしていますが、実行したい間隔で設定してください。
個人的には1時間でいいと思います。
コネクタ1(変数を初期化する):前アドレスを格納する変数を定義
1つ目のコネクタは、「変数を初期化する」です。
このコネクタでは、名前「前アドレス」という文字列を定義します。
設置値を表にまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | 前アドレス |
|
2 | 種類 |
文字列 |
|
3 | 値 |
|
何も入力しません。 |
本当にここは変数を定義するだけなので、次の説明に行きます。
コネクタ2(複数の連絡先の取得):同左
2つ目のコネクタは、「複数の連絡先の取得」です。
このコネクタでは、outlookの連絡先一覧をメールアドレスで昇順にして取得します。
設定値についても、表にまとめます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | フォルダーID | 連絡先 |
その他の連絡先フォルダがあるのであれば、それを設定してください。 |
2 | 並べ替え順 | givenNam asc | 自分の場合、項目「givenName」にメールアドレスを格納してあるので、この項目で昇順にしています。 |
3 | 上から順に取得 |
1000 |
デフォルトは全てなのですが、全て取得できない挙動があったので、とりあえず1,000件にしています。 |
コネクタ3(Apply to each):同左
3つ目のコネクタは、「Apply to each」です。
このコネクタでは、取得した一覧を上から2つずつ比較して、同じメールアドレスがある場合は、削除します。
下の図でいくと、No1とNo2が同じメールアドレスなので、「2回目比較」をした際にNo2を削除します。
では、より詳しく説明していきます。
コネクタ3-1(JSONの解析):同左
4つ目のコネクタは、「JSONの解析」です。
このコネクタでは、連絡先一覧からメールアドレスを抽出するために、JSONの解析をします。
詳細は、以下の記事を参考にしてください。
参考ページ:【業務効率向上】PowerAutomateのアクション「JSONの解析」の使い方
コネクタ3-2(条件):同左
5つ目のコネクタは、「条件」です。
このコネクタでは、変数「前アドレス」に格納してある(Noが小さい)メールアドレスとNoが大きいアドレスを比較して、削除するかを判定します。
判定後の処理は以下のようになります。
- 「前アドレス」とに格納してあるメールアドレスとNoが大きいアドレスが同じである場合、Noが大きいアドレスを削除する。削除後は、削除したメールアドレスを「前アドレス」に格納する。
- 「前アドレス」とに格納してあるメールアドレスとNoが大きいアドレスが違う場合、何もせず、Noが大きいメールアドレスを「前アドレス」に格納する。
以上でフローの説明は終わります。
実行結果
まず、重複しているメールアドレスに連絡先一覧にあることを確認します。
一部自分が私用で使っているもののため、黒塗りにしてあります。
画像から、同じメールアドレスがあることがわかります。
それでは、紹介したフローを実行します。
正常に実行されていることがわかります。
それでは、先ほどの連絡先一覧を確認してみます。
重複している連絡先が削除されていることが分かります。
皆さんも、メールアドレスが重複しているものがある場合は、一括で削除できるので便利ですので、使ってみてください!
補足情報 今回のフローの想定用途
以前、自動で連絡先を登録するフローを2つ紹介しました。
- 【業務効率向上】PowerAutomateで新着メールの差出人をoutlookの連絡先に登録する(コネクタ「連絡先の作成」の使い方)
- 【業務効率向上】PowerAutomateで新着メールの差出人をoutlookの連絡先に登録する方法【重複登録回避編】
1は、既にoutlookの連絡先一覧にユーザが登録されていたとしても、ユーザを登録してしまいます。
そのため、今回紹介したフローを1日1回くらい実行すれば、次の日には重複している連絡先がなくなります。
2は、フロー実行時に既にoutlookの連絡先一覧にユーザが登録されている場合は、ユーザを登録しない処理が含まれています。
ただし、2についてもフロー実行時に新着メールに同じ人から2回連続で入ってい場合は、同じユーザをoutlookに登録することが考えられます。
1よりも2の方が重複する可能性はだいぶ減りますが、どちらにしろ可能性はあるので、今回のフローを1日1回または1週間1回などのペースで実行することが好ましいと思います。
まとめ
まとめに入ります。
業務効率を上げるために提供されているMicrosoft365のツール群で、今回は定期的にoutlookの連絡先一覧で重複している連絡先を削除する方法を説明しました。
今回のフローの想定用途は、以前説明した自動で連絡先を登録するためのフローで発生したデータのクレンジングです。
【以前説明した説明した自動で連絡先を登録するためのフロー】
- 【業務効率向上】PowerAutomateで新着メールの差出人をoutlookの連絡先に登録する(コネクタ「連絡先の作成」の使い方)
- 【業務効率向上】PowerAutomateで新着メールの差出人をoutlookの連絡先に登録する方法【重複登録回避編】
上の1または2と、今回フローを組み合わせれば、自分で連絡先を登録させずに自動で登録されていきます。
また、なぜここまで自動登録に反映することにこだわっているかというと、機種変したとしてもoutlookの方に連絡先が登録されていれば、アドレスの移行が必要がなくなるためです。
それでは、説明は以上になります。
もしよかったら、使ってみてください!!!
最後まで読んでいただきありがとうございます。
コメント