このチュートリアルでは、Chat App Message Service の Chat Flow を使用して、ワンタイムパスワード (OTP) メッセージのマルチチャネル配信ワークフローを構築する方法について説明します。
背景
2023 年末時点で、WhatsApp は世界 200 近くの国と地域で 20 億人を超えるアクティブユーザーを抱えています。アカウントが電話番号に紐づくため、WhatsApp はユーザーにリーチするための効果的なチャネルとなっています。そのため、多くの企業は、グローバルユーザーに対してワンタイムパスワード (OTP) メッセージ、通知、マーケティングキャンペーンを送信する際、WhatsApp を優先的に選択しています。
しかし、グローバルなユーザーベースを持つ企業では、OTP 配信を WhatsApp のみに依存すると、十分な成果が得られないことがよくあります。
これには 2 つの主な理由があります。
第一に、OTP、通知、マーケティングメッセージは、いずれも SMS、メール、インスタントメッセージングアプリなどのチャネルを通じて送信されますが、目的、内容、ユーザーの期待において根本的に異なります。OTP の目的は、通常 1 分以内に本人確認を完了することです。これには、メッセージの正確性と適時性に対する高い基準が求められ、配信成功の判定基準は非常にシンプルです。
第二に、WhatsApp は世界的に人気がありますが、国によって普及率が大きく異なります。また、好まれるインスタントメッセージングアプリも国によって異なります。このばらつきにより、一部の国では WhatsApp がユーザーの第一選択ではなく、OTP メッセージの配信に悪影響を及ぼします。
その結果、グローバルなユーザーベースにサービスを提供する場合、WhatsApp のみを使用するシングルチャネルアプローチでは必然的に不十分になります。これを克服するには、すべての主流通信チャネルをカバーすることで、「ユーザーが利用しているチャネルでユーザーに対応する」必要があります。しかし、大量の電話番号リストから国を特定し、それに応じて複数のチャネルを通じてメッセージをルーティングするにはどうすればよいでしょうか。
ソリューション
Alibaba Cloud Chat App Message Service の Chat Flow を使用して、電話番号の国や地域を迅速に識別し、複数のチャネルを通じてメッセージを送信します。
Chat App Message Service は、企業がユーザーに効果的にリーチできるよう支援する Alibaba Cloud の強力なメッセージングエンジンです。WhatsApp、Viber、Messenger、Instagram などのグローバルメッセージングプラットフォームとの簡単な統合を可能にし、豊富なメッセージタイプでユーザーエンゲージメントを向上させます。セットアップを簡素化するため、このサービスには組み込みの Chat Flow ツールが含まれています。これにより、どの従業員でもローコードアプローチを使用して、インタラクティブなワークフローを迅速に構築できます。
Chat Flow は、大きなビジュアルキャンバスを提供します。左側には、メッセージコンポーネント、フロー制御コンポーネント、AI コンポーネント、マーケティングコンポーネントなど、幅広いコンポーネントが用意されています。これらのコンポーネントをキャンバスにドラッグアンドドロップし、簡単な設定を行うことで、チャットフローを構築したり、ビジネスプロセスに合わせたワークフローを迅速に組み立てたりすることができます。
Chat Flow の機能は、チャネルドック、フロードック、AI ドック、マーケティングドックの 4 つの主要カテゴリに分類されます。詳細については、「Chat Flow の機能」をご参照ください。
Chat Flow には、使いやすい、保守しやすい、高い柔軟性、深い統合、幅広い適用性という 5 つの主要な強みがあります。詳細については、「Chat Flow のハイライト」をご参照ください。

操作手順
シナリオ: フィリピンのユーザーには Viber を通じて、マレーシアのユーザーには WhatsApp を通じて、その他すべての国のユーザーには SMS を通じて OTP を送信します。
フロー図:

以下の 5 つのステップを実行します:
変数の設定
タブで、トリガータイプ が 手動 であるフローの フロー名 をクリックします。 キャンバスエディターページが開きます。 キャンバスで 開始 をクリックし、右側のパネルで 入力変数は受け付けません をオフにします。 たとえば、このシナリオでは、入力変数は受け付けません をオフにした後、顧客の電話番号 (
customerPhoneNumber) と検証コード (verificationCode) の変数を入力する必要があります。PH ブランチと ML ブランチの作成
コンポーネントライブラリから、「電話番号の認識」コンポーネントを選択し、キャンバスにドラッグします。マルチブランチの有効化 ボタンを有効にします。地域コードに基づいて分岐する場合は、地域コード オプションを選択します。下の分岐で、フィリピン (PH) やマレーシア (ML) など、ターゲットの国または地域の国際コードを選択します。出力コード変数名 を設定します。この名前を使用して、後続のコンポーネントで変数を参照できます。
[入力設定] セクションで、
customerPhoneNumber変数を選択します。[出力変数名] をregionCodeに設定します。else ブランチの構成
elseブランチで、SMS送信コンポーネントをドラッグアンドドロップします。送信者 ID を設定します。受信者の電話番号には、開始 ノードで設定されている customerPhoneNumber 変数を選択します。メッセージ内容 については、コンテンツタイプ を 確認コード に設定します。メッセージ内容は、ユーザーに送信されるメッセージの本文です。このシナリオでは、以下のように入力します。「お客様のワンタイムパスワードは {{verificationCode}} です。このパスワードは10分間有効です。アカウント保護のため、このパスワードを誰とも共有しないでください。」
この場合、verificationCode は検証コードを表す変数名で、開始 ノードで定義されています。変数を使用するには、{{ を入力します。既存の変数を選択するか、新しい変数を作成できます。変数リストには、現在のコンポーネントで利用可能なすべての変数が含まれています。
説明最初に else ブランチを構成することを推奨します。このブランチはフォールバックブランチとして機能し、例外を処理する必要がある場合に他のブランチからジャンプできます。
PH ブランチの構成
Send Viber Message コンポーネントを PH ブランチにドラッグし、送信設定項目、メッセージ設定、タイムアウト設定 などの関連設定を構成します。
メッセージ送信設定: 操作 を From/To に、送信メッセージタイプ を 取引 に、送信タイプ を サービス ID (Viber ビジネスアカウント) に設定します。送信チャンネル には、メッセージの送信に使用するチャネルを選択します。受信者には、[開始] ノードで定義されている customerPhoneNumber 変数を使用します。この変数はユーザーの携帯電話番号を表します。
メッセージ設定: メッセージタイプにはテキストを選択し、メッセージ本文を入力します。このシナリオでは、次のように入力します:
「お客様のワンタイムパスワードは {{verificationCode}} です。このパスワードは10分間有効です。アカウント保護のため、このパスワードを誰とも共有しないでください。」
説明ここで、verificationCode は検証コードの変数名で、[開始] で定義されています。
PH 地域で Viber メッセージを送信ノードでは、メッセージ送信設定が次のように構成されています。
アクション: [From/To]
送信メッセージタイプ: [トランザクション]
送信タイプ: [サービス ID]
送信チャネル: [Viber]
宛先:
{{customerPhoneNumber}}
タイムアウト設定:ユーザーが確実に OTP を受信できるようにするため、指定された期間内にメッセージが配信されない、または未読の場合にトリガーされるアクションを構成できます。
以下のセクションでは、この構成方法について説明します。
未配信の場合に WhatsApp を送信
次の 3 つのステップを実行します:
[WhatsApp メッセージ送信] コンポーネントを、[Viber メッセージ送信] コンポーネントの未配信ブランチにドラッグします。
[WhatsApp メッセージを送信] コンポーネントをクリックします。 右側の ペインで、[From/To] を選択します。 送信タイプ には、電話番号 を選択します。 送信チャンネル には、メッセージの送信に使用する WABA チャネルを選択します。 送信元番号 には、WABA チャネルで検証済みの番号を選択します。 受信者 には、[開始] ノードで定義されているユーザーの電話番号変数 (「customerPhoneNumber」など) を入力します。
メッセージ設定項目 で、メッセージタイプ を テンプレートメッセージ に設定し、チャンネル に送信チャネルと同じチャネルを選択し、テンプレートメッセージ に送信するテンプレートを選択します。テンプレートは事前に作成され、WhatsApp によって承認される必要があります。
未読の場合に SMS を送信
次の 2 つのステップを実行します:
[別ステップへジャンプ] コンポーネントを、[Viber メッセージ送信] コンポーネントの未読ブランチにドラッグします。
[別のステップへジャンプ] コンポーネントをクリックします。右側のペインの で、[SMS送信] ノードコンポーネントを選択します。最大リダイレクト数 は、ジャンプコンポーネントがトリガーされる最大回数を指定します。たとえば、 3 を入力した場合、ジャンプコンポーネントは 4 回目にはトリガーされません。
PH ブランチでは、[WhatsApp メッセージ送信] コンポーネントの未配信ブランチと未読ブランチも構成できます。このフローでは、WhatsApp メッセージが 30 秒以内に配信されない場合、フローは else ブランチにある共通の [SMS メッセージ送信] コンポーネントにジャンプします。構成は前述の手順と同様です。ジャンプコンポーネントでは、ジャンプ先のコンポーネントの名前を指定する必要があります。キャンバス上でコンポーネント名をカスタマイズして区別することができます。
説明フィリピンのユーザーの場合、フローはまず Viber 経由で OTP の送信を試みます。配信が失敗した場合、フローは直ちに WhatsApp 経由で再試行します。WhatsApp も失敗した場合、最終的に SMS にフォールバックします。このマルチチャネルアプローチにより、メッセージ配信の成功率を最大限に高めます。
ML ブランチの構成
ML ブランチでマレーシアの電話番号のフローを構成します。構成プロセスは PH ブランチと同様ですが、チャネルの優先順位が異なります。マレーシアのユーザーの場合、フローはまず WhatsApp 経由でメッセージの送信を試みます。それが失敗した場合、Viber にフォールバックします。Viber も失敗した場合、[別ステップへジャンプ] コンポーネントが、フローを else ブランチにある共通の SMS チャネルにリダイレクトします。WhatsApp メッセージが正常に配信され、既読になった場合、フローは終了します。