API連携で必ず理解しておきたい基礎と設計ポイント
Genesys Cloud のData Actionは、外部システムと連携する際に非常に重要な機能です。
例えば次のようなシステムと、REST API を通じて連携できます。
- CRM
- 顧客データベース
- 社内API
- 予約システム
- AIサービス
- Webサービス
しかし実際のプロジェクトでは、
「公式ドキュメント通りに設定しても動かない」
というケースに遭遇することも少なくありません。理由の多くは次のとおりです。
- Data Action独自の仕様
- API連携時の設計ミス
- レスポンス処理の理解不足
本記事では、Genesys Cloud の Data Action を利用する際にまず理解しておくべき基礎構造と、実務でよく遭遇する設計上のポイントを解説します。
なお、本シリーズでは Genesys Cloud Data Actionの実務ノウハウを数回に分けて紹介していきます。予定している内容は次の通りです。
| 回 | テーマ |
|---|---|
| 第1回 | Data Actionの基本構造と処理の流れ |
| 第2回 | Data Actionでよくあるトラブルと原因 |
| 第3回 | translationMap / successTemplate の実践解説 |
| 第4回 | API連携時の設計ベストプラクティス |
今回はその第1回として、まずData Actionの基本構造を整理していきます。
Data Actionとは
Data ActionはGenesys Cloudから外部APIを呼び出すための機能です。主に Architect フローの中から利用され、外部システムとのリアルタイム連携を実現します。
一般的な処理の流れは次のようになります。
Genesys Cloud Architect
↓
Data Action
↓
外部API
↓
外部システム
利用例としては次のようなものがあります。
| 用途 | 例 |
|---|---|
| 顧客情報取得 | 顧客DB検索 |
| 予約確認 | 予約システム |
| 注文情報取得 | ECシステム |
| 履歴保存 | 外部ログシステム |
| AI連携 | 外部AI API |
Data Actionの内部処理
Data Actionは内部的に次の順序で処理されます。
Architect
↓
Action Input
↓
HTTP Request
↓
External API
↓
translationMap
↓
successTemplate
↓
Architectへ返却
この中で特に重要なのが次の2つです。
translationMapsuccessTemplate
この仕組みを理解していないと、Data Actionが正しく動作しないケースがあります。
translationMapの役割
translationMapはAPIレスポンスから必要な値を抽出する処理です。
例えば次のAPIレスポンスが返ってきた場合:
{
"data": {
"customerId": "12345",
"status": "active"
}
}
translationMapでは次のように値を取得します:
"translationMap": {
"customerId": "$.data.customerId",
"status": "$.data.status"
}
この処理により、customerId = 12345 / status = active が取得され、その結果が successTemplate に渡されます。
successTemplateの役割
successTemplateは「translationMapの結果」を使って、最終的にArchitectへ返すJSONを生成します。
例:
{
"customerId": "${customerId}",
"status": "${status}"
}
この場合、Architect側では output.customerId のように値を利用できます。
Data Action設計で重要なポイント
実務では次の3点が重要になります。
① APIレスポンスを小さくする
Data Actionはリアルタイム処理のため、巨大なJSONを扱うと処理が遅くなります。必要なデータだけ取得する設計が推奨されます。
② APIレスポンス時間を意識する
Data Actionは Architect フロー内で実行されます。APIが遅いとIVRが止まる(待たされる)可能性があります。目安としてAPIレスポンス 3〜5秒以内を狙うと運用が安定します。
③ 処理のタイミングを考える
重い処理は通話中ではなく、通話終了後に実行する設計もよく使われます。
通話終了
↓
Data Action
↓
履歴保存
まとめ
Data Actionを利用する際には translationMap / successTemplate の処理構造を理解することが重要です。あわせて、次の観点を設計に織り込む必要があります。
- APIレスポンスサイズ
- APIレスポンス速度
- 処理タイミング
次回予告
第2回では Genesys Cloud Data Actionでよくあるトラブル について解説します。特に次のような問題を取り上げる予定です。
- successTemplate の JSONエラー
- translationMap の JSONPathミス
- API Timeout
- レスポンスサイズ制限