BIZTEL-AmiVoice-Sheets で電話対応の履歴をスプレッドシートに書き出すまで

# これは何？

下記のようなことができるのか、の実験記録。

* [BIZTEL](https://biztel.jp/)を使って電話サポートを行うとして、
* 音声通話の内容を[AmiVoice](https://acp.amivoice.com/amivoice/)を使って文字起こしもしたい。
* ついでに通話の情報(通話開始、通話終了、担当者、、、および文字起こしの内容)をスプレッドシートに書き出したい

これについては [BIZTEL API使ってみた Vol.5　Google Sheets APIと連携して対応履歴を自動作成したい](https://biztel.jp/blog/2021/09/29/7459/) に手順が載ってそうだ。

ということでやってみた。



# 必要なもの

* BIZTEL のアカウント
* AmiVoice Cloud Platform のアカウント
* GCP のアカウント

# 事前の設定
* BIZTELで電話対応ができる状態。(私はBIZTEL自体の設定方法はよくわかっていませんのであしからず…)
* AmiVoiceの設定も済んでいる状態から受け取ったのでAmiVoiceの設定はよくわかってないです。(おそらくBIZTELと連携するためのAPIキーが発行できるのかなと推測)


# 全体像のイメージ図

多分こんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/3914bf68-bfa4-1ee5-d2da-4b18c0c31544.png)


# GCPの設定

* GCPにプロジェクトを作る ([このあたり](https://console.cloud.google.com/projectcreate)から)
* `APIとサービス` > `認証情報` から `認証情報を作成` で `OAuthクライアントID` を選択
* アプリケーションの種類に `ウェブ アプリケーション` を選択
* 任意の名前を入力 (BIZTEL連携用、とか？)


これでクライアントが作成されるが、
* この時点では「名前」だけ入れたクライアントでOK
* ここで生成される `クライアントID` と `クライアントシークレット` を後で使う(*1)
* BIZTELの設定をした後に`承認済みのリダイレクト URI` を設定する必要がある



# BIZTELでOAuthの設定

* 左メニューバーの `連携オプション` > `OAuthアカウント登録` から「新規」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/4d774503-5a95-b44a-2f60-05f8888d5d18.png)


↓こんな画面になるので

![biz1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/fbf3f445-2fb3-359f-0e47-b477671dc404.png)


* `名称` は任意で。(「GoogleOAuthのアカウント」とか) (*2)
* `クライアントID`と`クライアント・シークレット`に、(*1)の情報をいれる
* `認可URL` は `https://accounts.google.com/o/oauth2/auth`
* `認可コード フロー scope` は `https://www.googleapis.com/auth/spreadsheets`
* `認可コード フロー パラメータ`は `prompt=consent&access_type=offline`
* `アクセストークンURL` は `https://www.googleapis.com/oauth2/v4/token`

↑これらの情報をどこで知ったかというと[BIZTEL API使ってみた Vol\.5　Google Sheets APIと連携して対応履歴を自動作成したい \| BIZTELブログ](https://biztel.jp/blog/2021/09/29/7459/)のページにある 「①OAuthアカウントの登録」 の項目の **「画像の中」**


あとはデフォルトのままで「保存」

その後、もう一度今のやつをクリックすると、画面の一番下が↓こうなってると思うので「トークン取得」を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/bf24b38c-de90-bc12-bdf9-6fe78372598d.png)

うまく行けばここでGoogleログインの認証が入るのでアカウント選んで、アクセスを許可する。

トークン取得が成功するとこうなるはず↓

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/2f8fca2e-f29d-8d1f-bada-3976850ae663.png)



# BIZTELでコールアクションの設定

* 左メニューバーの `連携オプション` > `コールアクション連携` で「新規」を押す
* `コールアクション名` を入力する (「検証用コールアクション」にした)
* `連携対象` のタブ > 「編集」 から「このアクションに紐づける電話番号」を選択する
* `API連携` のタブ > 「新規」で下記のような設定をする (皆さんの環境に合わせて設定してください)

↓こんな初期画面になるので

![b2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/ae189569-f6b5-1077-1f01-35929614fe04.png)
![b3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/3073f103-d00d-35de-ee52-032f39df65da.png)

* `イベント種類` に `録音完了／音声認識連携完了`
* `API連携種別` で `OAuthトークン取得`を選択
* `OAuthアカウント` に (*2) のアカウントを選択
* `URL` にBIZTELからSheetsAPIに送るリスエストURLを書く
```plaintext:URL
https://sheets.googleapis.com/v4/spreadsheets/xxxxxx/values/シート名!A1:append?valueInputOption=RAW&insertDataOption=INSERT_ROWS
```

* `メソッド` は `POST`
* `リクエストヘッダ`
```plaintext:リクエストヘッダ
accept:application/json
Content-Type: application/json
```

* `リクエストボディ`
 ```plaintext:リクエストボディ
{
	"majorDimension": "ROWS",
	"values":[
		["{ID}","{START_TIME}","{TEL}","{CALLED}","{END_TIME}","{AGENT_NAME}","{CALL_SEC}","{VOICE_LOG}"]
	]
}
 ```

 ↑これは「何をどの順でシートに書き出したいか」によって変更してください。
何の値が取れるのか、については [1\.コールアクション – BIZTEL Manual](https://manual.biztel.jp/hc/ja/articles/900001214983-1-%E3%82%B3%E3%83%BC%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3) の `4. 変数展開コード` を参照。

私の環境では下記のようになりました。

![biz2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/904d95e5-9e80-2651-0944-c87096513c84.png)



あとはデフォルトのままで「保存」

# BIZTELでAmiVoiceの設定

最初に書きましたが、私自身AmiVoiceの設定をよくわかってないのですが、私が引き継いだ時点で

`連携オプション` > `音声認識連携` が下記のようになってました。

おそらくAmiVoiceの管理画面で、BIZTEL用の「サービス」が設定できると思われます。

![b4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/6bf66bec-fe87-63fb-4f86-5d21c8dc9294.png)


`連携対象` のタブから、連携させたい電話番号をチェックします。


# やってみよう

この状態で連携対象の電話番号に電話をかけて、通話をしてみてください。
うまくいけば下のキャプチャのようにシートに記録が残ります。すごい。(文字起こしの精度はAmiVoice次第)

![biz3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8612/a30ed9f1-2e5f-2963-0a4b-b1240b413099.png)


# おわりに

BIZTEL使ってる人のお役に立てたらうれしい。