このチュートリアルでは、Chat App Message Service のフローエディターを使用して、グローバルユーザーにワンタイムパスワード (OTP) メッセージを送信する方法について説明します。
背景情報
2023 年末時点で、WhatsApp は約 200 の国と地域で 20 億人以上のアクティブなユーザーを抱えています。個人間のコミュニケーションだけでなく、ビジネス活動にも広く採用されており、企業とコンシューマーを結ぶ重要なブリッジとして機能しています。WhatsApp アカウントは携帯電話番号に紐づけられているため、多くの企業がグローバルユーザーに OTP、通知、マーケティングキャンペーンを送信するための主要なチャンネルとして WhatsApp を選択しています。
しかし、複数の国で事業を展開する多くの企業は、WhatsApp のみを使用した OTP 配信では、期待したほどのパフォーマンスが得られないことが多いと感じています。
これには主に 2 つの理由があります:
第一に、OTP メッセージ、通知メッセージ、マーケティングメッセージはすべて SMS、メール、またはインスタントメッセージ (IM) アプリを通じて配信されますが、その目的、内容、ユーザーの期待は根本的に異なります。例えば、OTP はユーザーが本人確認を完了するためのもので、通常は 1 分以内に使用する必要があります。これには、より高い配信の正確性と適時性が求められ、その成否は「ユーザーが時間通りにコードを受け取れるか」という単純な基準で判断されます。
第二に、WhatsApp は世界的に人気がありますが、その普及率は国によって大きく異なります。各国にはそれぞれ主流のメッセージングアプリがあります。一部のリージョンでは、WhatsApp はユーザーが好むツールではないため、OTP 配信の効果が直接的に低下します。
したがって、多くの国にまたがるユーザーをターゲットにする場合、WhatsApp のみに依存すると偏りが生じる可能性があります。この問題を解決するためには、企業はユーザーの習慣に従い、ユーザーがいる場所でメッセージを送信し、すべての主要なコミュニケーションチャンネルをカバーする必要があります。しかし、膨大な量の電話番号をどのように識別し、分類するのでしょうか?そして、分類後に複数のチャンネルにわたってメッセージをどのようにルーティングするのでしょうか?
ソリューション
Alibaba Cloud Chat App Message Service のフローエディターを使用すると、電話番号の発信国を識別し、複数のチャンネルで迅速かつ効率的にメッセージを送信できます。
Chat App Message Service は、企業がユーザーに効果的にリーチできるよう Alibaba Cloud が設計したパフォーマンス専有型のメッセージングエンジンです。WhatsApp、Viber、Messenger、Instagram などの主要な国際的ソーシャルプラットフォームとのシームレスな統合を可能にし、豊富なメッセージタイプをサポートしてユーザーエンゲージメントを向上させます。技術的な障壁を下げるため、このサービスには組み込みのフローエディターである Chat Flow が含まれており、どのチームメンバーでもローコードアプローチでインタラクティブなワークフローを迅速に構築できます。
Chat Flow は広大なビジュアルキャンバスを提供します。左側には、メッセージング、フローコントロール、AI、マーケティングなど、さまざまなコンポーネントがあります。これらのコンポーネントをキャンバスにドラッグアンドドロップし、設定するだけで、チャットフローを作成したり、ビジネスロジックに沿ったカスタムシナリオを構築したりできます。
Chat Flow には、チャンネルドック、フロードック、AI ドック、マーケティングドックの 4 つの主要カテゴリがあります。詳細については、「フローエディターの特徴」をご参照ください。
Chat Flow には、使いやすさ、メンテナンスのしやすさ、高い柔軟性、緊密な連携、幅広い適用性という 5 つの大きな利点があります。詳細については、「フローエディターの利点」をご参照ください。

操作手順
シナリオ: ご利用のユーザーベースは複数の国にまたがっています。フィリピン (PH) のユーザーには Viber、マレーシア (ML) のユーザーには WhatsApp、その他のすべての国のユーザーには SMS を使用することにします。
フロー図:

操作手順は、主に 5 つのステップで構成されます:
変数の設定
タブで、Trigger Type が Manual に設定されている Flow Name をクリックします。キャンバスで Start ノードをクリックし、右側のペインで Do Not Accept Incoming Variables を無効にします。このシナリオでは、customerPhoneNumber (ユーザーの携帯電話番号) と
verificationCode(ワンタイムパスワード) の 2 つの変数を定義します。
PH と ML ブランチの作成
コンポーネントライブラリから [電話番号を認識] コンポーネントをキャンバスにドラッグします。Multi-branching オプションを有効にします。リージョンで分岐させたい場合は、Region Code ラジオボタンを選択します。次に、フィリピン (PH) やマレーシア (ML) などのターゲット国用のブランチを追加します。Output Variable Name を設定します。この変数は後のコンポーネントで参照できます。

else ブランチの設定
else ブランチに、[SMS メッセージを送信] コンポーネントをドラッグします。送信者 ID を設定し、受信者の電話番号を選択します。このフローでは、Start ノードで定義された customerPhoneNumber 変数を使用します。Message Content セクションで、Content Type を Verification Code に設定し、メッセージ内容を入力します。このシナリオでは、次の内容を使用します:
「お客様のワンタイムパスワードは {{verificationCode}} です。有効期間は 10 分です。アカウント保護のため、このパスワードを誰とも共有しないでください。」
ここで、verificationCode は Start ノードで定義された変数です。変数を挿入するには、`{{` と入力し、現在のコンポーネントで利用可能な変数のリストから選択します。
説明まず else ブランチを設定する必要があります。これはフォールバックパスとして機能します。他のブランチで例外が発生した場合、ここにジャンプできます。
PH ブランチの設定
[Viber メッセージを送信] コンポーネントを PH ブランチにドラッグし、その Message Sending Settings、Message Settings、Timeout Settings を構成します。
送信設定: Action を [From/To] に、Message Type を Transaction に、Sending Type を [サービス ID] (ご利用の Viber Business Account) に設定します。Channel には Viber チャンネルを選択します。受信者には、開始ノードで定義した customerPhoneNumber 変数を使用します。
メッセージ設定: Message Type を Text に設定し、メッセージ内容を入力します。このシナリオでは、次の内容を使用します:
「お客様のワンタイムパスワードは {{verificationCode}} です。有効期間は 10 分です。アカウント保護のため、このパスワードを誰とも共有しないでください。」
説明ここで、verificationCode は [開始] ノードで定義された変数です。

タイムアウト設定: OTP の配信を確実にするために、設定した時間内にメッセージが配信されない、または読み取られない場合にアクションをトリガーできます。

このシナリオでは、メッセージが 30 秒以内に配信されない場合は WhatsApp メッセージが送信され、60 秒以内に読み取られない場合は SMS メッセージが送信されます。次のステップに従います:
30 秒以内に配信されない場合に WhatsApp メッセージを送信
次の 3 つのステップに従います:
PH ブランチの [Viber メッセージを送信] コンポーネントの下に [WhatsApp メッセージを送信] コンポーネントをドラッグします。
[WhatsApp メッセージを送信] コンポーネントをクリックします。右側のペインの で、Action に [From/To] を選択します。Sending Type を Mobile Number に設定します。Channel には、ご利用の WABA チャンネルを選択します。Sender Mobile Number には、検証済みの番号を選択します。Recipient には、`{{` と入力し、開始ノードの customerPhoneNumber 変数を選択します。
Message Settings セクションで、Message Type を Template Message に設定します。Channel を送信チャンネルと一致させます。Template Message には、承認済みのテンプレートを選択します。テンプレートは事前に WhatsApp で作成し、承認を得る必要があります。

60 秒以内に読み取られない場合に SMS を送信
次の 2 つのステップに従います:
PH ブランチの [Viber メッセージを送信] コンポーネントの下に [別のステップにジャンプ] コンポーネントをドラッグします。
[別のステップにジャンプ] コンポーネントをクリックします。右側のペインの で、Jump to に [SMS メッセージを送信] ノードを選択します。無限ループを防ぐために、Maximum number of jumps を設定します。例えば、これを 3 に設定すると、4 回目の試行ではジャンプは発生しません。

[WhatsApp メッセージを送信] コンポーネントに対しても、未配信および未読のブランチを設定できます。このフローでは、WhatsApp メッセージが 30 秒以内に配信されない場合、else ブランチにジャンプして SMS を送信します。設定は上記の手順と同様です。ジャンプコンポーネントを使用する場合、ターゲットコンポーネント名を指定する必要があります。フロー設計プロセス中にコンポーネント名をカスタマイズして、わかりやすくすることができます。
説明フィリピンのユーザーに OTP を送信する場合、システムはまず Viber を使用します。Viber が失敗した場合は WhatsApp を試します。WhatsApp も失敗した場合は、SMS にフォールバックします。これにより、メッセージの確実な配信が保証されます。
ML ブランチの設定
ML ブランチでは、マレーシアの番号に対するフローを設定できます。設定は PH ブランチと同様です。マレーシアの番号の場合、システムはまず WhatsApp を優先します。WhatsApp が失敗した場合は Viber を試します。Viber も失敗した場合は、else ブランチの SMS チャンネルにジャンプします。最初の WhatsApp メッセージが配信され、読み取られた場合、フローは自動的に終了します。