Amazon Connectのタスク機能について

## 背景
当記事は、Amazon Connectのフローで使用できる、「タスクを作成」ブロックを使用して、コールバックの機能の代わりに、タスクを発行しエージェント側に顧客がコールバックを希望するの旨を知らせたい。

## 事前設定
### タスクの有効化
ルーティングプロファイルの設定にある「**チャネルの設定**」で、タスク項目にチェックを入れる。
クロスチャネルの同時実行で、「**他のチャネルを同時に許可**」にすることで、エージェントが顧客との通話中にもタスクを受諾することができる。
キューでもタスクを使用するため、チェックを入れる。

![スクリーンショット 2024-04-10 10.35.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/2d75dfca-d316-ba7d-f378-d215ccc69ed9.png)

## 設定作業
顧客がキューで待機状態の際にエージェントと繋がるまで待機を選択するか、コールバックを選択するかを決める必要があるため、今回の場合では顧客キューフローで「**タスクを作成ブロック**」を使用している。

### タスクテンプレート
タスクを作成ブロックを使用してタスク作成を行う場合に、ブロックで手動作成とテンプレートを使用した作成がある。
テンプレートを使用することで、作成されたタスクの内容を表示のみにして編集できないようにすることが可能になる。

#### タスクテンプレートの作成方法
Amazon Connectのチャネルの**タスクテンプレート**から新しいテンプレートで作成を行う。
今回の場合は、Descriptionの欄にコールバックしてほしい旨を記載し、フィールドの追加で、テキスト項目を追加して、顧客の電話番号が入るようにする。

**注意点**
- 顧客の電話番号が入るためテキスト項目は表示する許可だけでなく、編集可能の許可も必要
- フィールドの検証とエージェントの許可で、編集されないようにするため編集可能のチェックを外す。その際に、必須のチェックも外さないとエラーになってしまう
- 許可を表示するのみにすると、タスクを作成ブロックでも編集できなくなってしまう
- デフォルト値で、予め作成するタスクに表示されるテキストを入力しておくと、タスクを作成ブロックで入力する必要がなくなる

![スクリーンショット 2024-04-10 11.41.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/147c3421-5d2e-ae87-fb1c-20f08c507815.png)

### フローでの作業
4つのフローを使用している。
1. Amazon Connectの電話番号に紐づいているコンタクトフロー
2. 上述1で使用する顧客キューフロー
3. タスクを実行するコンタクトフロー
4. 上述3で使用する顧客キューフロー

**コンタクトフロー**
Amazon Connectの電話番号に紐づいているコンタクトフロー
顧客キューフローの設定ブロックには、「2」の顧客キューフローを設定
作業キューの設定ブロックには、受信を行いたいユーザーに設定されているルーティングプロファイルに追加してあるキューを設定
![スクリーンショット 2024-04-10 10.49.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/5d54d469-678e-f07c-d390-973a9f4a0e21.png)

タスクを実行するコンタクトフロー
作業キューの設定ブロックには、タスクを作成ブロックで定義したキーを設定
![スクリーンショット 2024-04-25 17.06.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/38b4814b-5b3a-7739-6553-37868c039ea6.png)

**顧客キューフロー**
Amazon Connectの電話番号に紐づいているコンタクトフローで使用する顧客キューフロー
![スクリーンショット 2024-04-10 10.54.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/9b495ca4-93fb-f271-3d9d-6a34d8704125.png)

タスクを実行するコンタクトフローで使用する顧客キューフロー
![スクリーンショット 2024-04-10 10.56.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/307e496d-df45-a732-90f4-4e0201cf6478.png)

### タスクを作成ブロックの設定
顧客キューフローにある「**タスクを作成ブロック**」内の設定で、テンプレートの使用を選択し作成したタスクテンプレートを選ぶ。
フローでは、タスクを実行するコンタクトフローを選択する。
コンタクトへのリンクにチェックを入れることによって、Amazon Connectの分析と最適化にあるコンタクトの検索で確認することができる。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/c3f70dd5-4761-919f-25ad-c62dedfeaa3e.png
"><img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/272728ce-b9dc-0e76-cd2c-a06b0ac30bb3.png">


## 転送
クイック接続を使用することで、作成したタスクを他のエージェントやキューに転送することができる。

## 動作確認
電話を行い、コールバックを要求するために「2」を選択する。
エージェント側には、タスクが届くので、受諾を選択する。
左：通話していない場合
右：通話中の場合

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/f340e9ea-d384-5847-47b6-897ee12613f2.png
"><img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/0a55ced7-f8d5-0906-d9bf-1ea5e9776dc8.png
">

### 受諾したタスク画面
上記の設定通りにタスクテンプレートで表示のみにしている説明(Description)項目は編集不可でテキスト(PhoneNumber)項目には顧客の電話番号が記入されている。
転送を行いたい場合は、「点線」からクイック接続を押下し、転送したいクイック接続を選択する。

![スクリーンショット 2024-04-10 16.56.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/8e9b819e-b0d5-d14e-965a-eea28a36dffb.png)

### 注意点
- タスク実行時のフローではシステム属性、カスタム設定などは引き継がれないため、タスク実行時のフローで属性を使いたい場合には、タスクを作成ブロックでタスク属性を設定
- クイック接続を利用する際に、クイック接続に指定されているフローでプロンプトの再生などのエラーとなるブロックがあると転送時にエラーとなる

## 再スケジュール
タスクの再スケジュールを行いたい場合はコンタクトの検索画面でフィルターを使用し、チャネルが**タスク**でコンタクトのステータスで**進行中**を選択する。
![スクリーンショット 2024-09-10 11.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/e6a5e3ed-78ae-a86b-8b17-99f2ad1a5d0f.png)
その後再スケジュールを行いたいコンタクトを選択し**タスクが届く前**にコンタクトの詳細画面のアクションから変更する必要がある
![スクリーンショット 2024-09-10 10.20.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766655/938335bf-7b64-32fa-e6c9-77aa090941e7.png)
**タスクを受諾した場合**は、CCPにあるタスクの作成ボタンから受け取ったタスクを確認しながら新規タスクを作成する方法
### 手動・自動問わず、スケジュールの設定は初回作成時以外できない
- 確認したパターン
    - CCPの`タスクを作成`ボタンを押下してタスクを作成する場合
        - `タスクの作成者`は **日付/時刻をスケジュール (オプション)** の項目に未来日付を設定した後に作成すると設定時刻にタスクが送信される
        - `タスクの受諾者`は **日付/時刻をスケジュール (オプション)** の項目は表示されるが、再度設定しても保存ができない。その状態でタスクを転送すると、転送先のキューに即時通知される
    - フローブロックの処理でタスクを作成する場合
        - タスク受諾者は **日付/時刻をスケジュール (オプション)** の項目は表示されるが、再度設定しても保存ができない。その状態でタスクを転送すると、転送先のキューに即時通知される
### 注意点
- タスクが届いた時点でタスクのステータスは完了になるため、再スケジュールはできない
- 手動でタスクを作成する場合は、割り当てているセキュリティプロファイルのコントロールパネル(CCP)にある**タスク作成の制限**のチャックを外す必要がある
- コンタクトの詳細画面のアクションからタスクの再スケジュールを行う場合は、セキュリティプロファイルの連絡先アクションの**連絡先のスケジュールを変更**を有効化する必要がある