Illustration of a person on a call, cloud computing icons, and a support agent, symbolizing cloud-based customer service.

コールフローのベストプラクティス

最終更新日 May 26, 2026

所要時間:1 分

コールフローとは、顧客が御社にコンタクトした際に案内される、構造化された経路のことです。最初のあいさつから最終的な解決まで、すべてのやりとりをマップ化し、メニューオプション、待ち時間、システムやエージェント間の転送を含みます。コールフローは、顧客が適切な部署に迅速にたどり着き、満足して帰れるかどうかを決定します。設計が悪いと、無関係なオプションやイライラする行き止まりの迷路に迷い込んでしまいます。おそらく、その両方を経験したことがあるでしょう!

以下は、コールフローの2つの例である:

シナリオ1

  1. 商品を注文した企業のカスタマー・サポートに電話した。

  2. メニューが表示される:

    1. 注文のステータスを確認したい場合は1を押してください。

    2. 注文番号がわからない場合は、2を押して注文状況を確認する。

    3. 追跡番号を知っている場合のみ、3を押すと注文の配送状況を確認できます。

    4. 注文の配送状況を確認するには4を押しますが、注文番号がわかっている場合に限ります。

    5. 追跡番号がわからない場合は、5を押して配送状況を確認する。

    6. 0を押して担当者と話す

  3. 注文番号も追跡番号もわからないので0を押すと、繰り返しの音楽が流れる間、保留にされる。

  4. 保留中に、追跡番号があればオンラインで注文状況を確認できることも知らされる。

  5. あなたは ようやく担当者はあなたの名前と住所から注文番号を調べますが、注文の状況はわかりません。

  6. 転送されている間、また保留になり、同じ音楽が繰り返し流れます。

  7. そのため、名前と住所、注文番号をもう一度伝えなければなりません。

  8. 追跡番号も教えてくれる。しかし、配達状況を調べることはできず、代わりに配達業者のウェブサイトをチェックするようアドバイスする。

  9. あなたは電話を切り、二度とこの会社とは仕事をしないと誓った。

A stock photo of a man yelling at a cell phone in frustration against a pink gradient background.Does calling customer service sometimes feel like this?シナリオ2

  1. あなたが商品を注文した企業のカスタマーサポートに電話し、まだ商品が届いていない。

  2. メニューが表示される:

    1. 注文状況を確認したい場合は、1を押してください。

    2. 別の注文をする場合は2を押してください。

    3. 0を押して担当者と話す

  3. 1を押すと、オプションのメニューが表示される:

    1. 注文番号がお分かりの場合は、その番号を口に出すか、キーパッドを使って入力してください。

    2. 注文番号がわからない場合は、「注文番号がわかりません」と言い、そのまま担当者に代わってください。

  4. 注文番号がわからないと言うと、しばらく待たされる。

  5. あなたが担当者につながったとき、担当者はすでにあなたの電話番号(注文に関連づけられたもの)を使って、データベースであなたの購入を調べている。

  6. 注文が輸送中であることを伝え、追跡番号を伝え、明日配達予定であることを知らせる。

  7. あなたは電話を切り、注文の品を受け取るのを楽しみにしている。

この2つのシナリオは、貧弱なコールフロー設計と効果的なコールフロー設計の違いを浮き彫りにしています。どちらのコールフローがより良い顧客体験を提供するのでしょうか?

良好なコールフローと顧客ロイヤルティ

コールフローのベストプラクティスを導入することは、単なる礼儀作法ではなく、収益に直接影響します。コールフローが悪いと、顧客に不満や不満を与え、離脱率を高め、ブランドの評判を落とします。誤発信はビジネスリソースの浪費にもつながります。逆に、うまく設計されたコールフローは、通話時間を短縮し、初回コンタクトの解決率を向上させ、信頼と顧客ロイヤルティを築くことができます。

この記事では、コールフローを競争上の優位性に変えるための重要な原則と実践的な戦略を探ります。また、Vonage Voice APIを使った Vonage Voice APIを使用して、カスタマーエクスペリエンスと業務効率を向上させる方法を紹介します。

効率的で効果的なコールフローのベストプラクティス

顧客ロイヤルティとブランド好意を育む顧客体験を創造する上で、優れたフローが重要であることがお分かりいただけたと思うので、コールフローを開発する際に留意すべきベストプラクティスを検討しよう。

効果的な対話型音声応答システムの設計

インタラクティブ・ボイス・レスポンス(IVR)とは、自動電話技術の一つで、音声やDTMFを使用してコンピュータと対話することができます。 デュアル・トーン・マルチ・フリークエンシー(DTMF)キーパッドに入力されたトーンを使ってコンピュータと対話できるようにする自動電話技術である。IVRは通常、音声またはDTMFを使用して発信者がオプションを選択するメニューで実装されています。

適切な場所での意図的なセルフサービスによるエージェントの作業負荷の軽減

顧客が電話を取ろうと決断したときには、すでに他のセルフサービスの選択肢はすべて使い果たしている可能性が高い。IVRは通常、コールフローの最初のステップですが、この種の自動化は慎重に行い、顧客に人間のエージェントへの「逃げ道」を提供することが重要です。しかし、セルフサービスで処理できるようなコールでエージェントに過度の負担をかけることも避けたい。自動化、セルフサービス、人間のエージェントのバランスをとるには、配慮と意図が必要です。

メニューを作るときは、選択肢を増やしすぎて顧客を圧倒しないこと。選択肢は3つから最大5つに制限し、明確で簡潔な言葉を使いましょう。適切なフォールバック処理でタイムアウトを実装し、メニューのオプションが顧客のニーズに当てはまらない場合は、エージェントに直接話すオプションを提供します!

音声品質と自然言語処理への投資

ロボットのような音声のインターフェイスと対話することほど、冷淡で疎外感を感じることはない。これに対抗する一つの方法は、より多くのエバーグリーンメッセージを録音するために人間の声優を雇い、高品質の音声合成オプションに投資することである。音声合成オプションに投資することだ。

さらに、メニューベースの硬直したIVRシステムではなく、自然言語処理を使用することで、特に言語の壁がある場合、発信者を混乱させたりイライラさせたりする可能性のある硬直した事前定義スクリプトではなく、より柔軟な顧客対応が可能になります。この柔軟性により、IVRはより幅広い顧客に対応でき、コールフローが適切なルーティングを行う可能性が高まります。AIがより身近になったことで 自然言語処理をコールフローに簡単に組み込むことができます。.

パーソナライゼーションのための顧客関係管理の統合

カスタマー・リレーションシップ・マネジメント(CRM)とは、潜在顧客や既存顧客との関係を構築し、ビジネスを成長させるために、顧客とのやりとりを記録、整理、分析する概念を指します。実際には、CRMとは、顧客とのやり取りを記録・整理するシステム、または企業が顧客との関係を管理する戦略のことを指します。基本的に、CRMシステムが行うことは、接触や注文以外のデータも含めた顧客のプロフィールを、今後のコミュニケーションに役立つすべての対話の記録にまとめることです。

コールフローに関しては、CRMシステムを統合することで、顧客データの検索を自動化し、よりカスタマイズされたエクスペリエンスを構築しやすくなります。自動番号識別(ANI)/発信者番号識別(CLI)の使用発信者番号通知(CLI)を使用して発信者を識別することで、コールフロー内のCRMは、発信者がエージェントに到達したときに、セルフサービスのオプションを調整したり、コールのコンテキストを提供したり、あるいは、発信者を以前に一緒に仕事をして良い結果を得たエージェントにルーティングしたりするのに役立ちます。このようなパーソナライゼーションは、顧客満足度と顧客維持率の向上に役立ちます。

さらに、CRMシステムとの統合により、通話は自動的にログに記録され、文書化されるため、顧客履歴の記録維持、コンプライアンスと品質の確保、コールフロー改善のためのデータ提供に役立つ。

発信者とスキルベースのエージェントのマッチング

顧客からの問い合わせはすべて同じではありません。すべての発信者を次に対応可能な担当者にルーティングすることは、理論的には効率的かもしれませんが、解決に時間がかかったり、不必要な転送が発生したりすることがよくあります。その代わりに、スキルベースのルーティングを導入し、特定の問題を処理するのに最適なスキルを持つエージェントにコールを誘導します。

例えば、請求書に関する問い合わせは、アカウントや支払シス テムに関するトレーニングを受けたエージェントに、テクニカルサポートに関 する問い合わせは、製品に関する専門知識を持ったエージェントに、それぞれルーティン グすべきである。こうすることで、摩擦を減らし、通話時間を短縮し、最初のコンタクトで解決できる可能性を高めることができる。

顧客のニーズとエージェントの専門知識を最初から一致させることで、よりスムーズで有能な体験を生み出し、信頼と満足を築くことができる。

エラーを潔く処理する

どんなにうまく設計されたコールフローでも、入力の間違い、システムのタイムアウト、ユーザーの予期せぬ行動などのエラーに遭遇する。フラストレーションのたまる体験とポジティブな体験を分けるのは、このような瞬間にどのように対処するかである。

呼び出し元を堅苦しいループに無理やり通したり、システムから追い出したりするのではなく、優雅なエラー処理を念頭に置いてフローを設計しよう。何か問題が発生した場合、システムは呼び出し元を混乱に陥れるのではなく、前方に導くべきです。さらに、エラー・ポイントをログに記録し、分析することで、パターンを明らかにすることができます。

思慮深く対処すれば、エラーは信頼性と配慮を示す機会となり、潜在的なフラストレーションを、システムが顧客のことを考えて設計されているという安心感に変えることができる。

A stylized flat-style diagram of an individual calling customer service.A thoughtfully designed call flow can inspire customer trust and loyalty.

サンプルアプリケーションコールフローの実例

Pythonで書かれたこのサンプル・アプリケーションでは Voice APIを使用しています。を使ってコールフローのベストプラクティスを示します。このアプリケーションでは SQLite データベースデータベースを使用して、コールのパーソナライズと顧客とのインタラクションのロギングに使用されるCRMをシミュレートします。おそらくこのコードを本番で使用したいとは思わないだろうが、顧客を遠ざけるのではなく、維持するのに役立つコールセンターの自動化を構築するための基礎として役立つ。

アプリをローカルで実行するための完全なコードと README は GitHub の Vonage コミュニティ.

IVRのベストプラクティス

サンプル・アプリケーションでは、電話をかけてきた人にオプション・メニューが表示される:1:課金、2:テクニカル・サポート、3:アカウント管理。これらのオプショ ンがどれもニーズに合わない場合、0をダイヤルしてオペレーターと話すことができる。メニューは5つまでで、各項目は簡潔に説明されている。

  def build_welcome_menu_ncco(self) -> List[Dict]:
        """
        Build the welcome menu NCCO with IVR options
        Demonstrates: Effective IVR with self-service + escape routes
        """
        webhook = f"{settings.ngrok_url}/ivr/menu-selection"
        greeting = "Welcome to our customer service. Press 1 for billing, 2 for technical support, or 3 for account management. Press 0 to speak with an operator."

        ncco = [
            {"action": "talk", "text": greeting, "style": 11, "bargeIn": True},
            {
                "action": "input",
                "type": ["dtmf"],
                "dtmf": {"maxDigits": 1, "timeOut": 3},
                "eventUrl": [webhook],
                "eventMethod": "POST",
            },
        ]

        return ncco

アプリケーションは NCCO talk inputアクションを使用してメニュー・オプションをリストし、発信者の選択を記録する。オペレーターのために0をダイヤルすることで、より複雑なニーズに対応するエスケープルートを提供します。

Vonage Call Control Objects(「NCCO」とも呼ばれる)の詳細については、次のドキュメントを参照してください。 ドキュメンテーション.

スキルに基づくエージェント・ルーティング

デモンストレーションのために、このアプリケーションは、CRMシステムの代用として、あらかじめ入力されたSQLiteデータベースを使用して、発信者の顧客情報を取得します。本番環境では、デプロイプロセスのマイグレーション後に実行されるシーダーとして、これらのレコードを書き込むことになるでしょう。A NCCO talkアクションは、特定の要求された顧客情報を復唱することで、スキルベースのエージェントをシミュレートします。

    def build_customer_greeting_ncco(
        self,
        uuid: str,
        call_info: dict = None,
        department_info: str = None,
    ) -> List[Dict]:
        """
        Build personalized greeting for customer
        Demonstrates: CRM integration for personalization
        """

        greeting = "Unfortunately, we don't have any customer records associated with this number."

        # If the customer has an entry in the database
        if department_info:
            customer_name = call_info.get("customer")["name"]
            greeting = f"Hello {customer_name}, welcome back. The information you requested is as follows: {department_info}."

        greeting_ncco = [{"action": "talk", "text": greeting, "style": 11}]
        recording_ncco = self.build_recording_ncco(uuid)
        return greeting_ncco + recording_ncco

カスタマー・コールバックのあるエスケープ・ルート

オペレーターを呼ぶために0をダイヤルした場合、アプリケーションはコールキューが一杯であることをシミュレートし、ご迷惑をおかけしていることをお詫びし、オペレーターが対応可能になった時点で電話をかけます。

 def build_operator_greeting_ncco(
        self,
        uuid: str,
        call_info: dict = None,
    ) -> List[Dict]:
        """
        Build the operator greeting for customer
        Demonstrates: Escape route + customer follow up
        """

        greeting = "I'm sorry, all operators are currently busy. We will call you back in a moment when an operator becomes available."

        ncco = [
            {"action": "talk", "text": greeting, "style": 11},
        ]

        # Schedule callback in configured seconds
        from_number = call_info.get("from")
        asyncio.create_task(self.schedule_callback(from_number, uuid, call_info))

        return ncco

これはデモンストレーション・アプリケーションなので、利用可能なオペレーターではなく、10秒間のカウントダウンを使ってコールバックを行う。

  async def schedule_callback(
        self, phone_number: str, uuid: str, call_info: dict = None
    ):
        """
        Simulate calling a customer back instead of making them wait on hold
        Demonstrates: Graceful error handling with follow-up contact
        """

        delay_seconds = 10
        try:
            print(f"Scheduling callback to {phone_number} in {delay_seconds} seconds")

            customer_name = call_info.get("customer")["name"]
            greeting = "Hello. We are calling you back."

            if customer_name:
                greeting = f"Hello {customer_name}. We are calling you back."

            # Wait for the specified delay
            for i in range(delay_seconds, 0, -1):
                print(f"Calling {phone_number} in {i} seconds ... ")
                await asyncio.sleep(1)

            ncco = [{"action": "talk", "text": greeting, "style": 11}]

            print(f"Now returning call to: ==> {phone_number}")

            call = CreateCallRequest(
                ncco=ncco,
                to=[ToPhone(number=phone_number)],
                from_=Phone(number=settings.vonage_virtual_number),
            )

            response = self.client.voice.create_call(call)

            return response.status

        except Exception as e:
            print(f"Error in callback scheduling: {str(e)}")

より良いカスタマーサポートのためのインタラクションのログ

使用方法 NCCO recordアクションを使用して、アプリケーションは発信者に通話品質に関するメッセージを残すよう求めます。この録音は、CRMシステムに顧客との対話として書き起こされ、記録される。本番配備されたコールフローでは、このように記録された対話は、コール品質を改善し、顧客とエージェント間の対話をパーソナライズするのに役立ち、より暖かいエクスペリエンスを生み出します。

  def build_recording_ncco(self, uuid: str) -> list[Dict]:
        """
        Build the recording NCCO
        Demonstrates: Logging customer interactions in CRM
        """

        webhook = f"{settings.ngrok_url}/webhooks/recording?uuid={uuid}"

        greeting = "Thank you for calling. Please leave a message about the quality of this call. Press the pound key when you are done."

        ncco = [
            {"action": "talk", "style": 11, "text": greeting},
            {
                "action": "record",
                "endOnKey": "#",
                "beepStart": True,
                "endOnSilence": 3,
                "transcription": {
                    "eventUrl": [webhook],
                    "eventMethod": "POST",
                    "language": "en-US",
                },
            },
            {
                "action": "talk",
                "text": "Thank you for your message. Goodbye.",
                "style": 11,
            },
        ]

        return ncco

潔く失敗する

通話が予期せぬ方向に進んだからといって、フローを中断する必要はない。これが、アプリケーションにおけるエラーの処理方法である:

    def build_error_ncco(self) -> List[Dict]:
        """
        Build NCCO for error handling
        Demonstrates: Graceful error handling
        """

        greeting = "Sorry, I didn't understand that input. Please try again."
        greeting_ncco = [{"action": "talk", "text": greeting, "style": 11}]
        return greeting_ncco

流れに身を任せる

よく設計されたコールフローは、単に技術的に必要なだけではありません。顧客が御社のビジネスをどのように認識するかを形成する重要なタッチポイントです。メニューをシンプルに保ち、自動化と人的サポートのバランスをとり、自然で応答性の高いインタラクションに投資し、CRMデータを活用してパーソナライズを行い、電話を効率的にルーティングし、エラーには慎重に対処することで、イライラさせるのではなく、直感的に感じられるエクスペリエンスが生まれます。旅のすべてのステップが意図的であれば、顧客はシステムをナビゲートする時間を減らし、必要なサポートを受ける時間を増やすことができます。Vonage Voice APIを使ったコールフローの構築を今すぐ始めましょう。

その他の資料

  • Node.jsとExpressを使用して対話型音声応答メニューを構築する:このチュートリアルでは、Vonage Voice API と Node.js を使用して、着信コールを受信し、キーパッド経由でユーザー入力をキャプチャする対話型音声応答メニューを構築します。

  • 高度なIVR/ボイスボットの作り方:Vonage Voice APIとOpenAIを使って高度なIVRボットを構築します。このガイドでは、着信コールを処理し、ASRを使用して発信者の意図を取得し、AI音声エージェントからインテリジェントな応答を生成する方法を示します。

  • Vonage Integration Platform API 概要:ガイドとコード・スニペット、リファレンス・ドキュメントの閲覧など、Vonage API と SDK を使用して接続アプリケーションを開発できます。

ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。

最新の開発者向けニュース、ヒント、イベント情報をお届けします。

シェア:

https://a.storyblok.com/f/270183/400x400/2c4345217d/liz-acosta.jpeg
Liz Acostaデベロッパー・アドボケイト

Liz AcostaはVonageのDeveloper Advocateです。映画学生からマーケター、エンジニア、デベロッパー・アドボケイトという彼女のキャリア・パスは型破りに見えるかもしれないが、デベロッパー・リレーションズにとってはごく一般的なものだ!ピザ、植物、パグ、Pythonが大好き。