【Amazon Connect】APIを使って問い合わせフローを削除してみた

# はじめに
コンタクトセンター最適化支援チームの新井です。
新卒で勉強しながらAmazon Connect触ってます！

2021年11月23日にAmazon Connect で、問い合わせフローをアーカイブおよび削除するAPIの提供が始まりました。以下[AWS公式ページ](https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-connect-apis-archive-delete-contact-flows/)の抜粋です。
>「Amazon Connect で、問い合わせフローをアーカイブおよび削除する API を提供開始」
Amazon Connect では、問い合わせフローをアーカイブ/解凍する API と削除する API 2 つを新たに提供しています。

参照URL : https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-connect-apis-archive-delete-contact-flows/

と、いう事で、今まで行うことが出来なかった問い合わせフローの削除を、CLI、またはLambdaを使う方法で削除出来るようになったようです。


今回は提供された2つのAPIのうち、「DeleteContactFlow」を使用してAWS CLIを使用しての問い合わせフロー削除を行っていきます。


---
# 必要な準備
- AWS CLI のインストール
- IAMユーザーへのアクセスキーとシークレットキーの発行

## AWS CLIのインストール
![qiita02.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/515edd53-f770-9101-5dd4-95b577cd1871.jpeg)

2022年1/7時点ではバージョン２が最新のバージョンになるのでバージョン２をインストールします。
インストールは[こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)から行うことが出来ます。


## IAMユーザーへのアクセスキーとシークレットキーの付与

CLIでのユーザー認証の際にアクセスキーとシークレットキーの入力が必要となりますので、ご自身のIAMユーザーに設定がされていない場合は発行する必要があります。アクセスキーとシークレットキーの発行は今回の趣旨では無いため、必要な場合は[こちら](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_access-keys.html)を参照して事前にアクセスキーとシークレットキーを発行します。

---
# 問い合わせフローを削除する

## 今回の手順

①削除用のフローの用意

②CLIからフローの削除コマンドを実行する

③フローが削除されたことを確認する

---
## ①削除用フローの用意

削除を行うためのフローを用意します。

今回は「test-ari」という名前で問い合わせフローを１つ作成しました。

![qiita02.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/515edd53-f770-9101-5dd4-95b577cd1871.jpeg)


この問い合わせフローを削除していきます。
コマンド入力時に以下２つの情報を使用するので控えておきます。

* インスタンスのARN
* 問い合わせフローのARN

## ②CLIからフローの削除コマンドを実行する

### ~AWSへの認証~

コマンドプロンプトを開きます。
まずは「aws configure」を入力し、awsへの認証と、リージョンの指定、出力形式を指定します。
※すでに設定済みの場合は行う必要はありません。

・AWS Access Key ID：「必要な準備」で発行したIAMユーザーのアクセスキー

・AWS Secret Access Key：「必要な準備」で発行したIAMユーザーのシークレットキー

・Default region name：使用するリージョン（今回は東京リージョンap-northeast-1を指定）

・Default output format：出力形式（今回はjsonを指定）

![qiita01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/ab887ac8-32d8-cc49-1f7e-c099d6d378fb.jpeg)!


### ~コマンドの入力~
削除コマンドは以下です。

**aws connect delete-contact-flow --instance-id (インスタンスのARN) --contact-flow-id (問い合わせフローのARN)**

![qiita04.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/33b74bd4-000d-c383-f131-1ec948affd38.jpeg)

実行します。

![qiita05.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/633b5054-5c8a-9b0f-65c5-868d0336193f.jpeg)



実行されました。

Amazon Connect内で削除が成功しているか確認します。

![qiita06.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/eef2fe58-c1c4-ac2e-788f-bb2815e37559.jpeg)
![qiita07.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/372502af-f864-b1ed-0a01-53547f84bd36.jpeg)


問い合わせフローからも「test-ari」が無くなっており、コンタクトフローから変更履歴の表示画面でもCLIから削除できたことが確認できました。

---
# まとめ

実際にCLIからコマンド入力で問い合わせフローの削除を行うことが出来ました。
問い合わせフローのステータスは保存のみの場合、公開している場合どちらも削除が可能でした。

**問い合わせフローが電話番号に紐づいている場合はエラーとなり削除が出来ませんでした。問い合わせフローは電話番号との紐づけがされていない状態にする必要があるようです。**

![qiita13.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/e616ec6c-287a-fc30-f37f-445a0c0f06c6.jpeg)
![qiita14.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/b0a4bd8d-ba65-f442-1250-470fb95f6b22.jpeg)


---

ちなみに、AWS CloudShellからも実行してみましたが、こちらも同じコマンドの入力で問い合わせフローの削除を行うことが出来ました。

![qiita11.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/b5f4b8f7-87e7-a540-d082-b17c84c79a57.jpeg)
![qiita12_.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277649/d868585f-318e-721e-429e-1cab5bdd19fd.jpeg)


---
# 感想
Amazon Connectでは今まで問い合わせフローの削除ができず、不要なフローには不要とわかるようにフロー名を変更したり、作成上限を超えてしまう場合は古い問い合わせフローを書き換えたりして問い合わせフローの管理が煩雑になっていました。
今回このAPIが使えるようになったことで、不要フローは削除ができ、フロー管理が楽になったのではないかと思います。

## 備考

今回は問い合わせフローの削除を行ってみましたが、それ以外の種類のフローも削除できるかどうかを今後検証して記事に追加したいと思います。