> ## 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.

# データウェアハウス、DMP、CRM統合

> CRM、データベース、またはDMPをOneSignalと統合して、パーソナライズされたリアルタイム通知をトリガーし、大規模でユーザーメッセージングデータを同期します。

データウェアハウス、CRM、またはデータ管理プラットフォーム（DMP）などの内部システムをOneSignalに接続すると、リアルタイム、パーソナライズ、スケーラブルなメッセージングのための強力な機能が利用できるようになります。Salesforce、カスタムユーザーシステム、または他のプラットフォームを使用している場合でも、統合により次のことが可能になります：

* ライブデータを使用してパーソナライズされた時間的に重要なメッセージを送信する
* システム間でユーザー属性とメッセージデータを同期する
* システム内のユーザーアクションから自動化された[Journeys](./journeys-overview)をトリガーする
* OneSignalのメッセージングインフラストラクチャを活用しながら、内部システムを信頼できる情報源として使用する

<Frame caption="データベース統合">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3a0f52f88c855832e2f2185aa456925c300ed7c2d13446f52802cbda474c3570-Screenshot_2024-10-08_at_15.27.28.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=4887fb763f121365fbdf803e3b298d3b" alt="データベースとOneSignal間のデータフローを示す図" width="747" height="537" data-path="images/docs/3a0f52f88c855832e2f2185aa456925c300ed7c2d13446f52802cbda474c3570-Screenshot_2024-10-08_at_15.27.28.png" />
</Frame>

***

## 統合ガイド

OneSignalは多くの人気プラットフォームと直接統合しています。お使いのプラットフォームがサポートされているかどうかをインテグレーションページで確認してください。サポートされている場合は、そちらのセットアップガイドに従ってください。

<Card title="インテグレーション" icon="plug" href="./integrations">
  CRM、データウェアハウス、分析ツールなどとの利用可能なOneSignalインテグレーションをすべて参照してください。
</Card>

お使いのプラットフォームが一覧にない場合は、以下の手順に従ってOneSignal REST APIを使用して統合してください。

### ステップ1：External IDでユーザーを識別する

OneSignalの[`external_id`](./users)は、OneSignalとデータベース間の重要なリンクです。OneSignalの各ユーザーの`external_id`を、データベースのユーザーIDと一致するように設定してください。これにより、すでに持っている識別子を使用してユーザーをターゲットにし、データを同期し、メッセージをトリガーできます。

複数のOneSignalアプリ（例：iOS、Android、ウェブ用の別々のアプリ）を使用している場合、すべてのアプリで同じ`external_id`を設定することで、プラットフォーム全体で同じユーザーを識別できます。

匿名ユーザーがいる場合、またはシステム間でユーザーを追跡するための安定したユーザーIDがない場合は、OneSignalの`onesignal_id`または`subscription_id`を使用できます。ただし、ユーザーが安定して識別可能な場合は`external_id`を設定することをお勧めします。

`onesignal_id`および/または`subscription_id`は、Create user APIレスポンスおよび[Observerメソッド](./mobile-sdk-reference#addobserver-push-subscription-changes)を使用したモバイル・ウェブSDK経由で利用できます。

#### APIのみのセットアップ

OneSignalをメールとSMS/RCSのみに使用している場合（モバイルアプリやウェブサイトなし）、REST APIを通じてユーザーを完全に管理できます：

* [Create user](/reference/create-user) — `external_id`、メールアドレス、電話番号でユーザーを作成
* [Update user](/reference/update-user) — ユーザープロパティとサブスクリプションを更新

SDKのインストールは不要です。バックエンドがユーザーデータを直接OneSignalに送信します。

**SDKセットアップ**

モバイルアプリやウェブサイトがある場合は、OneSignalのフロントエンドSDKを使用してプッシュ通知トークンをキャプチャし、`external_id`を設定します：

1. お使いのプラットフォーム用の[OneSignal SDK](./mobile-sdk-setup)をインストールします。
2. アプリで認証された後、ユーザーの`external_id`で`login`を呼び出します。
3. SDKが自動的にプッシュトークンをキャプチャし、ユーザーにリンクします。

***

### ステップ2：ユーザーデータとイベントを同期する

ユーザー識別情報を設定したら、システムからOneSignalに2種類のデータを同期できます：

**タグ** — 永続的なユーザープロパティ

[タグ](./add-user-data-tags)は、セグメンテーションと[メッセージのパーソナライゼーション](./message-personalization)のためにOneSignalにユーザー属性を保存します。プランタイプ、優先言語、登録日など、ユーザーが誰であるかを説明するデータに使用します。

* [Update user](/reference/update-user) APIまたはフロントエンドSDKを通じてタグを設定します
* タグは更新または削除するまでユーザーに保持されます
* タグを使用して[セグメント](./segmentation)を構築し、[メッセージコンテンツをパーソナライズ](./message-personalization)します

**カスタムイベント** — ユーザーアクション

[カスタムイベント](./custom-events)は、`completed_purchase`、`viewed_page`、`subscription_expired`などのユーザーが実行するアクションを表します。自動化された[Journeys](./journeys-overview)をトリガーするために使用します。

* APIまたはフロントエンドSDK経由でカスタムイベントを送信します
* カスタムイベントはタグのように保持されませんが、Journeysとメッセージのパーソナライゼーションのトリガーとして使用できます

### ステップ3：メッセージとエンゲージメントデータをエクスポートする

配信とエンゲージメントデータをシステムに同期するには：

* **[Event Streams](./event-streams)** — （推奨）メッセージイベント（送信、配信、クリックなど）のリアルタイムWebhook配信。イベントが発生するたびにデータベースを同期するのに最適です。
* **[サブスクリプションCSVのエクスポート](/reference/csv-export)** — 定期的な同期や移行のためのサブスクリプションデータの一括エクスポート。
* **[メッセージ表示API](/reference/view-messages)** — プログラムでメッセージ履歴と配信統計をクエリします。

***

## アーキテクチャの推奨事項

* **データベースを信頼できる情報源として維持してください。** OneSignalをメッセージング層として扱います。ユーザーデータとイベントをOneSignalにプッシュし、配信/エンゲージメントデータを取得します。
* **リアルタイム更新にはAPIを使用してください。** ユーザーがアクションを実行した場合（例：購入を完了した場合）、すぐにOneSignal APIを呼び出してタグを更新するかカスタムイベントを送信してください。
* **一括操作にはCSVインポートを使用してください。** 初期オンボーディングや大規模な移行には、何千もの個別のAPI呼び出しを行うのではなく、[CSVインポート](./import)を使用してください。
* **[レート制限](/reference/rate-limits)を遵守してください。** 高ボリュームの更新の場合、可能な限りリクエストをバッチ処理し、指数バックオフを使用した再試行ロジックを実装してください。
* **戻りパスにEvent Streamsを使用してください。** 配信データのためにOneSignal APIをポーリングするのではなく、[Event Streams](./event-streams)を設定してメッセージイベントのリアルタイムWebhookを受信してください。

***

## データベースからのメッセージのトリガー

2つのアプローチを使用してメッセージをトリガーできます。ユースケースに基づいて1つまたは両方を選択します。

<Tabs>
  <Tab title="API">
    即時のトランザクションメッセージングには、[Create message](/reference/create-message) APIを使用します。

    次を介してユーザーをターゲットにします：

    * `external_id`
    * エイリアス（例：`crm_id`）
    * メールまたは電話番号

    次に最適：

    * [トランザクションメッセージ](./transactional-messages)（例：領収書、アラート）
    * 時間的に重要またはパーソナライズされた通知
    * 個人またはグループのターゲティング（呼び出しごとに最大20,000ユーザー）

    `send_after`パラメータを使用してメッセージをスケジュールすることもできます。
  </Tab>

  <Tab title="タグとJourneys">
    [タグ](./add-user-data-tags)を使用して動的ユーザーセグメントを構築します。

    次の方法でメッセージを送信：

    * API経由でセグメントまたはフィルターをターゲットにする
    * ダッシュボードを介して手動で送信する
    * [Journeys](./journeys-overview)を使用した自動メッセージング

    次に最適：

    * マーケティングキャンペーン（プロモーション、再エンゲージメント）
    * スケジュールされたまたはライフサイクルメッセージ
    * 非技術チームがキャンペーンを実行できるようにする
  </Tab>

  <Tab title="カスタムイベントとJourneys">
    [カスタムイベント](./custom-events)を使用して、APIを介して送信されるか[サポートされているウェアハウスインテグレーション](./integrations)から同期されるユーザーアクションに基づいて[Journeys](./journeys-overview)をトリガーします。

    詳細については、[カスタムイベント](./custom-events)を参照してください。
  </Tab>
</Tabs>

***

## よくある質問

### データベースからメッセージを送信するにはAPIとJourneysのどちらを使うべきですか？

領収書やアラートなどの即時のトランザクションメッセージには[Create message](/reference/create-message) APIを使用してください。ビジュアルなワークフロー構築の恩恵を受ける自動化されたライフサイクルメッセージやマーケティングメッセージには、[タグ](./add-user-data-tags)または[カスタムイベント](./custom-events)を使用した[Journeys](./journeys-overview)を使用してください。

### OneSignalと自分のシステムにはどのようなデータを保存すべきですか？

データの目的に基づいて決定します：

**OneSignalに保存するもの**

* メッセージングに直接使用されるデータを保存します：
  * `external_id`とエイリアス
  * メール（メールメッセージング用）
  * 電話番号（SMS用）
  * [タグ](./add-user-data-tags)としての軽量なユーザー属性
  * メッセージを送信したいキーイベントを[カスタムイベント](./custom-events)として

<Note>
  OneSignalは[メッセージのパーソナライゼーション](./message-personalization)で詳述されているいくつかのメッセージパーソナライズ方法をサポートしています。
</Note>

**自分のシステムに保持するもの**

* メッセージングに関連しないデータ（例：完全なユーザープロファイル、トランザクションログ）は、パフォーマンス、プライバシー、および制御のために自分のシステムに保持します。長期分析またはコンプライアンスのためにOneSignalからメッセージ履歴をアーカイブします。

### External IDを持たないユーザーにメッセージを送信できますか？

はい、ただし追加の処理が必要です。OneSignalの`onesignal_id`または`subscription_id`を使用できますが、これらは`external_id`にリンクされるまで匿名です。システム間の識別を簡素化するために、すべてのユーザーに`external_id`を設定することをお勧めします。

### タグとカスタムイベントの違いは何ですか？

[タグ](./add-user-data-tags)は、セグメンテーションとパーソナライゼーションに使用される永続的なユーザープロパティ（例：プランタイプ、言語設定）です。[カスタムイベント](./custom-events)は、[Journeys](./journeys-overview)をトリガーするために使用される一回限りのユーザーアクション（例：`completed_purchase`）を表します。タグはユーザーが誰であるかを説明し、カスタムイベントはユーザーが何をしたかを説明します。

***

<Columns cols={2}>
  <Card title="ユーザー" icon="user" href="./users">
    OneSignalのユーザーモデルとアイデンティティの構造を理解します。
  </Card>

  <Card title="カスタムイベント" icon="bolt" href="./custom-events">
    システムからイベントを送信して、Journeysをトリガーしユーザー行動を追跡します。
  </Card>

  <Card title="メッセージのパーソナライゼーション" icon="wand-magic-sparkles" href="./message-personalization">
    タグ、カスタムデータ、動的コンテンツでメッセージをパーソナライズします。
  </Card>

  <Card title="Journeys" icon="route" href="./journeys-overview">
    ユーザー行動とデータによってトリガーされる自動メッセージングワークフローを構築します。
  </Card>
</Columns>
