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

# BlueConic

> 从 BlueConic 到 OneSignal 同步数据

## 概述

[BlueConic webhooks](https://support.blueconic.com/hc/en-us/articles/115004431305-Webhook-Connection) 允许您在站点发生特定事件时实时将配置文件或细分数据同步到 OneSignal。本指南演示如何配置 BlueConic 通过 [更新用户](/reference/update-user) API 向 OneSignal 发送数据。

## 设置

要在 BlueConic 和 OneSignal 之间同步用户数据，必须存在一个公共标识符来在两个平台上关联用户。BlueConic 生成一个名为 BlueConic ID 的唯一标识符，可以将其链接到 OneSignal 中的用户以同步数据。

### 更新脚本

我们建议创建一个自定义别名来使用他们的 BlueConic ID 识别您的用户。在分配新别名之前，请确保用户首先登录到 OneSignal。以下代码提供了使用别名和外部 ID 将 BlueConic ID 与 OneSignal 用户关联的示例。

<CodeGroup>
  ```javascript javascript theme={null}
  // 获取 BlueConic ID
  const blueConicId = blueConicClient.profile.getProfile().getId();

  // 确保用户已登录
  // 已登录的用户将拥有外部 ID
  if (!OneSignal.User.externalId) {
  await OneSignal.login("EXTERNAL_ID_FROM_YOUR_BACKENED");
  }

  // 在调用此方法之前必须存在外部 ID
  OneSignal.User.addAlias('blueconic_profile_id', blueConicId);

  ```
</CodeGroup>

如果您的系统使用 BlueConic ID 作为主要标识符，则将其传递给 `OneSignal.login`。

<CodeGroup>
  ```javascript javascript theme={null}
  // 获取 BlueConic ID
  const blueConicId = blueConicClient.profile.getProfile().getId();

  // 将 OneSignal 外部 ID 设置为 BlueConic ID
  OneSignal.login(blueConicId);
  ```
</CodeGroup>

### 添加 webhooks

使用 webhooks 根据您的具体需要将数据从 BlueConic 同步到 OneSignal。下面的示例演示如何使用 [更新用户](/reference/update-user) API 来实现这一点。

**API 详情**

|               |                                                                            |
| ------------- | -------------------------------------------------------------------------- |
| URL           | `https://api.onesignal.com/apps/<APP_ID>/users/by/alias_label/alias_value` |
| Method        | PATCH                                                                      |
| Authorization | Basic \<API\_KEY>                                                          |

如果您的系统使用 BlueConic ID 作为主要标识符...

请使用以下 URL 代替：

`https://api.onesignal.com/apps/<APP_ID>/users/by/external_id/{{blueconic_profile_id}}`

### 同步配置文件属性

通过设置 [标签](./add-user-data-tags) 和其他用户数据将 BlueConic 配置文件数据同步到 OneSignal。

<Frame caption="更新标签的示例配置">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/924b855b7ab5f4626de59cd6146470e446ba41880c8f4b9a7a9c065ca8c0590f-Screenshot_2024-11-26_at_11.28.49_AM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=1fec9fc3a9555005a21c6ef421a3f09f" width="3296" height="2780" data-path="images/docs/924b855b7ab5f4626de59cd6146470e446ba41880c8f4b9a7a9c065ca8c0590f-Screenshot_2024-11-26_at_11.28.49_AM.png" />
</Frame>

**载荷**

<CodeGroup>
  ```json json theme={null}
  {
    "properties": {
      "tags": {
        "tag_name_at_onesignal": "{{BLUECONIC_PROPERTY}}"
      }
    }
  }
  ```
</CodeGroup>

#### 同步细分

通过设置 [标签](./add-user-data-tags) 将 BlueConic 细分数据同步到 OneSignal。使用这些标签直接在 OneSignal 中创建细分。

<Frame caption="保持细分同步的示例配置">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3f5e229f8bc0a85ccee76fded108ec5407cedce9cf6f651b687de7802430a6b8-Screenshot_2024-11-26_at_11.23.52_AM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=06f2ef40620798fca49cdba278f6c537" width="3298" height="2884" data-path="images/docs/3f5e229f8bc0a85ccee76fded108ec5407cedce9cf6f651b687de7802430a6b8-Screenshot_2024-11-26_at_11.23.52_AM.png" />
</Frame>

**载荷**

<CodeGroup>
  ```json json theme={null}
  {
    "properties": {
      "tags": {
        "early_bird": "Yes",
      }
    }
  }
  ```
</CodeGroup>

您可以根据具体需要命名标签，例如 **early\_bird** 或任何其他描述性标签。但是，分配给标签的值应该始终被硬编码，例如 **Yes**，以保持 BlueConic 和 OneSignal 中细分的一致性。

***
