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

# Salesforce Data 360

> Sincroniza audiencias de Salesforce Data 360 y atributos de clientes con Kameleoon para dirigirse a experimentos y personalizar experiencias utilizando perfiles de clientes unificados.

Los perfiles de clientes que creas en Salesforce Data 360, incluida la pertenencia a audiencias y los atributos de comportamiento, no son visibles para Kameleoon de forma predeterminada. Sin un puente directo entre ambas plataformas, los equipos de marketing y producto no pueden usar esos datos de clientes unificados para segmentar experimentos ni personalizar experiencias en el sitio.

Salesforce Data 360 activa segmentos y atributos de perfil a destinos de almacenamiento de archivos externos, incluidos Amazon S3 y Secure File Transfer Protocol (SFTP). Kameleoon ingiere estos archivos de activación y asocia los datos de Salesforce con el visitante correspondiente de Kameleoon utilizando el `kameleoon_visitor_code`.

Después de la sincronización, expondrás las audiencias y atributos de Salesforce como datos personalizados de Kameleoon para usarlos como condiciones de orientación en el creador de segmentos de Kameleoon.

<Note>
  Esta integración está disponible bajo pedido. Ponte en contacto con tu Customer Success Manager (CSM) para obtener más información.
</Note>

**Casos de uso:**

* Dirigirse a visitantes que pertenecen a una audiencia específica de Salesforce, como *High-value customers*.
* Dirigirse a clientes basándote en un atributo específico, como un `customer_tier` de *Gold*.
* Personaliza una experiencia basándote en datos de comportamiento, como `loyalty_status`, `lifetime_value_band` o `churn_risk`.
* Combina datos de Salesforce de forma nativa con cualquier otra condición de orientación de Kameleoon.

***

## Cómo funciona la sincronización de Salesforce Data 360

La integración se basa en que el código de visitante de Kameleoon actúe como el identificador común entre ambas plataformas.

**La sincronización sigue este flujo de trabajo continuo:**

1. **Envía el identificador:** Tu sitio web envía el código de visitante de Kameleoon a Salesforce Data 360 durante la visita del usuario.
2. **Exporta los datos:** Salesforce publica periódicamente las pertenencias a audiencias y los atributos de cliente seleccionados en un destino S3 o SFTP.
3. **Ingiere los datos:** Kameleoon procesa estos archivos de activación y almacena los datos de Salesforce asociados al correspondiente `kameleoon_visitor_code`.
4. **Dirigirse al visitante:** En la siguiente interacción del visitante, Kameleoon recupera esta información a través de los datos personalizados y la evalúa para los segmentos de orientación activos.

***

## Requisitos previos para la integración de Salesforce Data 360

Antes de configurar la integración entre Kameleoon y Salesforce Data 360, verifica que cumplas con los siguientes requisitos:

* Tienes una cuenta de Salesforce Data 360 con permisos administrativos para configurar Data Model Objects, mappings, segmentos, conexiones y activation targets.
* Tienes un proyecto de Kameleoon activo.
* Tu representante de Kameleoon te ha proporcionado las credenciales específicas de conexión S3 o SFTP para tu proyecto.

***

## Paso 1: Envía el código de visitante de Kameleoon a Salesforce

Para asociar perfiles de Salesforce con visitantes de Kameleoon, tu entorno debe enviar el código de visitante de Kameleoon a Salesforce Interactions.

Añade el siguiente JavaScript a tu **script global** en Kameleoon. Esta lógica asegura que el script envía el código de visitante a Salesforce exactamente una vez por visita, ejecutándose solo cuando el objeto de Salesforce está disponible en la página:

```javascript theme={null}
// Asegúrate de que esto se ejecute solo en la primera vista de página de la visita actual
if (Kameleoon.API.CurrentVisit.pageViews === 1) {
    Kameleoon.API.Core.runWhenConditionTrue(
        function () {
            // Espera a que el SDK de Salesforce Interactions se inicialice
            return (
                typeof window.SalesforceInteractions !== "undefined" &&
                typeof window.SalesforceInteractions.sendEvent === "function"
            );
        },
        function () {
            // Transmite el código de visitante de Kameleoon a Salesforce
            window.SalesforceInteractions.sendEvent({
                user: {
                    attributes: {
                        eventType: "kameleoonIdentity",
                        kameleoonVisitorCode: Kameleoon.API.Visitor.code
                    }
                }
            });
        },
        500 // Intervalo de sondeo en milisegundos
    );
}
```

***

## Paso 2: Añade y mapea el código de visitante en Salesforce Data 360

Con el código de visitante fluyendo hacia tu entorno de Salesforce, crea un campo de destino en el Salesforce Individual Data Model Object (DMO) para almacenarlo.

### Crea el campo en Salesforce Data 360

1. En Salesforce Data 360, navega a **Data Model**.
2. Abre **Individual DMO** y haz clic en **Edit**.
3. Haz clic en **Add Field** y configúralo usando los valores exactos a continuación:

| Setting                     | Value                            |
| :-------------------------- | :------------------------------- |
| **Field label**             | Código de visitante de Kameleoon |
| **Field API name**          | `kameleoon_visitor_code`         |
| **Data type**               | Text                             |
| **Primary key**             | No                               |
| **Enable value suggestion** | No                               |

4. Haz clic en **Save** para actualizar el DMO.

### Mapea el campo al Data Lake Object

Crear el campo DMO no lo rellena automáticamente. Debes mapear el campo del Data Lake Object (DLO) entrante a tu nuevo campo DMO.

1. Navega al Data Lake Object relevante (por ejemplo, tu DLO del sitio web).
2. Mapea el campo de origen que contiene el identificador de visitante de Kameleoon a `Individual.kameleoon_visitor_code`.

***

## Paso 3: Configura la conexión entre Salesforce y Kameleoon

Kameleoon admite activaciones de Salesforce Data 360 a través de Amazon S3 o SFTP. Selecciona y configura **uno** de los siguientes métodos de transporte en función de las credenciales que tu representante de Kameleoon te proporcionó.

<Tip>
  Kameleoon recomienda usar la opción SFTP para configurar la integración.
</Tip>

### Opción A: Configura Amazon S3 para Salesforce Data 360

1. En Salesforce Data 360, navega a **Data Cloud Setup**.
2. En **External Integrations**, selecciona **More Connectors** > **New**.
3. En **Target**, selecciona **Amazon S3**.
4. Introduce un nombre de conexión (por ejemplo, *Kameleoon integration*).
5. Selecciona **Access Key/Secret Based authentication**.
6. Introduce AWS Access Key, AWS Secret Access Key, S3 bucket y Parent Directory proporcionados por Kameleoon.
7. Haz clic en **Test Connection** y luego en **Save**.
8. Navega a **Activation Targets** > **New**.
9. En **File Storage**, selecciona **Amazon S3** y selecciona tu conexión de Kameleoon recién creada.
10. Selecciona **CSV** como formato de archivo, introduce un nombre de destino (por ejemplo, *Kameleoon audience sync*) y haz clic en **Save**.

### Opción B: Configura SFTP para Salesforce Data 360

1. En Salesforce Data 360, navega a **Data Cloud Setup**.
2. En **External Integrations**, selecciona **Other Connectors**.
3. Haz clic en **New** y selecciona **Target** > **Secure File Transfer (SFTP)**.
4. Introduce un nombre de conexión (por ejemplo, *Kameleoon integration*).
5. Introduce el host SFTP, puerto, nombre de usuario y Parent Directory de Kameleoon proporcionados por Kameleoon.
6. Introduce tu clave privada SSH y contraseña opcional.
7. Haz clic en **Test Connection** y luego en **Save**.
8. Navega a **Activation Targets** > **New**.
9. En **File Storage**, selecciona **SFTP** y selecciona tu conexión de Kameleoon recién creada.
10. Selecciona **CSV** como formato de archivo, introduce un nombre de destino (por ejemplo, *Kameleoon audience sync*) y haz clic en **Save**.

***

## Paso 4: Activa las audiencias y atributos de Salesforce en Kameleoon

Con la conexión establecida, selecciona los segmentos y atributos específicos de Salesforce Data 360 para enviar a Kameleoon.

1. En Salesforce Data 360, navega a **Segments**.
2. Selecciona el segmento que deseas sincronizar con Kameleoon.
3. En la pestaña **Activations**, haz clic en **New** y selecciona tu destino Kameleoon Audience Sync.
4. Selecciona **Individual** como objeto Activation Membership.
5. Haz clic en **Add Attributes**, expande la entidad **Individual** y añade `kameleoon_visitor_code`.
6. Añade cualquier atributo adicional de Salesforce que desees utilizar para orientación en Kameleoon (por ejemplo, `customer_tier` o `churn_risk`).

<Warning>
  El atributo `kameleoon_visitor_code` es obligatorio. Sin él, Kameleoon no puede mapear los datos al perfil de visitante correcto.
</Warning>

<Note>
  Al configurar el tipo de actualización de activación en Salesforce, selecciona **Incremental**, que asegura que las pertenencias a audiencias y los atributos se sincronicen de manera eficiente mediante la actualización solo de los registros cambiados, en lugar de transferir toda la audiencia en cada ejecución.
</Note>

***

## Paso 5: Recupera los datos de Salesforce en tu script global

Para que los datos sincronizados de Salesforce estén disponibles para orientación, recuperalos del almacén de datos remoto de Kameleoon y regístralos como datos personalizados utilizando la API de activación de JavaScript.

Añade este código al mismo script global que envía el código de visitante a Salesforce, no al código de recuperación propio de un dato personalizado. La llamada de recuperación es asincrónica y requiere una devolución de llamada, por lo que llamarla una vez aquí te permite registrar cada atributo y audiencia desde una única respuesta del servidor en lugar de activar una búsqueda remota separada para cada una:

```javascript theme={null}
// Asegúrate de que esto se ejecute solo en la primera vista de página de la visita actual
if (Kameleoon.API.CurrentVisit.pageViews === 1) {
    Kameleoon.API.Data.retrieveDataFromRemoteSource(
        Kameleoon.API.Visitor.code,
        function (data) {
            // Registra cada pertenencia a audiencia sincronizada de Salesforce
            if (Array.isArray(data.salesforce_audiences)) {
                data.salesforce_audiences.forEach(function (audience) {
                    Kameleoon.API.Data.setCustomData("Salesforce Audiences", audience);
                });
            }

            // Registra el atributo sincronizado Salesforce Customer Tier
            if (data.customer_tier) {
                Kameleoon.API.Data.setCustomData("Salesforce Customer Tier", data.customer_tier);
            }
        }
    );
}
```

Consulta la [referencia de la API de activación](../../../../developer-docs/apis/activation-api-js/api-reference/api-reference#retrievedatafromremotesource) para la documentación completa en `retrieveDataFromRemoteSource()` y [`setCustomData()`](../../../../developer-docs/apis/activation-api-js/api-reference/api-reference#setcustomdata).

### Recupera datos de Salesforce para Feature Experimentation

Si orienta a visitantes con Kameleoon Feature Experimentation en lugar de experimentación web, ningún script global se ejecuta en el navegador. Recupera los datos con un SDK de Kameleoon en su lugar, utilizando `getRemoteData()` para obtener la carga útil y `addData()` para registrar cada valor antes de evaluar una bandera de características:

```javascript theme={null}
import { KameleoonClient, CustomData } from '@kameleoon/javascript-sdk';

const client = new KameleoonClient({ siteCode: 'my_site_code' });

async function init() {
    await client.initialize();

    // Obtén el código de visitante
    const visitorCode = client.getVisitorCode();

    // Obtén la carga útil sincronizada de Salesforce para este visitante
    const jsonData = await client.getRemoteData(visitorCode);
    const data = JSON.parse(jsonData);

    // Registra las pertenencias a audiencias sincronizadas de Salesforce en una sola llamada.
    // Los llamados repetidos a addData() con el mismo nombre de dato personalizado reemplazan el
    // valor anterior en lugar de agregarlo, por lo que pasa cada audiencia como un
    // argumento variádico a una instancia de CustomData.
    if (Array.isArray(data.salesforce_audiences) && data.salesforce_audiences.length > 0) {
        client.addData(visitorCode, new CustomData('Salesforce Audiences', ...data.salesforce_audiences));
    }

    // Registra el atributo sincronizado Salesforce Customer Tier
    if (data.customer_tier) {
        client.addData(visitorCode, new CustomData('Salesforce Customer Tier', data.customer_tier));
    }

    // Evalúa la bandera de características utilizando los datos que acabas de añadir
    const isActive = client.isFeatureFlagActive(visitorCode, 'my_feature_key');
}

init();
```

Consulta la [documentación del SDK de JavaScript](../../../../developer-docs/sdks/web-sdks/js-sdk) para la documentación completa en `getRemoteData()`, `addData()` e `isFeatureFlagActive()`. Para el flujo completo de Feature Experimentation, consulta [Utiliza datos externos para dirigirse a usuarios](../../../../developer-docs/feature-experimentation/targeting-and-segmentation/use-external-data-to-target-users).

***

## Paso 6: Crea datos personalizados en Kameleoon

Kameleoon procesa automáticamente los archivos CSV de activación de Salesforce entrantes. Para utilizar estos datos para orientación, crea objetos de **datos personalizados** en la plataforma de Kameleoon que coincidan con los valores que tu script establece.

Navega a **Settings > Custom data > New custom data** y configura los objetos según tus tipos de datos requeridos.

Para obtener más información sobre datos personalizados de Kameleoon, consulta [Crear dato personalizado](../../../assets/custom-data/create-custom-data).

### Ejemplo 1: Mapea audiencias de Salesforce (datos de lista)

Para dirigirse a visitantes en función de su presencia en múltiples audiencias de Salesforce, configura el dato personalizado con la siguiente configuración:

* **Name:** Salesforce Audiences
* **Retrieval method:** Kameleoon Activation API
* **Type:** List
* **Format:** String
* **Scope:** Visit

### Ejemplo 2: Mapea atributos de perfil de Salesforce (datos de cadena)

Para dirigirse a visitantes en función de un atributo de perfil específico y singular, como un nivel de cliente, crea una entrada de dato personalizado separada con la siguiente configuración:

* **Name:** Salesforce Customer Tier
* **Retrieval method:** Kameleoon Activation API
* **Type:** Single
* **Format:** String
* **Scope:** Visitor

<Note>
  Si orienta a visitantes con Kameleoon Feature Experimentation, selecciona **Kameleoon SDK method** como método de recuperación para ambas entradas de datos personalizados en lugar de **Kameleoon Activation API**.
</Note>

***

## Paso 7: Dirigete a las audiencias de Salesforce en Kameleoon

Después de mapear los datos personalizados, la información de Salesforce está disponible nativamente en el creador de segmentos de Kameleoon.

**Para utilizar los datos en un segmento:**

1. Navega al **Segment Builder** (**Settings** > **Segments** > **New segment**).
2. Arrastra tu condición de datos personalizados recién creada a la regla del segmento.
3. Configura el operador lógico. Por ejemplo, para dirigirse a clientes de alto valor, configura:

   * `Salesforce Audiences` **is among** `High-value customers`

Puedes combinarlos nativamente con otros criterios de Kameleoon para crear segmentos altamente específicos (por ejemplo, *Salesforce Customer Tier = Gold* **AND** *Device = Mobile*).

Para obtener más información sobre la creación de segmentos, consulta [Crear un segmento](../../../assets/segments/create-a-segment).

***

## Consideraciones para la integración de Salesforce Data 360

Ten en cuenta los siguientes comportamientos del sistema al mantener la integración entre Salesforce Data 360 y Kameleoon:

* **Consistencia del identificador:** La cadena `kameleoon_visitor_code` que Salesforce exporta debe coincidir exactamente con la cadena de cookie del visitante en Kameleoon. Si el identificador se altera o se codifica durante el proceso de importación de Salesforce, la sincronización falla.
* **Actualización de datos:** La integración se basa en descargas de archivos asincrónicas. Los cambios en el perfil de un usuario están disponibles en Kameleoon solo después de que se actualiza el segmento de Salesforce, Salesforce entrega el archivo de activación CSV y Kameleoon ingiere la carga útil resultante.
* **Privacidad de datos:** Activa solo los atributos específicos requeridos para experimentación o personalización. Evita activar información de identificación personal (PII) cuando un atributo categórico más amplio (como un `LTV_band` genérico) logra el mismo objetivo de orientación.

***
