Amazon Web Services ブログ

Amazon Connectインスタンスへの迷惑電話を特定し対処する

我々はAmazon Connectによって強化されたコンタクトセンターを展開してきました。 あなたは今、顧客から電話で問い合わせを受けています。 素晴らしいことです。 ただし、迷惑電話が増えてきていることにも気付いています。 それはあまり素晴らしいことではありません。 このブログでは、発信者の番号に基づいてこの不要な着信通話の発信者を識別するソリューションを構築する方法をご紹介します。

着信を識別して対処するステップ

まず、Amazon DynamoDBに電話番号のリストを作成し、Amazon Connectにすべての着信呼び出しについてこのリストをチェックさせます。 Amazon Connectがこのリストにアクセスするために、AWS LambdaAmazon Connect問い合わせフローと統合します。 その後、すべての着信呼び出しに対してそのLambda関数を実行します。 AWS Lambdaは、着信呼び出しの番号についてデータベースを検索します。 一致したレコードが見つかった場合に問い合わせフロー内で別のパスへルーティングできるようにするために、AWS Lambdaはレコードの一致を示す値を返します。

このプロセスの4つのステップは以下のとおりです:

  1. Amazon DynamoDBにテーブルを作成する
  2. AWS Lambdaを使用して番号データベースを検索する
  3. 問い合わせフローでAWS Lambdaを使用するようにAmazon Connectを設定する
  4. Amazon Connectに返される値を確認する

ステップ1:Amazon DynamoDBにテーブルを作成する

  1. Amazon DynamoDBコンソールを開きます。
  2. テーブル作成を選択します。
  3. [テーブル名]に、filteredNumbersと入力します。 プライマリキーにphoneNumberと入力します。
  4. デフォルト設定を使用をチェックしたままにして、作成を選択します。
  5. テーブルを作成したら、ブロックする電話番号を追加します。filteredNumbersを選択し、項目タブを選択し、「項目の作成」を選択します。
  6. 国際的に認められたE.164形式で電話番号を入力してください。 たとえば、北米の場合は+ 15551234567などです。 ブロックする番号を入力してから、保存を選択します。
  7. ブロックするすべての番号について手順6を繰り返します。

注意
電話番号を入力するこれらの手順では、番号を個別に入力する必要があります。 電話番号をまとめて追加する方法については、DynamoDB CLIリファレンスを参照してください。

ステップ2:AWS Lambdaを使用して番号リストを検索する

AWS Lambdaは、Amazon ConnectとAmazon DynamoDBテーブルをつなぐパイプの役割を果たします。 Amazon ConnectがAWS Lambdaを呼び出すたびに、呼び出しに関するメタデータをJSON形式でLambda関数に渡します。これには、発信者IDの値も含まれます。 発信者IDの値を使用してテーブルを検索し、一致するレコードが見つかったかどうかをAmazon Connectに返します。 Amazon Connectはこの情報を使用して通話を適切にルーティングします。

  1. AWS Lambdaコンソールを開きます。
  2. 「関数の作成」を選択してから:
    1. 名前にfilteredNumbersCheckと入力します。
    2. ランタイムとしてPython 3.6を選択
    3. Amazon DynamoDBへの読み取りおよび書き込み権限に適切なIAMロールを割り当てます。 適切なアクセス権限の詳細については、AWS Lambdaアクセス許可のドキュメントをご覧ください。
    4. 作成を選択します。
  3. AWS Lambda関数に対して生成されたARNを書き留めます。 後でこの関数を実行するようにAmazon Connectを設定するには、このARNが必要です。
  4. 次のコードをコピーしてLambda関数に貼り付け、[保存]を選択してください。
#import the Python packages for Lambda to use
import boto3
from boto3.dynamodb.conditions import Key, Attr

#start our Lambda runtime here 
def lambda_handler(event,context):
    
    #Retrieve ANI from inbound callerID
    callerID = event["Details"]["ContactData"]["CustomerEndpoint"]["Address"]
    
    
    #Establish connection to dynamoDB and retrieve table
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('filteredNumbers')
    
    #KeyConditionExpression looks for number that equals ANI of inbound call from a dynamoDB table and saves it to response
    response = table.query(
        KeyConditionExpression=Key('phoneNumber').eq(callerID)  
    )
    
    #Check for u'Count' existing with a 1 value within the DynamoDB indicating a blocked record exists
    if 1 in response.values():         
        #Sets Key:Value Pair needed for proper Connect handling
        filteredNumberReturn = {'userFound' : 'True'} 
        print(A call has been filtered:  {}'.format(callerID))
    else:
        #Sets Key:Value Pair needed for proper Connect handling
        filteredNumberReturn = {'userFound' : 'False'}
    
    #Return to Connect our key/value combo    
    return filteredNumberReturn

ステップ3:問い合わせフローでAWS Lambdaを使用するようにAmazon Connectを設定する

AWS Lambda関数を使用してテーブルとフィルターされた番号のリストをチェックするようにAmazon Connect問い合わせフローを作成します。 あなたはご自分の好みに合わせて最終的な問い合わせフローに修正することができますが、ここでの焦点は最初にデータベースチェックを出来るようにすることです。

  1. Amazon Connectコンソールを開き、Amazon Connectインスタンスにログインします。
  2. [ルーティング]メニューの[問い合わせフロー]を選択し、[問い合わせフローの作成]を選択します。
  3. [統合]セクションからAWSブロックをデザイナーにドラッグし、このブロックとエントリポイントの[開始]ブランチの間にコネクタを追加します。
  4. AWSブロックを選択し、ステップ2で作成したLambda関数からコピーしたARNを貼り付けます。
  5. タイムアウト値を8に変更することで関数の実行時間を設定してから、保存を選択します。

注意
Amazon LambdaファンクションがAmazon Connectからのアクセスを許可するように必ず設定してください。 詳細については、「Amazon ConnectでAWS Lambda関数を使用する」セクションの「Lambda関数を作成し、トリガーポリシーを設定する」を参照してください。

ステップ4:Amazon Connectに返される値を確認する

これで、先ほど書いたAWS Lambda関数を実行するように問い合わせフローが設定されました。 発信者ID番号が見つかった番号のいずれかと一致するかどうかを確認します。 AWS Lambda関数は、値userFoundに対してTrueを返すように書かれています。 これで、この値がTrueになるようにAmazon Connectを設定します。 一致が見つかった場合、着信はアラートにルーティングされます。

問い合わせフローの作成を続けます:

  1. [ブランチ]で、[問い合わせ属性を確認する]ブロックをデザイナーにドラッグします。 次に、それをAWSブロックのSuccessに接続します。
  2. [問い合わせ属性を確認する]ブロックの[タイプ]で、外部を選択します。
  3. [属性]にはuserFoundと入力します。
  4. [チェックする条件]から、[別の条件の追加]でドロップダウンメニューから[等しい]を選択します。 値にTrueを追加してから、保存を選択します。 [問い合わせ属性を確認する]ブロックに= Trueのノードが追加されました。
  5. [プロンプトの再生]ブロックをデザイナにドラッグし、タイトルをクリックしてプロパティを開きます。
  6. [テキスト読み上げ機能(アドホック)]を選択し、テキストフィールドにこれらの歓迎されていない発信者に聞かせるメッセージを入力します。
  7. 各ブロックのノードにコネクタリンクを必ず追加してください。 [切断/ハングアップ]ボックスを追加します。 歓迎される電話のための問い合わせフローの残りを構築し続けます。 最後に、問い合わせフローは次の図のようになります。

結論

このブログ記事では、AWS Lambda関数を使用してデータベース内の番号をAmazon Connectの発信者ID番号と比較する方法を示しました。 AWS Lambda関数を使用してAmazon Connectからデータベースに属性を渡すプロセスは、基本的なAmazon Connectの着信動作に影響を与えています。 次のステップとして、1時間あたりにコンタクトセンターに着信する回数が多すぎる場合に、テーブルにその電話番号を追加する方法を構築することをお勧めします。 これで、高度なルーティングロジックまたはカスタムソリューションを作成できます。 さあ、あなたの想像力を存分に働かせてください!

原文:https://aws.amazon.com/jp/blogs/contact-center/identify-and-move-unwelcomed-calls-on-your-amazon-connect-instance/

翻訳:ソリューションアーキテクト 深森 広英