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

> Synchronisez les audiences et attributs clients de Salesforce Data 360 avec Kameleoon pour cibler les expériences et personnaliser les expériences en utilisant des profils clients unifiés.

Les profils clients construits dans Salesforce Data 360, y compris l'appartenance aux audiences et les attributs comportementaux, ne sont pas visibles par Kameleoon par défaut. Sans passerelle directe entre les deux plateformes, les équipes marketing et produit ne peuvent pas utiliser ces données clients unifiées pour cibler des expériences ou personnaliser l'expérience sur site.

Salesforce Data 360 active les segments et attributs de profil vers des destinations de stockage de fichiers externes, notamment Amazon S3 et Secure File Transfer Protocol (SFTP). Kameleoon ingère ces fichiers d'activation et associe les données Salesforce au visiteur Kameleoon correspondant en utilisant le `kameleoon_visitor_code`.

Après la synchronisation, vous exposez les audiences et attributs Salesforce en tant que données personnalisées Kameleoon pour les utiliser comme conditions de ciblage dans le constructeur de segments Kameleoon.

<Note>
  Cette intégration est disponible sur demande. Contactez votre Customer Success Manager (CSM) pour en savoir plus.
</Note>

**Cas d'usage :**

* Ciblez les visiteurs appartenant à une audience Salesforce spécifique, comme les *clients à forte valeur*.
* Ciblez les clients en fonction d'un attribut spécifique, comme un `customer_tier` égal à *Or*.
* Personnalisez une expérience en fonction des données comportementales, comme `loyalty_status`, `lifetime_value_band` ou `churn_risk`.
* Combinez les données Salesforce nativement avec n'importe quelle autre condition de ciblage Kameleoon.

***

## Fonctionnement de la synchronisation Salesforce Data 360

L'intégration s'appuie sur le code visiteur Kameleoon agissant comme l'identifiant commun sur les deux plates-formes.

**La synchronisation suit ce flux de travail continu :**

1. **Envoyer l'identifiant :** Votre site web envoie le code visiteur Kameleoon à Salesforce Data 360 lors de la visite de l'utilisateur.
2. **Exporter les données :** Salesforce publie périodiquement les appartenances aux audiences et les attributs clients sélectionnés vers une destination S3 ou SFTP.
3. **Ingérer les données :** Kameleoon traite ces fichiers d'activation et stocke les données Salesforce par rapport au `kameleoon_visitor_code` correspondant.
4. **Cibler le visiteur :** Lors de la prochaine interaction du visiteur, Kameleoon récupère ces informations via les données personnalisées et les évalue pour les segments de ciblage actifs.

***

## Configuration requise pour l'intégration Salesforce Data 360

Avant de configurer l'intégration entre Kameleoon et Salesforce Data 360, vérifiez que vous disposez de la configuration requise suivante :

* Vous avez un compte Salesforce Data 360 avec les autorisations administrateur pour configurer les objets de modèle de données, les mappages, les segments, les connexions et les cibles d'activation.
* Vous avez un projet Kameleoon actif.
* Votre représentant Kameleoon vous a fourni les identifiants de connexion S3 ou SFTP spécifiques pour votre projet.

***

## Étape 1 : Envoyer le code visiteur Kameleoon à Salesforce

Pour associer les profils Salesforce aux visiteurs Kameleoon, votre environnement doit envoyer le code visiteur Kameleoon à Salesforce Interactions.

Ajoutez le JavaScript suivant à votre **script global** dans Kameleoon. Cette logique garantit que le script envoie le code visiteur à Salesforce exactement une fois par visite, en se déclenchant uniquement lorsque l'objet Salesforce devient disponible sur la page :

```javascript theme={null}
// Assurez-vous que cela s'exécute uniquement lors de la première page vue de la visite actuelle
if (Kameleoon.API.CurrentVisit.pageViews === 1) {
    Kameleoon.API.Core.runWhenConditionTrue(
        function () {
            // Attendez l'initialisation du SDK Salesforce Interactions
            return (
                typeof window.SalesforceInteractions !== "undefined" &&
                typeof window.SalesforceInteractions.sendEvent === "function"
            );
        },
        function () {
            // Transmettez le code visiteur Kameleoon à Salesforce
            window.SalesforceInteractions.sendEvent({
                user: {
                    attributes: {
                        eventType: "kameleoonIdentity",
                        kameleoonVisitorCode: Kameleoon.API.Visitor.code
                    }
                }
            });
        },
        500 // Intervalle d'interrogation en millisecondes
    );
}
```

***

## Étape 2 : Ajouter et mapper le code visiteur dans Salesforce Data 360

Une fois le code visiteur transmis à votre environnement Salesforce, créez un champ de destination sur l'objet du modèle de données individuel Salesforce (DMO) pour le stocker.

### Créer le champ dans Salesforce Data 360

1. Dans Salesforce Data 360, accédez à **Data Model**.
2. Ouvrez **Individual DMO** et cliquez sur **Edit**.
3. Cliquez sur **Add Field** et configurez-le en utilisant les valeurs exactes ci-dessous :

| Paramètre                   | Valeur                   |
| :-------------------------- | :----------------------- |
| **Field label**             | Kameleoon visitor code   |
| **Field API name**          | `kameleoon_visitor_code` |
| **Data type**               | Text                     |
| **Primary key**             | No                       |
| **Enable value suggestion** | No                       |

4. Cliquez sur **Save** pour mettre à jour le DMO.

### Mapper le champ vers l'objet du lac de données

La création du champ DMO ne le remplit pas automatiquement. Vous devez mapper le champ de l'objet de lac de données entrant (DLO) vers votre nouveau champ DMO.

1. Accédez à l'objet de lac de données pertinent (par exemple, votre DLO de site web).
2. Mappez le champ source contenant l'identifiant de visiteur Kameleoon vers `Individual.kameleoon_visitor_code`.

***

## Étape 3 : Configurer la connexion entre Salesforce et Kameleoon

Kameleoon prend en charge les activations Salesforce Data 360 via Amazon S3 ou SFTP. Sélectionnez et configurez **une** des méthodes de transport suivantes en fonction des identifiants fournis par votre représentant Kameleoon.

<Tip>
  Kameleoon recommande d'utiliser l'option SFTP pour configurer l'intégration.
</Tip>

### Option A : Configurer Amazon S3 pour Salesforce Data 360

1. Dans Salesforce Data 360, accédez à **Data Cloud Setup**.
2. Sous **External Integrations**, sélectionnez **More Connectors** > **New**.
3. Sous **Target**, sélectionnez **Amazon S3**.
4. Entrez un nom de connexion (par exemple, *Intégration Kameleoon*).
5. Sélectionnez **Access Key/Secret Based authentication**.
6. Entrez la clé d'accès AWS, la clé d'accès secret AWS, le compartiment S3 et le répertoire parent fournis par Kameleoon.
7. Cliquez sur **Test Connection**, puis sur **Save**.
8. Accédez à **Activation Targets** > **New**.
9. Sous **File Storage**, sélectionnez **Amazon S3** et sélectionnez votre connexion Kameleoon nouvellement créée.
10. Sélectionnez **CSV** comme format de fichier, entrez un nom de cible (par exemple, *Synchronisation audience Kameleoon*), et cliquez sur **Save**.

### Option B : Configurer SFTP pour Salesforce Data 360

1. Dans Salesforce Data 360, accédez à **Data Cloud Setup**.
2. Sous **External Integrations**, sélectionnez **Other Connectors**.
3. Cliquez sur **New** et sélectionnez **Target** > **Secure File Transfer (SFTP)**.
4. Entrez un nom de connexion (par exemple, *Intégration Kameleoon*).
5. Entrez l'hôte SFTP Kameleoon, le port, le nom d'utilisateur et le répertoire parent fournis par Kameleoon.
6. Entrez votre clé privée SSH et votre phrase de passe facultative.
7. Cliquez sur **Test Connection**, puis sur **Save**.
8. Accédez à **Activation Targets** > **New**.
9. Sous **File Storage**, sélectionnez **SFTP** et sélectionnez votre connexion Kameleoon nouvellement créée.
10. Sélectionnez **CSV** comme format de fichier, entrez un nom de cible (par exemple, *Synchronisation audience Kameleoon*), et cliquez sur **Save**.

***

## Étape 4 : Activer les audiences et attributs Salesforce vers Kameleoon

Une fois la connexion établie, sélectionnez les segments et attributs spécifiques de Salesforce Data 360 à pousser vers Kameleoon.

1. Dans Salesforce Data 360, accédez à **Segments**.
2. Sélectionnez le segment que vous souhaitez synchroniser avec Kameleoon.
3. Dans l'onglet **Activations**, cliquez sur **New** et sélectionnez votre cible Kameleoon Audience Sync.
4. Sélectionnez **Individual** comme objet d'appartenance d'activation.
5. Cliquez sur **Add Attributes**, développez l'entité **Individual**, et ajoutez `kameleoon_visitor_code`.
6. Ajoutez tous les attributs Salesforce supplémentaires que vous souhaitez utiliser pour le ciblage dans Kameleoon (par exemple, `customer_tier` ou `churn_risk`).

<Warning>
  L'attribut `kameleoon_visitor_code` est obligatoire. Sans lui, Kameleoon ne peut pas mapper les données au profil de visiteur correct.
</Warning>

<Note>
  Lors de la configuration du type d'actualisation de l'activation dans Salesforce, sélectionnez **Incremental**, qui garantit que les appartenances aux audiences et les attributs se synchronisent efficacement en mettant à jour uniquement les enregistrements modifiés, au lieu de transférer l'ensemble de l'audience à chaque exécution.
</Note>

***

## Étape 5 : Récupérer les données Salesforce dans votre script global

Pour mettre les données Salesforce synchronisées à disposition pour le ciblage, récupérez-les du magasin de données distant Kameleoon et enregistrez-les comme données personnalisées à l'aide de l'API d'activation JavaScript.

Ajoutez ce code au même script global qui envoie le code visiteur à Salesforce, non au code de récupération propre à une donnée personnalisée. L'appel de récupération est asynchrone et nécessite un rappel, donc l'appeler une seule fois ici vous permet d'enregistrer chaque attribut et audience à partir d'une seule réponse du serveur au lieu de déclencher une recherche distante distincte pour chacun :

```javascript theme={null}
// Assurez-vous que cela s'exécute uniquement lors de la première page vue de la visite actuelle
if (Kameleoon.API.CurrentVisit.pageViews === 1) {
    Kameleoon.API.Data.retrieveDataFromRemoteSource(
        Kameleoon.API.Visitor.code,
        function (data) {
            // Enregistrez chaque appartenance à une audience Salesforce synchronisée
            if (Array.isArray(data.salesforce_audiences)) {
                data.salesforce_audiences.forEach(function (audience) {
                    Kameleoon.API.Data.setCustomData("Salesforce Audiences", audience);
                });
            }

            // Enregistrez l'attribut Salesforce Customer Tier synchronisé
            if (data.customer_tier) {
                Kameleoon.API.Data.setCustomData("Salesforce Customer Tier", data.customer_tier);
            }
        }
    );
}
```

Consultez la [référence de l'API d'activation](../../../../developer-docs/apis/activation-api-js/api-reference/api-reference#retrievedatafromremotesource) pour la documentation complète sur `retrieveDataFromRemoteSource()` et [`setCustomData()`](../../../../developer-docs/apis/activation-api-js/api-reference/api-reference#setcustomdata).

### Récupérer les données Salesforce pour Feature Experimentation

Si vous ciblez les visiteurs avec Kameleoon Feature Experimentation au lieu de l'expérimentation web, aucun script global ne s'exécute dans le navigateur. Récupérez les données avec un SDK Kameleoon à la place, en utilisant `getRemoteData()` pour récupérer le contenu et `addData()` pour enregistrer chaque valeur avant d'évaluer un drapeau de fonctionnalité :

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

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

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

    // Obtenez le code visiteur
    const visitorCode = client.getVisitorCode();

    // Récupérez le contenu Salesforce synchronisé pour ce visiteur
    const jsonData = await client.getRemoteData(visitorCode);
    const data = JSON.parse(jsonData);

    // Enregistrez les appartenances aux audiences Salesforce synchronisées en un seul appel.
    // Les appels addData() répétés avec le même nom de donnée personnalisée remplacent la
    // valeur précédente au lieu d'ajouter, alors passez chaque audience en tant qu'argument
    // variadique à une instance CustomData unique.
    if (Array.isArray(data.salesforce_audiences) && data.salesforce_audiences.length > 0) {
        client.addData(visitorCode, new CustomData('Salesforce Audiences', ...data.salesforce_audiences));
    }

    // Enregistrez l'attribut Salesforce Customer Tier synchronisé
    if (data.customer_tier) {
        client.addData(visitorCode, new CustomData('Salesforce Customer Tier', data.customer_tier));
    }

    // Évaluez le drapeau de fonctionnalité en utilisant les données que vous venez d'ajouter
    const isActive = client.isFeatureFlagActive(visitorCode, 'my_feature_key');
}

init();
```

Consultez la [documentation du SDK JavaScript](../../../../developer-docs/sdks/web-sdks/js-sdk) pour la documentation complète sur `getRemoteData()`, `addData()` et `isFeatureFlagActive()`. Pour le flux d'expérimentation des fonctionnalités complet, consultez [Utiliser des données externes pour cibler les utilisateurs](../../../../developer-docs/feature-experimentation/targeting-and-segmentation/use-external-data-to-target-users).

***

## Étape 6 : Créer une donnée personnalisée dans Kameleoon

Kameleoon traite automatiquement les fichiers d'activation Salesforce CSV entrants. Pour utiliser ces données pour le ciblage, créez des objets de **données personnalisées** dans la plateforme Kameleoon qui correspondent aux valeurs définies par votre script.

Accédez à **Settings > Custom data > New custom data** et configurez les objets en fonction de vos types de données requis.

Pour plus d'informations sur les données personnalisées Kameleoon, consultez [Créer une donnée personnalisée](../../../assets/custom-data/create-custom-data).

### Exemple 1 : Mapper les audiences Salesforce (données de liste)

Pour cibler les visiteurs en fonction de leur présence dans plusieurs audiences Salesforce, configurez la donnée personnalisée avec les paramètres suivants :

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

### Exemple 2 : Mapper les attributs de profil Salesforce (données de chaîne)

Pour cibler les visiteurs en fonction d'un attribut de profil spécifique et singulier, comme un niveau client, créez une entrée de donnée personnalisée distincte avec les paramètres suivants :

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

<Note>
  Si vous ciblez les visiteurs avec Kameleoon Feature Experimentation, sélectionnez **Kameleoon SDK method** comme méthode de récupération pour les deux entrées de données personnalisées au lieu de **Kameleoon Activation API**.
</Note>

***

## Étape 7 : Cibler les audiences Salesforce dans Kameleoon

Une fois que vous mappez les données personnalisées, les informations Salesforce deviennent nativement disponibles dans le constructeur de segments Kameleoon.

**Pour utiliser les données dans un segment :**

1. Accédez au **Segment Builder** (**Settings** > **Segments** > **New segment**).
2. Faites glisser votre condition de donnée personnalisée nouvellement créée dans la règle de segment.
3. Configurez l'opérateur logique. Par exemple, pour cibler les clients à forte valeur, configurez :

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

Vous pouvez combiner celles-ci nativement avec d'autres critères Kameleoon pour créer des segments très spécifiques (par exemple, *Salesforce Customer Tier = Gold* **AND** *Device = Mobile*).

Pour plus d'informations sur la création de segments, consultez [Créer un segment](../../../assets/segments/create-a-segment).

***

## Considérations pour l'intégration Salesforce Data 360

Tenez compte des comportements système suivants lors de la maintenance de l'intégration entre Salesforce Data 360 et Kameleoon :

* **Identifier consistency :** La chaîne `kameleoon_visitor_code` que Salesforce exporte doit correspondre exactement à la chaîne de cookie du visiteur dans Kameleoon. Si l'identifiant est altéré ou haché lors du processus d'importation Salesforce, la synchronisation échoue.
* **Data freshness :** L'intégration s'appuie sur des dépôts de fichiers asynchrones. Les modifications apportées au profil d'un utilisateur ne deviennent disponibles dans Kameleoon qu'après l'actualisation du segment Salesforce, la livraison du fichier d'activation CSV par Salesforce et l'ingestion du contenu résultant par Kameleoon.
* **Data privacy :** Activez uniquement les attributs spécifiques requis pour l'expérimentation ou la personnalisation. Évitez d'activer des informations personnellement identifiables (PII) lorsqu'un attribut catégorique plus large (comme un `LTV_band` générique) atteint le même objectif de ciblage.

***
