
【やってみた】Amazon Connect データテーブルを活用してノーコードでデータを管理してみた
Amazon Connect アドベントカレンダー 2025、15日目の記事です!
クラスメソッドとギークフィードさん、AWS Japanさんの有志が募ってチャレンジしている企画になります。
(アドベントカレンダーのカレンダー一覧はこちら↓)
はじめに
こんにちは、フニです。
先日、Amazon Connect にデータテーブル (Data Tables) 機能が追加されました。
実際使ってみたらとても便利だったのでご紹介いたします。
何が嬉しい?
従来は DynamoDB などの外部データテーブルと連携する際、Lambda でコードを作成・管理する必要がありました。データテーブルを使うと、この手間を削減できます。
また、ノーコードで簡単にデータを操作できるので、非エンジニアの方にとっても嬉しい機能かと思います。
やってみた
📌 ゴール
かかってきた電話番号が、データテーブル上に存在すれば「当たり」を、存在しない場合は「ハズレ」の案内音声を流します。
前提
- Amazon Connect 構築済み
- 東京リージョン (ap-northeast-1)
- 操作に十分な権限があること
データテーブルの作成
- Amazon Connect コンソール画面にログイン後、データテーブルに移動します。

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

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

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

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

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

- 「名前」に Prize を入力、「保存」を押下します。

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

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

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

フロー解説
下記画像のように、フローを作成しました。
「データテーブル」と「コンタクト属性を確認する」2つのフローブロックで分岐処理をしています。

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

補足:コンタクト属性を確認する
名前空間に「データテーブル」を、キーには <クエリ名>.<属性名> を入力します。
今回は GetPhoneNumber.Prize になります。

結果
条件分岐ができているか直接電話をかけて確認しました。
以下に CloudWatch ログを一部抜粋しています。
データテーブルに登録されている場合
電話番号がデータテーブル上に存在するので True 判定になり、当たりのアナウンスが流れてきました。
{
"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"
}
}
データテーブルに登録されていない場合
電話番号がデータテーブル上に存在しないので False 判定になり、ハズレのアナウンスが流れてきました。
{
"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"
}
}
注意点
(2025/12/15 時点)
以下のサービスクォーター上の上限があります。
大規模なデータは DynamoDB が向いていますが、小規模なデータを活用する時は十分活用できるかと思います!
- テーブル — インスタンスあたり合計100個
- 属性(列) — テーブルあたり100個
- 値(セル) — テーブルあたり1000個
- テキスト値の文字数制限 — TEXT型は5000文字、TEXT_LIST型は1000文字
まとめ
今回は、Amazon Connect にデータテーブル (Data Tables) 機能を使ってみました!
従来は DynamoDB などの外部データテーブルと連携する際、Lambda でコードを作成・管理する必要がありました。データテーブルはその手間を削減できる嬉しい機能だと思っています。
ノーコードで簡単に操作できるので、非エンジニアの方にとっても嬉しい機能ですね!
参考








