Twilio SMSとBraze 規制・オプトアウトを踏まえた併用設計(概念)
目次 クリックで開く
顧客体験(CX)のパーソナライズが加速する中で、メールよりも到達率・開封率が高いSMS(ショートメッセージサービス)の重要性が再認識されています。特に、カスタマーエンゲージメントプラットフォームであるBrazeと、通信APIのグローバルスタンダードであるTwilioを組み合わせた運用は、エンタープライズ企業において標準的な構成となりつつあります。
しかし、SMSは電子メール以上に各国・各キャリアの規制が厳しく、一歩間違えれば「番号のブラックリスト入り」や「法的罰則」を招くリスクがあります。本記事では、実務者が直面する「配信規制」と「オプトアウト(配信停止)同期」に焦点を当て、TwilioとBrazeを安全かつ高度に併用するための設計概念を徹底解説します。
Twilio SMSとBrazeを連携させる意義とシステム構成の基本
なぜTwilioとBrazeの併用が必要なのか
Brazeは強力なセグメンテーションとオーケストレーション機能を持ちますが、自前でインフラ(回線)を持っているわけではありません。SMSを実際に「送る」ためには、Twilioのような通信ゲートウェイが必要です。
この併用構成の最大のメリットは、「顧客の行動トリガーに応じたリアルタイムSMS配信」ができる点にあります。例えば、ECサイトでカゴ落ちした1時間後に、在庫僅少を知らせるSMSを送るといった施策が、Brazeのキャンバス機能とTwilioの高速な配信インフラによって実現します。
全体アーキテクチャ:Brazeが「脳」、Twilioが「口」
システム設計において、Brazeは「誰に」「いつ」「何を」送るかを決定する「脳」の役割を果たします。一方、Twilioは実際に通信網へパケットを流す「口」の役割です。この役割分担を明確にしないと、オプトアウト情報の不整合が起き、配信停止を希望したユーザーにメッセージが届き続けるという最悪の事態を招きます。
高度なデータ基盤を構築している場合、これらに加えてBigQuery等のデータウェアハウスを組み合わせるのが一般的です。以下の記事で解説しているようなモダンデータスタックの考え方は、SMS配信のターゲティング精度向上にも直結します。
高額なCDPは不要?BigQuery・dbt・リバースETLで構築する「モダンデータスタック」ツール選定と公式事例
配信規制をクリアするための事前準備と要件
日本国内におけるSMS配信の法的要件(特定電子メール法)
日本国内でSMSを送る際、最も留意すべきは「特定電子メール法」です。広告・宣伝メールを送る場合、原則として事前の同意(オプトイン)が必要であり、かつメッセージ内に「配信停止の方法」を明記する義務があります。
- 送信者情報の表示: 会社名やブランド名を冒頭に含める。
- オプトアウト手段の提供: 「停止はURLから」や「STOPと返信」などの案内。
- 同意の記録保持: いつ、どの画面で同意を得たかのログを保存する。
米国等への配信における「10DLC」と「A2P」規制の理解
米国向けの配信がある場合、10DLC(10-Digit Long Code)規制への対応が不可欠です。これは、一般的な10桁の電話番号(ロングコード)を商用配信に使う際、ブランド登録とキャンペーン登録を必須とする仕組みです。未登録のまま送信すると、キャリア側で即座にブロックされ、Twilio側でエラーが発生します。
Twilio側で設定すべき「Messaging Services」の最適化
TwilioにはMessaging Servicesという機能があります。これは、複数の電話番号を束ねて、配信先に応じて最適な番号を自動選択する機能です。Brazeから送信する際は、個別の電話番号(SID)ではなく、このMessaging Service SIDを指定して運用するのがベストプラクティスです。
完璧なオプトアウト設計:ステータス同期のベストプラクティス
TwilioとBrazeの併用で最も事故が起きやすいのがオプトアウトの同期です。以下の2つのシナリオを想定した設計が必要です。
シナリオ1:Twilio側で「STOP」を受け取った場合の挙動と処理
Twilioには標準で「STOP」という返信を受け取ると、その番号への送信を自動でブロックする機能があります。しかし、これだけでは不十分です。Braze側はこのブロックを知らないため、キャンバス上では「送信成功」や「処理済み」としてカウントされ続け、統計データが歪みます。さらに、他のチャネル(メールやPush)との整合性が取れなくなります。
シナリオ2:Braze側のマイページで配信停止を受け取った場合
ユーザーがWebサイトのマイページで「SMSを受け取らない」にチェックを入れた場合、BrazeのSubscription Groupを「Unsubscribed」に変更します。これによりBrazeからの送信は止まりますが、もしシステムが別に存在し、Twilio APIを直接叩くルートがある場合、そちら側で誤送信が発生する可能性があります。
双方向同期を実現するためのWebhook実装手順
理想的なアーキテクチャは、TwilioのインバウンドWebhookをトリガーにして、Brazeの「Users Track Endpoint」を叩き、ユーザー属性(SMS Subscription State)を更新することです。
| 機能項目 | Braze側での管理 | Twilio側での管理 |
|---|---|---|
| 配信ステータス正本 | ユーザープロフィール(Subscription Group) | Advanced Opt-out機能でのブラックリスト |
| オプトアウト受付 | Webマイページ、Braze SDK経由 | 「STOP」等のキーワード返信 |
| 同期の仕組み | REST APIによるTwilioへの反映(任意) | WebhookによるBraze User Attributeの更新 |
| メリット | マルチチャネルでの一貫性保持 | キャリアレベルでの強制ブロックによる安全 |
こうしたデータ連携の設計思想は、SFAやCRMとの連携においても共通する重要な視点です。
【図解】SFA・CRM・MA・Webの違いを解説。高額ツールに依存しない『データ連携の全体設計図』
【実践】BrazeからTwilio SMSを配信する設定ステップ
ステップ1:Twilio APIキーの発行と権限設定
Twilioコンソールから、API Key(SIDとSecret)を発行します。この際、セキュリティの観点から、対象のプロジェクトに対して必要最小限の権限のみを付与するようにしてください。また、Messaging Service SIDをメモしておきます。
ステップ2:Braze App SettingsでのTwilio連携
Brazeの管理画面から [Settings] > [SMS Settings] へ進みます。ここでTwilioをプロバイダーとして選択し、Account SID、Auth Token(またはAPI Key)、Messaging Service SIDを入力します。接続テストを行い、「Success」が表示されることを確認します。
ステップ3:Subscription Group(購読グループ)の定義
Brazeでは、SMSの配信停止を管理するためにSubscription Groupを作成する必要があります。これを忘れると、セグメント配信時にオプトアウトユーザーを自動除外できなくなります。
※公式ドキュメント:Braze SMS Subscription Groups
ステップ4:キャンバス/キャンペーンでのSMSセグメント作成
配信対象の設定時、必ず「SMS Subscription GroupがSubscribedであること」を条件に含めます。また、メッセージ本文内には、Liquidコードを使用してパーソナライズされた名前や、短縮URLを挿入します。
もしLINE等、他のメッセージングアプリも併用している場合は、それぞれのチャネル特性を活かした出し分けが重要です。LINEの動的運用については、以下の記事が参考になります。
LINE データ基盤から直接駆動する「動的リッチメニューとキャンペーンモジュール」のアーキテクチャ
運用時のトラブルシューティングと主要エラーコード対応
SMS配信では、APIリクエストが成功しても「端末まで届かない」ケースが多々あります。Twilioのログに記録されるエラーコードを確認しましょう。
よくあるエラー1:30007(キャリアによるフィルタリング)
原因: キャリア(docomo, au, SoftBank等)が、メッセージの内容をスパムと判定してブロックした場合です。
対策: 同一内容の大量送信を避ける、URLのドメインを独自ドメインにする、不適切なワード(「絶対稼げる」等)を排除するなどの調整が必要です。
よくあるエラー2:21610(送信先番号がブラックリスト入り)
原因: ユーザーが以前に「STOP」と返信し、Twilio側のブラックリストに載っている番号に対して送信しようとした場合です。
対策: 前述したWebhookによるBraze側のステータス同期が正常に機能しているか確認してください。Braze側で配信対象から除外されていれば、このエラーは発生しません。
配信成功率を最大化するためのA/Bテストの考え方
SMSは1通あたりのコストが高いため、無差別な配信は避けるべきです。BrazeのA/Bテスト機能を使い、「配信時間帯(朝 vs 夜)」や「CTAの文言」を検証してください。
※料金目安(日本向け): 1通あたり約 8円〜12円程度(キャリアやボリュームにより変動。詳細はTwilio公式料金ページを確認)。
まとめ:コンプライアンスと顧客体験を両立するSMS設計
TwilioとBrazeの連携は、正しく設計すれば非常に強力なマーケティング武器となります。しかし、その根底には「ユーザーの意思(オプトアウト)を尊重する」という徹底したコンプライアンス設計が必要です。
- Brazeをマスターデータとして、TwilioからのオプトアウトをWebhookで即時反映させる。
- 各国の規制(日本の特電法、米国の10DLC等)を事前に把握し、必要な登録を済ませる。
- エラーログを定期的に監視し、キャリアブロックが発生していないかチェックする。
これらの実務的な積み重ねが、長期的なブランド毀損を防ぎ、顧客との信頼関係を築く唯一の道です。より高度なデータ統合や自動化を検討されている方は、周辺システムのアーキテクチャ見直しも併せて行うことを推奨します。
SMS運用を安定させるための実務チェックリスト
BrazeとTwilioの連携設定が完了した後、本番配信を開始する前に確認すべき実務的なポイントをまとめました。特に日本国内向けの配信では、キャリア特有の仕様が到達率やコストに直結します。
コストと到達率に影響する3つの重要項目
- 文字数と課金セグメントの計算: SMSは70文字(全角)を1セグメントとして課金されます。BrazeのLiquidコードを使用して顧客名を動的に挿入する場合、名前の長さによって140文字(2セグメント分)を超え、想定の2倍のコストがかかるケースがあります。配信前のプレビューで最大文字数を想定したシミュレーションが不可欠です。
- 送信元ID(Sender ID)の国内ルール: 日本国内の主要キャリア(docomo, au, SoftBank, 楽天モバイル)へ配信する場合、送信元として表示される番号には制約があります。特定の共通番号(0032等)を利用するか、個別の電話番号を使用するかにより、事前申請の要否が異なります。詳細はTwilio公式:日本におけるSMS送信要件を必ず確認してください。
- 配信時間帯のガバナンス: SMSはプッシュ通知よりも着信に気づきやすく、夜間の配信はユーザーの不快感を招きやすいチャネルです。Brazeの「Quiet Hours(静止時間)」設定や、受信者のタイムゾーンに合わせた配信スケジュール機能を活用し、法規制だけでなくマナー面での設計も行いましょう。
チャネル特性に応じた役割分担の最適化
SMSは到達率が極めて高い一方で、1通あたりの単価は他のデジタルチャネルと比較して高めです。Brazeのオーケストレーション機能を使い、以下の特性に基づいて出し分けを行うのが効率的です。
| チャネル | 推奨される用途 | コスト感 | 主なメリット |
|---|---|---|---|
| SMS (Twilio) | 重要告知(規約改定など)、本人認証、緊急リマインド | 高い(10円前後/通) | アプリ未インストール層にも確実に届く |
| LINE | リッチメニュー活用、画像付き販促、双方向チャット | 中(通数課金) | 表現力が豊かで、ユーザーが能動的に使いやすい |
| アプリPush | 日常的な更新通知、クーポンの配布、アプリ内誘導 | 極めて低い | コストを抑えた大量配信が可能 |
データ基盤との連携によるパーソナライズの深化
SMS配信の精度をさらに高めるには、Twilioから得られる配信結果(Delivered / Undelivered)やクリックログをデータウェアハウス(BigQuery等)へ戻し、Brazeのセグメントへ即座に反映させるループを構築することが推奨されます。こうした「データ基盤から直接チャネルを駆動する」設計思想については、以下の記事も併せてご参照ください。
ご相談・お問い合わせ
本記事の内容を自社の状況に当てはめたい場合や、導入・運用の設計を一緒に整理したい場合は、当社までお気軽にご相談ください。担当より折り返しご連絡いたします。