Header image

クラッソーネの開発者がエンジニアリングに関することもそうでないことも綴っています!

Genesys入門時にハマったポイント

Genesys入門時にハマったポイント

こんにちは、プロダクト開発部の永元です。

クラッソーネではCTIシステムとしてGenesysを利用しており、管理する顧客情報を連携するためにいくらかハマることがありました。将来の自分のためにも記事として残しておきます。

CTIとは

CTIは、Computer Telephony Integrationの略称です。ざっくり説明すると、所謂コールセンターの業務をサポートするシステムです。詳細に知りたい方はこちらをどうぞ。

Genesysとは

従来のコールセンターを劇的に進化させる先進のCTIシステム。それが、ジェネシスのコンタクトセンター・ソリューションです。

コンタクトセンター・コールセンターソリューション | オムニチャネル・カスタマーエクスペリエンス | ジェネシス より

GenesysはCTIシステム業界では大手で機能も充実しています。CTIシステムがB向けという性質を持ち、本社がアメリカのサービスなため、大手とは言え日本での認知度は高くなく、公式サイト以外の日本語情報も少ないです。

連絡先の扱い

Genesysでは「外部の連絡先」[1]という名前で顧客情報を扱います。また、「外部の連絡先」には個人と組織が存在します。エンジニアとしてAPIを扱う都合上、日本語訳より英語で覚えることをおすすめします。
外部の連絡先 → external contacts
外部の連絡先(個人) → external contacts(contacts)
外部の連絡先(組織) → external contacts(organizations)

ハマりポイント

新しいサービスを利用開始するときは多少ハマるのは当たり前だと思います。ここでは私が特にハマったことを紹介します。

公式ドキュメントページの閲覧に少し慣れが必要

公式ドキュメントは充実しており、うまく検索できれば目的の情報は見つかります。ただ少し慣れが必要です。

公式ドキュメントページはResource CenterDeveloper Centerと大きく2つに分かれていますが、統一感のあるデザインのため、混同しないように注意しましょう。開発者向けの情報はDeveloper Centerを当たりましょう。Resource Centerの検索ボックスからはサンプルコードなどの開発者が求める情報には辿り着けません。(自戒)

日本語のページもそれなりに存在しますが、英語ページしか存在しないことがよくあるため、最初から英語のページを見るのがおすすめです。

特によく閲覧するページ

  • External Contacts: 外部連絡先関連のAPI一覧できます。顧客情報に関するAPIはだいたいここを見ればなんとかなります。
  • Software Development Kit (SDK): 各SDKとそのサンプルコードが一覧できます。
  • Tutorials: 各環境・言語における様々な利用シーンのチュートリアル(サンプルコード)を一覧できます。自分の目的に近いサンプルが掲載されているととても嬉しいです。
  • Developer Tools: ブラウザで動作する開発者向けツールです。色んなAPIを試しに呼び出したり、サンプルコードを動かしたりできて便利です。

API利用を始めるためにWEBアプリ上から事前準備が必要

よくある話ではありますが、GenesysでもAPI利用を可能にする事前設定が必要です。利用する認証方法に応じた設定をしましょう。日本語・英語両方のヘルプページを貼っておきますが、APIやその認証方法に詳しい人は英語版だけを読んだほう理解が早いと思います。
Create an OAuth client - Genesys Cloud Resource Center
OAuthクライアントを作成する-Genesysクラウドリソースセンター

GenesysAPIは複数の認証方法に対応しています。次のリンクを参照し、利用シーンに適した認証方法を選びましょう。
https://developer.genesys.cloud/api/rest/authorization/

RubyのSDKがない

厳密には「サポート中のRuby SDKがない」です。
Deprecation: Genesys Cloud Ruby SDK - Genesys Cloud Resource Center
DeprecationですがRuby SDKはGitHubに公開されているので参考にすることは可能です。実際に弊社では参考にして認証部分の実装を行いました。

Rubyにはありませんが、JavaScriptを始め、主要言語で複数種類のSDKが提供されています。公式SDKが豊富なのは非常にありがたいです。

連絡先のバリデーション

外部の連絡先(個人)の場合は姓・名が必須です。姓と名を分けずに管理しているところは対応が必要そうです。
姓: 鈴木一郎
名: .
のように姓と名どちらかにフルネームで設定し、使わない方に意味はなくとも何某かの文字を設定する…といった回避方法はありますが、あまりおすすめしません。Genesysの担当者と自社の状況を踏まえて相談しましょう。

外部の連絡先(組織)の場合は組織名のみ必須です。こちらは特に躓くことはなさそうです。

電話番号の形式

"090xxxxxxxx"
は電話番号として認識されません。電話番号冒頭の0は国内を意味するプレフィックスであり、GenesysのAPI利用時には日本の電話番号であることを明示する必要があるためです。冒頭の"0"を"+81"に置換した"+8190xxxxxxxx"であれば日本の携帯電話番号として認識され、APIから登録が可能です。

ちなみにGenesysのWEBアプリから入力するときは自動的にデフォルトで設定されている国コードに変換して保存してくれます。そのおかげでAPI利用時のエラー原因に気づきにくいです。

※電話番号のプレフィックスなど詳細については総務省|電気通信番号制度|電話番号に関するQ&Aの参照をおすすめします

電話番号検索に癖がある

"090xxxxxxxx"
という携帯電話番号について検索したいときは
"90-xxxx-xxxx"
で検索しましょう。

冒頭の国を表すプレフィックスは削除し、ハイフン(全角半角どちらでも可らしい)ありの形式であればHITします。これを知らないと、
「APIで外部の連絡先を作成して200レスポンスだったけど、作成したはずの連絡先が見つからない」
と焦ることになります。(自戒)

また、この仕様はAPIを利用した検索・WEBアプリ上の検索どちらも同じ仕様です。Genesysで電話対応を行うスタッフにこそ、知らせたいです。

最後に

ハマった後に「早く担当者に聞いておけばよかったな。聞いたらすぐ解決してたな。」という反省が私にはありました。Genesysに限らず、新しいツール・サービスの利用を始めるときに多少ハマるのは仕方のないことです。早めに積極的に問い合わせていきたいですね。

We Are Hiring!

クラッソーネに少しでも興味を持っていただけたらぜひお気軽にご連絡ください。

https://www.crassone.co.jp/recruit/engineer/

脚注
  1. コールセンターのメンバーが内部。電話をかける・かけてくる相手が外部という扱いらしいです。 ↩︎


スプラトゥーンへの愛情には定評がある。ウデマエは崖っぷちX。