Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

CallConnect REST APIを触ってみる

久しぶりに機能・API両面で気になるクラウドサービスがあったので、触ってみました。

コールセンターを手軽に始めることができるSaaS型のクラウドサービスである「CallConnect」です。

https://www.callconnect.jp/

f:id:sugimomoto:20190715234521p:plain

この記事ではざっくりとAPI情報周りのまとめと認証方法、HTTPリクエスト(Postman)からのリクエスト方法についてまとめています。

次の記事では、Microsoft PowerBI から接続する方法について投稿する予定。(準備中)

トライアルを取得してみる

CallConnectは2週間のトライアルが提供されています。CallConnectのTOPページで取得したい電話番号を指定して始まることができます。(これサービスの裏側ではTwilioが使われてるんですね)

f:id:sugimomoto:20190715234530p:plain

電話番号を指定した後は、会社名・名前・電話番号・メールアドレスを入力して、始めるをクリックするだけ。

f:id:sugimomoto:20190715234536p:plain

指定したメールアドレスにパスワードが届くので、それでログインします。

f:id:sugimomoto:20190715234547p:plain

この状態で一応そのまま使い始めることができます。

f:id:sugimomoto:20190715234555p:plain

試しに、取得した電話番号にかけてみると、Web通話が起動して、そのまま通話が開始できました! 面白いですねー。

f:id:sugimomoto:20190715234602p:plain

通話が完了すると通話履歴が記録され、自動的に顧客情報も登録されます。

f:id:sugimomoto:20190715234612p:plain

f:id:sugimomoto:20190715234620p:plain

また、着信フロー・自動応答ガイダンスも手軽に構成できるのがいいですね。入力された番号で、指定の電話番号にリダイレクトさせることが可能です。

f:id:sugimomoto:20190715234626p:plain

営業時間も指定して、それに応じた自動エスカレーションも可能みたいです。

f:id:sugimomoto:20190715234632p:plain

以上、ざっと触ってみた感想でした。

API Reference

API Referenceは以下のURLで公開されています。

https://www.callconnect.jp/swagger

f:id:sugimomoto:20190715234639p:plain

また、Swagger Spec は以下のURLで公開されているようでした。(Twitter で @kimihom さんに教えてもらいました。 ありがとうございます!)

これを使って、各言語のSDKを生成したり、LogicAppsなどのサービスへ取り込んだりが楽になるのではないかなと思います。

https://www.callconnect.jp/v1/swagger_doc

また、以下のPostmanのコレクション定義も教えてもらいました。これをPostmanに取り込むことでそのまま実行できる状態が整います。

https://callcloud.s3-ap-northeast-1.amazonaws.com/documents/swagger/CallConnect+REST+API-v1-swagger-postman.json

API トークンの取得方法

CallConnectの認証方法は、HTTP HeaderにAPIトークンを付与してリクエストを行うタイプです。

APIトークンはCallConnectの管理画面から入手可能です。

まず、CallConnectにログインし「管理」→「連携」に進みます。

f:id:sugimomoto:20190715234651p:plain

その他のカテゴリに「CallConnect REST API」があるので「連携」をクリックし

f:id:sugimomoto:20190715234659p:plain

「+新規作成」をクリックして任意のラベル名を入力後、保存すればAPIトークンが生成されます。

f:id:sugimomoto:20190715234706p:plain

リクエスト方法(Postmanから)

リクエスト方法はかなりシンプルなREST APIなので、そこまで迷うことはないかもしれないです。

APIを試しましたが、基本的なリクエストの方式は一緒でした。(一部Telだけ特殊かも)

データを取得したい場合はGETリクエストでリソース名をURLで指定するのがオーソドックスです。

以下は顧客情報を取得する場合の例です。ちなみに、ContactsとRecoredsだけ、ページング用のパラメータ「per_page」と「page」が提供されています。

GET /v1/contacts?per_page=100&page=1 HTTP/1.1
Host: nlbhib5563.execute-api.ap-northeast-1.amazonaws.com
X-Callconnect-Token: XXXXXXXXX

レスポンスも比較的シンプルなJSON構成ですね。

f:id:sugimomoto:20190715234716p:plain

リソース名の後にIDを指定することで、対象のデータのみ取得することも可能です。

GET /v1/contacts/3380173 HTTP/1.1
Host: nlbhib5563.execute-api.ap-northeast-1.amazonaws.com
X-Callconnect-Token: XXXXX

エンドポイントによってはSearch機能がサポートされているので、より詳細な検索も可能です。以下はキーワード検索によるリクエスト。

GET /v1/contacts/search?word=CData HTTP/1.1
Host: nlbhib5563.execute-api.ap-northeast-1.amazonaws.com
X-Callconnect-Token: XXXXX

データの作成・更新は「application/x-www-form-urlencoded」で値を指定します。

顧客情報を作成する場合は以下のような感じです。値はURLエンコードして送ります。

POST /v1/contacts HTTP/1.1
Host: nlbhib5563.execute-api.ap-northeast-1.amazonaws.com
X-Callconnect-Token: XXXXXX
Content-Type: application/x-www-form-urlencoded

friendly_number=05012341234&name=HelloUser&company=Hello%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE&email=test%40mail.com&address=%E9%9D%92%E6%A3%AE%E7%9C%8C%E9%9D%92%E6%A3%AE%E5%B8%82

更新する場合は以下のようにPUTリクエストで実施します。部分更新なのがいいですね。他のフィールドの値が初期値で上書きされることはありません。

PUT /v1/users/4719 HTTP/1.1
Host: nlbhib5563.execute-api.ap-northeast-1.amazonaws.com
X-Callconnect-Token: XXXXXXX
Content-Type: application/x-www-form-urlencoded

name=Update&role=2

おわりに

ざっと触ってみました。かなりシンプルかつ綺麗なREST APIで親しみやすい感じですね。

次回はPowerBIとCData REST ODBC Driverを組み合わせて、通話履歴のビジュアライズに挑戦してみたいと思います。