Amazon Connect コンタクトセンターでエージェント間通話の内線番号を設定するにはどうすればよいですか?

所要時間4分
0

Amazon Connect コンタクトセンターのエージェントが直接お互いに通話できるようにしたいと考えています。拡張機能を設定して、それを可能にするにはどうすればいいですか?

簡単な説明

Amazon Connect コンタクトセンターのエージェントが直接内線を使用してお互いに通話できるようにするには、以下の手順に従います。

重要: Amazon Connect インスタンスが存在するのと同じ AWS リージョンで、以下の手順を実行してください。

解決方法

エージェントのログイン名とその内線番号を保持する DynamoDB テーブルを作成する

1.    DynamoDB コンソールを開きます。

2.    [Create DynamoDB table] 画面で、次の操作を実行します。
[Table name] で、AgenttoAgent と入力します。
[Partition key] パネルの [Primary key] に、Extension と入力します。
[Data type] で、[String] を選択します。

3.    [Create] を選択します。

4.    各エージェントログイン名に一意の内線番号を割り当てます。その後、テーブルに内線番号とエージェントログイン名を追加します。 内線番号では、[Attribute name] (属性名) キー[Extension] (内線番号) として設定されている必要があります。DynamoDB テーブルに項目を作成する際、エージェントのログイン名には AgentLoginName という [Attribute name] (属性名) キーが必要です。
注: DynamoDB テーブルを編集する方法の詳細については、「コンソールまたは AWS CLI を使用してテーブルにデータを書き込む」を参照してください。

DynamoDB でエージェントログイン名を検索するために Lambda 関数が引き受けることができる IAM ロールを作成する

次の JSON ポリシーを使用して、IAM ロールを作成します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:GetItem",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "Replace with ARN of DynamoDB table you created"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

内線番号の入力を使用して DynamoDB テーブルに照会し、テーブルから対応するエージェントログイン名を返す Lambda 関数を作成します。

以下の Python コードを使用して、Lambda 関数を作成し、以前に作成したロールをアタッチします。

import json
import boto3
from boto3.dynamodb.conditions import Key


def get_agent_id(Extension, dynamodb=None):
    if not dynamodb:
        dynamodb = boto3.resource('dynamodb')

    table = dynamodb.Table('AgenttoAgent')
    response = table.query(
        KeyConditionExpression=Key('Extension').eq(str(Extension))
    )
    return response['Items']


def lambda_handler(event, context):
    Extension = event['Details']['Parameters']['Extension']
    AgentLoginName = get_agent_id(Extension)
    for agent in AgentLoginName:
        print(agent['Extension'], ":", agent['AgentLoginName'])
        
    print(AgentLoginName)
            
    return agent

Lambda 関数を Amazon Connect インスタンスに追加する

1.    Amazon Connect コンソールを開きます。

2.    [Instance Alias] 列で、Amazon Connect インスタンスの名前を選択します。

3.    左のナビゲーションペインで、[Contact flows] を選択します。

4.    [AWS Lambda] セクションで、[Function]ドロップダウンリストを選択します。次に、前のセクションで作成した Lambda 関数を選択します。
注意: [Function] ドロップダウンリストには、Amazon Connect インスタンスと同じリージョンにある関数だけが表示されます。関数が表示されない場合は、[Create a new Lambda function] を選択して、適切なリージョンで新しい関数を作成してください。

5.    [Add Lambda Function] を選択します。次に、関数の ARN が Lambda 関数の下に追加されていることを確認します。

これで、Amazon Connect コンタクトフローで作成した Lambda 関数を参照できるようになります。Lambda と Amazon Connect との統合の詳細については、AWS Lambda 関数を呼び出すを参照してください。

通話を受信できるエージェントの可用性をチェックするカスタマーキューフロー (AgentQueueFlow) を作成する

新しいカスタマーキューフローを作成します。[Create customer queue flow] を選択すると、コンタクトフローデザイナーが開きます。

コンタクトフローデザイナーで、次の操作を行います。

[Check staffing] ブロックを追加する

エージェントが通話を受信できるかどうかを確認するには、[Check staffing] ブロックを使用します。

1.    [Branch] を選択します。

2.    [Check staffing] ブロックをドラッグし、[Entry point] ブロックの右にあるキャンバスにドロップします。

3.    [Status to check] で、[Available] を選択します。

4.    [Save] を選択します。

注意:[Check staffing] ブロックから、TrueFalse、および Error の 3 つの選択肢が表示されます。

[Check staffing] (人員の確認) ブロックの True 出力に [Loop prompts] (プロンプトのループ) ブロックを追加する

キューに発信者がいるときにプロンプトを再生するには、[Loops prompts] (プロンプトのループ) ブロックを使用します。

1.    [Interact] を選択します。

2.    [Loop prompts] (プロンプトのループ) ブロックをドラッグし、[Check staffing] (人員の確認) ブロックの右にあるキャンバスにドロップします。その後、[Check staffing] (人員の確認) ブロックの True 出力に [Loop prompts] (プロンプトのループ) ブロックを接続します。

3.    ブロックタイトル (Loop prompts) を選択します。ブロックの設定メニューが開きます。

4.    [Prompts] で、[Text-to-speech] を選択します。次に、以下のプロンプト ("Now we will be transferring the call to $.External.AgentLoginName") を入力します。
注意: プロンプトは、特定のユースケースに合わせて変更できます。

5.    [Add another prompt to the loop] を選択します。

6.    [Audio recording] を選択します。次に、ダイヤルされたエージェントが通話を受け入れるのを待っている間に、発信者に聞こえる音楽を選択します。

7.    [Interrupt] では、[Interrupt every 1 minutes] を選択するか、通話がタイムアウトになる時間枠を選択します。

8.    [Save] を選択します。

[Check staffing] ブロックの False および Error 出力に [Loop prompts] ブロックを追加する

1.    [Interact] を選択します。

2.    [Loop prompts] (プロンプトのループ) ブロックをドラッグし、[Check staffing] (人員の確認) ブロックの右にあるキャンバスにドロップします。次に、[Check staffing] ブロックの False および Error 出力に [Loop prompts] ブロックを接続します。

3.    ブロックタイトル (Loop prompts) を選択します。ブロックの設定メニューが開きます。

4.    [prompts] で、[Text-to-speech] を選択します。次に、以下のプロンプト ("The agent you are trying to reach is either not available or is busy on another call.Please try again later.") を入力します。
注意: プロンプトは、特定のユースケースに合わせて変更できます。

5.    [Interrupt] で、[Interrupt every 4 seconds]、または手順 4 で入力したプロンプトを完了するのにかかる時間を選択します。この時間が経過すると、タイムアウトブランチが開始されます。

6.    [Save] を選択します。

[Disconnect] ブロックを追加する

1.    [Terminate /Transfer (終了/転送)] を選択します。

2.    [Disconnect] ブロックをドラッグし、[Loop prompts] ブロックの右にあるキャンバスにドロップします。

3.    すべての Timeout ブランチと Error ブランチを Disconnect ブロックに接続します。

4.    [Save] を選択して、フローのドラフトを保存します。次に、[Publish] を選択して、コンタクトフローをアクティブにします。

エージェントが別のエージェントの内線番号を呼び出したときに Lambda 関数をトリガーする着信コンタクトフロー (AgentToAgentCall) を作成します。

新しいインバウンドコンタクトフローを作成します。[Create contact flow] を選択すると、コンタクトフローデザイナーが開きます。

コンタクトフローデザイナーで、次の操作を行います。

注意: 次に、基本的なインバウンドコンタクトフローの例を示します。特定のユースケースに対して、ブロックを追加または編集する必要があります。例えば、エラーブランチを Play プロンプトブロックに接続して、カスタムメッセージを再生することができます。

ストア顧客入力ブロックを追加

エージェント間通話を行うエージェントからの内線入力を保存するには、[Store customer input] ブロックを使用します。

1.    [Interact] を選択します。

2.    [Store customer input] ブロックをドラッグし、[Entry point] ブロックの右にあるキャンバスにドロップします。

3.    ブロックのタイトルを選択します (Store customer input) 。ブロックの設定メニューが開きます。

4.    [Text-to-speech] を選択します。次に、発信者にエージェントの内線番号を入力するように求めるメッセージを入力します。例:「続行するには、エージェントの内線番号を入力してください。」

5.    [Customer input] セクションで、[Custom] を選択します。次に、各エージェントの内線番号に使用する最大桁数を入力します。

6.    [Save] を選択します。

[AWS Lambda 関数の呼び出し] ブロックを追加する

Lambda 関数を呼び出し、内線番号の入力に対応するエージェントログイン名を返すようにするには、AWS Lambda 関数を呼び出すブロックを使用します。

1.    [Integrate] を選択します。

2.    [Invoke AWS Lambda function] ブロックをドラッグし、[Store customer input] ブロックの右にあるキャンバスにドロップします。

3.    ブロックのタイトルを選択します (AWS Lambda 関数の呼び出し)。ブロックの設定メニューが開きます。

4.    前に作成した Lambda 関数を選択します。

5.    [Function input parameters] セクションで、[Add a parameter] を選択し、[Use attribute] を選択します。次に、以下を実行します。
[Destination key] で、属性名 Extension を入力します。
[Type] では、[System] を選択します。
[Attribute] では、[Stored customer input] を選択します。

6.    [Save] を選択します。

[Set working queue] ブロックを追加する

作業キューをエージェントのキューとして設定するには、[Set working queue] ブロックを使用します。

1.    [Set] を選択します。

2.    [Set working queue] ブロックをドラッグし、[Invoke AWS Lambda function] ブロックの右にあるキャンバスにドロップします。

3.    ブロックのタイトルを選択します (作業キューを設定)。ブロックの設定メニューが開きます。

4.    [Outputs] で、[By agent] を選択します。次に、[Use attribute] を選択して、次の操作を実行します。
[Type] で [External] を選択します。
[Attribute] では、AgentLoginName (Lambda 関数によって返される属性) を入力します。

5.    [Save] を選択します。

[Set customer queue flow] ブロックを追加する

エージェントが別のエージェントの内線 (AgentToAgentCall) に入ったときに呼び出すフローを指定するには、[Set customer queue flow] ブロックを使用します。

1.    [Set] を選択します。

2.    [Set customer queue flow] ブロックをドラッグし、[Set working queue] ブロックの右にあるキャンバスにドロップします。

3.    [Select a flow] を選択します。

4.    [AgentQueueFlow] を選択します。
注意: 次のセクションで、AgentQueueFlow カスタマーキューフローを作成します。

5.    [Save (保存)] を選択します。

[Transfer to queue] ブロックを追加する

コンタクトフロー (AgentToAgentCall) を終了し、発信者をカスタマーキューフロー (AgentQueueFlow) に配置するには、[Transfer to queue] ブロックを使用します。

1.    [Terminate /Transfer (終了/転送)] を選択します。

2.    [Transfer to queue] ブロックをドラッグし、[Set customer queue flow] ブロックの右にあるキャンバスにドロップします。

注意: このユースケースでは、[Transfer to queue] ブロックの設定を構成する必要はありません。

[Disconnect] ブロックを追加する

カスタマーキューフロー (AgentQueueFlow) に転送された後で発信者をコンタクトフロー (AgentToAgentCall) から切断するには、[Disconnect] ブロックを追加します。

1.    [Terminate /Transfer (終了/転送)] を選択します。

2.    [Disconnect] ブロックをドラッグし、[Transfer to queue] ブロックの右にあるキャンバスにドロップします。

3.    [Save] を選択して、コンタクトフローのドラフトを保存します。次に、[Publish] を選択して、コンタクトフローをアクティブにします。

重要: AgentToAgentCall コンタクトフローへの内線通話に使用するエージェントの電話番号を必ず割り当ててください。

エージェントが内部通話機能を使用できるようにするクイックコネクトを作成する

1.    次の設定を使用してクイック接続を作成します。
クイックコネクトの名前を InternalCalling とします。
[Type] で [External] を選択します。
[Destination] で、AgentToAgentCall コンタクトフローに割り当てた数を入力します。

2.     InternalCalling クイック接続を、内部通話機能へのアクセスを許可するエージェントに割り当てられたキューに追加します

注意: 各通話のコストは、通話の期間によって異なります。詳細については、Amazon Connect の料金を参照してください。


AWS公式
AWS公式更新しました 3年前
コメントはありません

関連するコンテンツ