メインコンテンツへスキップ
個人または小グループにタイムリーでパーソナライズされたメッセージを送信することは、強力な顧客体験を提供し、エンゲージメントを維持するために非常に重要です。ワンタイムパスコード(OTP)、請求更新、またはアクティビティ確認などのトランザクションメッセージを使用すると、サーバーから意味のあるリアルタイム更新を共有できます。 このガイドでは、カスタムデータとユーザー識別子を使用して、OneSignalのAPIでトランザクションメッセージ(プッシュ、メール、またはSMS)を送信する方法について説明します。

一般的なユースケース

トランザクションメッセージを使用して次のことを行います:
  • ログインと確認コード(OTP)を送信
  • 注文、領収書、またはサブスクリプション変更を確認
  • 請求ステータスまたは更新アラートを配信
  • 予約または期限についてユーザーにリマインド
  • 重要なアクション(たとえば、サインアップまたは購入)を認識

要件

トランザクションメッセージを送信する前に、次のガイドを確認することをお勧めします:

ユーザーの識別

個々のユーザーをターゲティングするには、OneSignal内でそれらを識別する必要があります。推奨されるアプローチは、データベースまたはCRMで使用されるユーザー識別子にマップする必要がある外部IDを設定することです。 OneSignalはユーザーごとに最大20のエイリアスもサポートしており、システム全体で複数の識別子(たとえば、other_user_idfacebook_idなど)を関連付けることができます。メールとSMSの場合、メールアドレスまたは電話番号をそれぞれ直接使用してメッセージを送信することもできます。

ユーザーのターゲティング

Create Message APIを使用して、エイリアス、メールアドレス、電話番号、またはサブスクリプションIDを介してユーザーをターゲティングすることにより、プッシュ、メール、SMSチャネル全体でトランザクションメッセージを送信します。

エイリアスに送信(推奨)

include_aliasesを使用して、推奨されるexternal_idまたは次のような他のエイリアスをターゲティングします:
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": {"external_id": ["userA", "userB"]},
  "contents": {"en": "English Message"},
  "target_channel": "push"
}

サブスクリプションに送信

特定のサブスクリプションに送信する場合は、include_subscription_idsプロパティを使用できます。ユーザーは複数のサブスクリプションを持つことができるため、このオプションは推奨されません。
{
  "app_id": "YOUR_APP_ID",
  "include_subscription_ids": ["1dd608f2-c6a1-11e3-851d-000c2940e62c"],
  "contents": { "en": "English Message" }
}

メールアドレスに送信

ユーザーのメールアドレスがある場合は、include_email_tokensプロパティを使用してメールを送信できます。 OneSignalアプリ内に存在しない含まれるメールは、自動的に新しいメールサブスクリプションを作成します。
{
  "app_id": "YOUR_APP_ID",
  "include_email_tokens": ["user1@email.com", "user2@email.com"],
  "email_subject": "Welcome to Cat Facts!",
  "email_body": "<html><head>Welcome to Cat Facts</head><body><h1>Welcome to Cat Facts</h1><h4>Learn more about everyone's favorite furry companions!</h4><hr/><p>Hi Nick,</p><p>Thanks for subscribing to Cat Facts! We can't wait to surprise you with funny details about your favorite animal.</p><h5>Today's Cat Fact (March 27)</h5><p>In tigers and tabbies, the middle of the tongue is covered in backward-pointing spines, used for breaking off and gripping meat.</p><a href='https://catfac.ts/welcome'>Show me more Cat Facts</a><hr/><p><small>(c) 2018 Cat Facts, inc</small></p><p><small><a href='[unsubscribe_url]'>Unsubscribe</a></small></p></body></html>"
}

電話番号に送信

ユーザーの電話番号がある場合は、include_phone_numbersプロパティを使用してSMSとMMSを送信できます。 OneSignalアプリ内に存在しない含まれる電話番号は、自動的に新しいSMSサブスクリプションを作成します。
{
  "app_id": "YOUR_APP_ID",
  "include_phone_numbers": ["+15555555555"],
  "contents": { "en": "English Message" }
}

カスタムデータの追加

パーソナライズされたコンテンツの場合、テンプレートとLiquid構文を使用して、ユーザー固有のcustom_dataをメッセージに渡します。 カスタムデータを追加する手順:
  1. ダッシュボードまたはCreate template APIを介してテンプレートを作成します。
  2. テンプレートにLiquid変数(たとえば、{{ message.custom_data.order_id }})を追加します。
  3. Create Message API呼び出し内でtemplate_idcustom_dataを参照します。
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["userA"] },
  "template_id": "8458af75-4da2-4ecf-afb5-f242a8926cc3",
  "custom_data": { "order_id": 123, "currency": "USD", "amount": 25 }
}

例:ワンタイムパスコード(OTP)

  1. エイリアス、メール、または電話番号を使用してユーザーを識別します。
  2. 確認コードを含むテンプレートを作成します:
あなたの確認コードは {{ message.custom_data.verification_code }} です
  1. ユーザーがアクセスを要求したときに、サーバーでverification_codeを生成します。
  2. verification_codeの値をAPIリクエストに入力します。
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["userA"] },
  "template_id": "8458af75-4da2-4ecf-afb5-f242a8926cc3",
  "custom_data": { "verification_code": "123456" }
}
代替案: テンプレートとcustom_dataを使用したくない場合は、文字列連結を使用して変数値をメッセージに直接入力できます。例:
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": {"external_id": ["userA"]},
  "contents": {"en": "Your verification code is " + verification_code}
}

トラブルシューティング

  • include_aliasesの場合、エイリアスは事前にユーザーに登録されている必要があります。
  • メール/SMSの場合、正しいフォーマットを確認してください。

その他のリソース