ZoomPhoneの留守番電話からZendeskに起票させる
はじめに
Zendeskは電話を通じたサポート起票が可能ですが、電話料金が従量課金であるため、運用コストが気になります。一方、Zoom Phoneは定額制で、すでに社員向けの電話システムとして導入済みの企業も多いでしょう。今回は、Zoom PhoneとZendeskをシームレスに連携し、電話録音データや顧客情報を自動的にZendeskで起票する仕組みを構築した方法をご紹介します。
本連携のゴールは以下のようなフローです:
- Zoom Phoneのボイスメールが記録されると、音声の文字起こし(トランスクリプト)と録音URLを含むWebhookがNode.jsサーバーに送信される。
- Node.jsサーバーが受信したデータを整形し、Google Spreadsheetに保存。
- Google Apps Scriptで電話番号と既存の顧客データ(メールアドレス等)を照合。
- 照合が完了したらZendesk APIを使って、チケットを自動的に起票。
実装の全体構成
この仕組みは、以下の3つの主要な技術要素で構成されています:
-
Zoomアプリ
- Zoom PhoneのWebhookをトリガーする専用アプリを作成し、Node.jsエンドポイントにデータを送信します。
-
Cloud Run (Node.js)
- ZoomからのWebhookを受信し、取得したデータを適切な形式に整形してGoogle Spreadsheetに保存します。
-
Google Apps Script
- Spreadsheet内のデータをもとに電話番号と顧客情報を照合し、対応するメールアドレスとトランスクリプトをセットにして、Zendesk APIを使って自動でチケットを作成します。
注意点
なぜNode.jsを経由するのか
これはZoom WebhookとGoogle Apps Script (GAS) の動作仕様に起因します。
Zoom Webhookでは、指定したURLからHTTPステータスコード200が即座に返されないとエラーとなります。しかし、GASはAPIリクエストに対して直接ステータス200を返すことができず、ステータス302でリダイレクトを経由する仕様です。これが原因でZoom Webhookの期待するレスポンスが返せないため、Node.jsを間に挟み、Cloud Runでステータス200を返すエンドポイントを用意する必要があります。
詳細については、以下の記事で説明されています:
Google Apps ScriptのWebhookの仕様について
なぜ電話番号だけでチケットを送らないのか
ZendeskのAPIでは、チケットを作成する際に顧客のメールアドレスが必須となります。そのため、Zoomから受信する電話番号だけでは不十分であり、Spreadsheet内で電話番号と顧客のメールアドレスを照合してからチケットを起票する必要があります。
構築手順
構築はそれぞれのエンドポイントのURLが必要になってくるため、逆順に構築していきます。
1. Google Apps Scriptでのデータ処理
Node.jsから受け取ったデータ(電話番号)をもとに、Google Spreadsheet上でメールアドレスを照合します。その顧客情報+トランスクリプト+録音URLで、Zendeskにチケットを自動作成します。
2. Cloud Run上でNode.jsアプリの構築
ZoomからのWebhookを受信するため、Google CloudのCloud RunにNode.jsアプリをデプロイします。このアプリは、Zoomから送信される電話番号、録音URL、およびトランスクリプトを受け取り、整形してGoogle Spreadsheetに保存します。
3. Zoomアプリの作成
まず、Zoom Developer PortalでWebhookを利用するための専用アプリを作成します。
- Webhookイベント:Zoom Phoneのボイスメールが記録されたときに発生するイベントを選択します。
- Webhook送信先URL:Node.jsサーバーのエンドポイントを指定します。
4. 動作確認とテスト
- Zoom Phoneでテスト用のボイスメールを残し、WebhookがNode.jsエンドポイントに正しく送信されることを確認します。
- Google Spreadsheetに電話番号、録音URL、トランスクリプトが保存されているか確認します。
- Apps ScriptがZendeskにチケットを作成できるかテストし、チケットに正しい情報が含まれていることを確認します。
実装の効果と今後の展開
この仕組みにより、Zoom Phoneを活用してコストを抑えながらZendeskでの対応を自動化できます。具体的なメリットは以下の通りです:
- 電話対応コストの削減:Zoom Phoneの定額プランを活用し、Zendeskへの自動起票が可能になります。
- 対応漏れ防止:Zoom Phoneのボイスメールが自動でZendeskに起票されるため、対応漏れを防ぎます。
- 顧客満足度の向上:電話録音のトランスクリプトをチケットに含め、迅速かつ正確な対応が可能になります。
今後は、さらなる自動化の一環として、顧客への自動返信メールの送信なども検討しています。
まとめ
Zoom PhoneとZendeskの連携は、業務効率の向上とコスト削減を実現するための強力な仕組みです。Google Apps ScriptやCloud Run、ZoomのWebhookといった技術を組み合わせることで、柔軟かつスケーラブルな自動化が可能になります。
この方法は、他のカスタマーサポート業務にも応用できるモデルとして、多くのビジネスで活用できるでしょう。
このユースケースに限らず、Zoom, Zendesk, Salesforce などSaaS同士の連携を行いたい方はぜひsiracusaまでご連絡ください!
株式会社siracusa のテックブログです。 社内における自動化の仕組みや、BizOpsにまつわる技術的な知見を投稿します。 siracusa.jp/
Discussion