Next.jsでAmazon Connectの標準CCPを埋め込み動的データを取得する方法

今回はNext.jsアプリケーションにAmazon Connectの標準CCPを埋め込み、かかってきた電話がどのキュー経由でかかってきたか視覚的に確認できるアプリケーションを作成したいと思います。

Next.jsは今盛り上がっているフレームワークなので是非使いたいですよね。

当初私はamazon-connect-streamsのライブラリの影響でNext.jsとは相性が良くないと思っていたのですがNext.jsの勉強も兼ねて試しに作ってみたら動作したのでご紹介をしたいと思います。

※なお、本記事はNext.jsとamazon-connect-streamsの組み合わせが絶対的に安全であるという主張ではないのでもし本番運用を想定している場合は要件が実現できるか必ずPoCをすることを推奨いたします。

※また、本記事では動画も載せますがVercelやその他ホスティングサービス等にデプロイはしておらず動作確認は全てローカルで行いましたのでご注意ください。デプロイ環境によっては動作しないことなども考えられます。

Next.js環境を構築

はじめにNext.js環境を構築します。

ちなみに筆者の使用環境は以下です。

Node.js: ^20

TypeScript: ^5

React: ^19

Next: 15.1.3

OS: MacOS

まずはcreate-next-appコマンドを使用します。

次にamazon connect streamsライブラリをインストールします。

これで準備完了です。

フロントエンドコーディング

先に本記事で作成したコードはこちらのリポジトリに公開しているので全体のコードを確認したい方はこちらからどうぞ。

また、このコードはクローンして環境変数にAmazon Connectのインスタンスエイリアス名を入力したら実際にローカルで試してみることも可能です。

その際にAmazon Connectのインスタンス設定にて承認済みオリジンのところにlocalhost:3000などローカルサーバーを追加してください。

追加を忘れると動作致しませんのでご注意ください。

今回はPage Router ではなくAppRouterを採用しております。

それでは初期状態のlayout.tsを編集します。

このような形ですね。

次にpage.tsxを以下のように設定します。


この二つはReact Server Componentsですが次に作成するCCPコンポーネントはClient Componentsになります。


こうですね。

気をつけるべきポイントとしてはuseEffectの中身でamazon-connect-streamsをインポートすることです。
こちらのamazon connect streamsのIssueコメントにてNext.jsを使う場合の注意点が議論されていましたのでそちらを参照いたしました。
これで動作するはずですので動かしてみたいと思います。

動作確認

このように動作いたしました。

今回はQueue名を表示する機能をつけただけですがご覧のようにamazon connect streamsの情報を動的に取得することができたので拡張することができると思います。

また標準CCPを埋め込むだけでなくUIも自前で作成することもできるので標準CCPのUIでは実現できない要件を実装したい場合はお試しください。

最後に

ここまで読んでいただきありがとうございました。

この記事がどなたかの参考になったら幸いでございます。

他にも技術ブログをあげているのでそちらもよろしければ見ていってださい。

私のブログ記事一覧

 

また、株式会社ギークフィードでは開発エンジニアなどの職種で一緒に働く仲間を募集しています。

弊社に興味を持っていただいたり、会社のことをカジュアルに聞いてみたいという場合でも、ご気軽にフォームからお問い合わせください。その場合はコメント欄に、カジュアルにお話したいです、と記載ください!

採用情報はコチラ

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ