> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# トランザクションメッセージ

> OneSignalのAPIを使用して、プッシュ、メール、またはSMS経由でパーソナライズされたデータを使用したOTP、請求更新、リマインダーなどのトランザクションメッセージを送信する方法を学びます。

個人または小グループにタイムリーでパーソナライズされたメッセージを送信することは、強力な顧客体験を提供し、エンゲージメントを維持するために非常に重要です。ワンタイムパスコード（OTP）、請求更新、またはアクティビティ確認などのトランザクションメッセージを使用すると、サーバーから意味のあるリアルタイム更新を共有できます。

このガイドでは、カスタムデータとユーザー識別子を使用して、OneSignalのAPIでトランザクションメッセージ（プッシュ、メール、またはSMS）を送信する方法について説明します。

***

## 一般的なユースケース

トランザクションメッセージを使用して次のことを行います：

* ログインと確認コード（OTP）を送信
* 注文、領収書、またはサブスクリプション変更を確認
* 請求ステータスまたは更新アラートを配信
* 予約または期限についてユーザーにリマインド
* 重要なアクション（たとえば、サインアップまたは購入）を認識

***

## 要件

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

* OneSignalの[ユーザー](./users)、[サブスクリプション](./subscriptions)、[エイリアス](./aliases)を理解します。
* [データベース、DMP、またはCRMをOneSignalと通信するように設定](./database-dmp-crm-integration)するか、[統合](./integrations)の1つを使用します。
* メッセージをパーソナライズするために[テンプレート](./templates)を作成します。
* メッセージをパーソナライズするために[Liquid構文](./using-liquid-syntax)を使用します。

***

## ユーザーの識別

個々のユーザーをターゲティングするには、OneSignal内でそれらを識別する必要があります。推奨されるアプローチは、データベースまたはCRMで使用されるユーザー識別子にマップする必要がある**外部ID**を設定することです。

OneSignalは**ユーザーごとに最大20のエイリアス**もサポートしており、システム全体で複数の識別子（たとえば、`other_user_id`、`facebook_id`など）を関連付けることができます。メールとSMSの場合、メールアドレスまたは電話番号をそれぞれ直接使用してメッセージを送信することもできます。

***

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

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

### エイリアスに送信（推奨）

`include_aliases`を使用して、推奨される`external_id`または次のような他のエイリアスをターゲティングします：

<CodeGroup>
  ```json external_id theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "include_aliases": {"external_id": ["userA", "userB"]},
    "contents": {"en": "English Message"},
    "target_channel": "push"
  }
  ```

  ```json custom_alias theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "include_aliases": { "alias_label": ["alias_id_1", "alias_id_2"] },
    "contents": { "en": "English Message" },
    "target_channel": "email"
  }
  ```
</CodeGroup>

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

特定のサブスクリプションに送信する場合は、`include_subscription_ids`プロパティを使用できます。ユーザーは複数のサブスクリプションを持つことができるため、このオプションは推奨されません。

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_subscription_ids": ["1dd608f2-c6a1-11e3-851d-000c2940e62c"],
  "contents": { "en": "English Message" }
}
```

### メールアドレスに送信

ユーザーのメールアドレスがある場合は、`include_email_tokens`プロパティを使用してメールを送信できます。

OneSignalアプリ内に存在しない含まれるメールは、自動的に新しいメールサブスクリプションを作成します。

```json theme={null}
{
  "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サブスクリプションを作成します。

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_phone_numbers": ["+15555555555"],
  "contents": { "en": "English Message" }
}
```

***

## カスタムデータの追加

パーソナライズされたコンテンツの場合、テンプレートとLiquid構文を使用して、ユーザー固有の`custom_data`をメッセージに渡します。

カスタムデータを追加する手順：

1. ダッシュボードまたは[Create template API](/reference/create-template)を介して[テンプレート](./templates)を作成します。
2. テンプレートに[Liquid変数](./using-liquid-syntax)（たとえば、`{{ message.custom_data.order_id }}`）を追加します。
3. Create Message API呼び出し内で`template_id`と`custom_data`を参照します。

```json theme={null}
{
  "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 }} です
```

3. ユーザーがアクセスを要求したときに、サーバーで`verification_code`を生成します。
4. `verification_code`の値をAPIリクエストに入力します。

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["userA"] },
  "template_id": "8458af75-4da2-4ecf-afb5-f242a8926cc3",
  "custom_data": { "verification_code": "123456" }
}
```

**代替案：** テンプレートと`custom_data`を使用したくない場合は、文字列連結を使用して変数値をメッセージに直接入力できます。例：

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": {"external_id": ["userA"]},
  "contents": {"en": "Your verification code is " + verification_code}
}
```

***

## トラブルシューティング

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

***

## その他のリソース

* [Create messageガイド](/reference/create-message)
* [ユーザー](./users)と[エイリアス](./aliases)
* [テンプレート](./templates)と[Liquid構文](./using-liquid-syntax)
* [レート制限](/reference/rate-limits)

***
