【Amazon Connect】データテーブルを活用してブラックリスト電話番号を管理してみた

【Amazon Connect】データテーブルを活用してブラックリスト電話番号を管理してみた

2026.03.02

はじめに

こんにちは、フニです。
本記事では、Amazon Connect のデータテーブル機能でブラックリスト電話番号を管理するユースケースについてご紹介します。

データテーブル機能とは?

Amazon Connect で直接データを保存および管理できる機能です。
データテーブルを使うと、DynamoDB などの外部データテーブルと連携したり、Lambda でコードを作成・管理する手間を削減できます。
詳細は以下の公式ドキュメントをご参照ください。

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/data-tables.html

やってみた

前提

  • Amazon Connect 構築済み
  • 東京リージョン (ap-northeast-1)
  • 操作に十分な権限があること

データテーブルの作成

  1. Amazon Connect コンソール画面にログイン後、データテーブルに移動します。

image.png

  1. 「新しいデータテーブルを追加」を押下します。

image.png

  1. 「名前」と「タイムゾーン」を入力後、「保存」を押下します。

image.png

  1. 「属性を追加」を押下します。

image.png

  1. 「名前」に PhoneNumber を入力、「プライマリ属性の設定」を有効にした後、「保存」を押下します。

image.png

  1. 繰り返し、「属性を追加」を押下します。

image.png

  1. 「名前」に Type を入力、「保存」を押下します。

CleanShot 2026-03-02 at 14.09.46@2x.png

  1. 「レコードを追加」を押下します。

CleanShot 2026-03-02 at 14.10.38@2x.png

  1. 注意事項を確認し、「PhoneNumber」には電話番号を、「Type」には Blacklist を入力した後、「保存」を押下します。

CleanShot 2026-03-02 at 14.11.18@2x.png

  1. データが反映されていることを確認します。

CleanShot 2026-03-02 at 14.12.58@2x.png

フロー解説

下記画像のように、フローを作成しました。
「データテーブル」と「コンタクト属性を確認する」2つのフローブロックで分岐処理をしています。
ブラックリスト登録有無によって「利用できません」と「こんにちは」のアナウンスに分岐されます。

CleanShot 2026-03-02 at 14.20.43@2x.png

補足:データテーブル

属性キーを入力には「$.CustomerEndpoint.Address」を入力し、発信元の電話番号を取得するようにします。
クエリ名は、コンタクト属性を確認するフローブロックで使いますので覚えておいてください。

CleanShot 2026-03-02 at 14.22.19@2x.png

補足:コンタクト属性を確認する

名前空間に「データテーブル」を、キーには <クエリ名>.<属性名> を入力します。
今回は GetPhoneNumber.Type になります。

CleanShot 2026-03-02 at 14.23.16@2x.png

結果

条件分岐ができているか直接電話をかけて確認しました。
以下に CloudWatch ログを一部抜粋しています。

データテーブルにブラックリストとして登録されている場合

電話番号がデータテーブル上にブラックリストとして登録されていたため「利用できません」とアナウンスが流れてきました。

{
    "ContactFlowModuleType": "EvaluateDataTableValues",
    "Parameter": {
        "Queries": [
            {
                "QueryName": "GetPhoneNumber",
                "Attributes": [
                    "Prize"
                ],
                "PrimaryValues": [
                    {
                        "AttributeName": "PhoneNumber",
                        "Value": "+815012345678"
                    }
                ]
            }
        ]
    },
}
{
    "Results": "true",
    "ContactFlowModuleType": "CheckAttribute",
    "Parameters": {
        "Value": "TRUE",
        "SecondValue": "TRUE",
        "ComparisonMethod": "Equals"
    }
}
{
    "ContactFlowModuleType": "PlayPrompt",
    "Parameters": {
        "TextToSpeechType": "text",
        "Text": "利用できません",
        "Voice": "Kazuha"
    }
}

データテーブルにブラックリストとして登録されていない場合

電話番号がデータテーブル上にブラックリストとして登録されていないため「こんにちは」とアナウンスが流れてきました。

{
    "ContactFlowModuleType": "EvaluateDataTableValues",
    "Parameter": {
        "Queries": [
            {
                "QueryName": "GetPhoneNumber",
                "Attributes": [
                    "Prize"
                ],
                "PrimaryValues": [
                    {
                        "AttributeName": "PhoneNumber",
                        "Value": "+815098765432"
                    }
                ]
            }
        ]
    },
}
{
    "Results": "false",
    "ContactFlowModuleType": "CheckAttribute",
    "Parameters": {
        "Value": "",
        "SecondValue": "TRUE",
        "ComparisonMethod": "Equals"
    }
}
{
    "ContactFlowModuleType": "PlayPrompt",
    "Parameters": {
        "TextToSpeechType": "text",
        "Text": "こんにちは",
        "Voice": "Kazuha"
    }
}

注意点

(2026/3/2 時点)
以下のサービスクォーター上の上限があります。
大規模なデータは DynamoDB が向いていますが、小規模なデータを活用する時は十分活用できるかと思います!

  • テーブル — インスタンスあたり合計100個
  • 属性(列) — テーブルあたり100個
  • 値(セル) — テーブルあたり1000個
  • テキスト値の文字数制限 — TEXT型は5000文字、TEXT_LIST型は1000文字

https://docs.aws.amazon.com/connect/latest/adminguide/data-tables.html

さいごに

今回は、Amazon Connect のデータテーブル機能でブラックリスト電話番号を管理するユースケースについてご紹介しました。
この記事が誰かの助けになれば幸いです。

参考

https://dev.classmethod.jp/articles/amazon-connect-try-data-tables/

この記事をシェアする

FacebookHatena blogX

関連記事