# Configuration

Connecter **Bloomreach Engagement** avec **The Wallet Crew** pour orchestrer les parcours de Wallet. Les scénarios Bloomreach peuvent déclencher des actions sur les Cartes (créer, mettre à jour, notifier). The Wallet Crew envoie également des événements à Bloomreach pour la segmentation et la mesure.

Une configuration minimale de bout en bout prend généralement **1 à 2 heures**. Cela suppose que les droits d’accès et une Carte de test sont disponibles pour valider le flux.

## Prérequis

Avant de commencer, assurez-vous d’avoir :

* **Autorisations Bloomreach**
  * Accès à **Paramètres du projet → Intégrations**.
  * Accès aux identifiants API sous **Paramètres du projet → Gestion des accès → API**.
* **Autorisations The Wallet Crew**
  * Accès à la console d’administration pour configurer le connecteur Bloomreach.
  * Autorisation de créer et de gérer des clés API.
* **Environnement et données de test**
  * Environnement cible identifié (staging ou production).
  * Une Carte de test existe, avec un `passId`connu, pour valider les appels de bout en bout.
  * Tout allowlisting réseau requis et les contraintes de sécurité sont en place.

## Configuration de The Wallet Crew

{% stepper %}
{% step %}

#### Activer le connecteur

Le connecteur Bloomreach doit être activé pour le tenant. Cela est généralement effectué par l’équipe The Wallet Crew.
{% endstep %}

{% step %}

#### Configurer les paramètres généraux

Ouvrez les paramètres du connecteur Bloomreach dans le back-office de The Wallet Crew.

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/integrations/bloomreach/settings" class="button secondary" data-icon="chevrons-right">Ouvrir la page des paramètres généraux</a></p>

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2Feh8aPbK5B5yUmlsfpf0U%2Fimage.png?alt=media&#x26;token=b01c15dc-cb5f-478d-bab3-0b854ca4f539" alt="The Wallet Crew Bloomreach connector: general settings screen"><figcaption><p>Les paramètres généraux définissent la manière dont The Wallet Crew s’authentifie auprès de Bloomreach.</p></figcaption></figure></div>

Renseignez :

* `Token du projet`
* `URL de base de l’API`
* `ID de la clé API`
* `Secret API`

Les valeurs Bloomreach sont disponibles sous `Paramètres du projet` → `Gestion des accès` → `API`.

{% hint style="info" %}
Le token du projet détermine l’environnement cible. Cela permet de séparer le staging de la production.
{% endhint %}

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2Fv6ujscaHT42a854x6bXf%2Fimage.png?alt=media&#x26;token=735eaeb9-8f42-4bcf-aec7-023e26acad69" alt="Bloomreach Engagement API credentials screen showing API keys and project token"><figcaption><p>Utilisez un token et une clé API associés au bon environnement Bloomreach.</p></figcaption></figure></div>
{% endstep %}

{% step %}

#### Paramètres avancés (extensibilité)

Les paramètres avancés exposent des points d’entrée de script pour le connecteur. Ces scripts contrôlent la résolution des contacts, la transformation des événements et le mappage des champs.

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2FCTh3F3F2UJ34fDZx6AL4%2Fimage.png?alt=media&#x26;token=eba6a0a0-5b96-4d84-ab17-0abf9677d361" alt="The Wallet Crew Bloomreach connector: advanced settings screen with script configuration blocks"><figcaption><p>Les paramètres avancés sont utilisés pour les modèles de données personnalisés et la gouvernance.</p></figcaption></figure></div>

Détails et exemples de scripts : [Extensibilité](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/connect/marketing-automation/bloomreach/extensibility).
{% endstep %}
{% endstepper %}

## Configuration Bloomreach

{% stepper %}
{% step %}

#### Configurer un schéma d’authentification HTTP

Bloomreach appelle les API de The Wallet Crew à l’aide d’une clé API. Cela se configure une fois sous forme de schéma d’authentification HTTP dans Bloomreach.

Dans Bloomreach :

1. Accédez à `Données et ressources` → `Intégrations` → `+ Ajouter une nouvelle intégration`.

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2FBakz2SCLU9LEHDGiILNj%2Fimage.png?alt=media&#x26;token=964d28d5-4f35-4193-b5dd-4aedb7b35321" alt="Add new HTTP integration" width="375"><figcaption></figcaption></figure></div>

2. Sélectionnez **Schémas d’authentification HTTP**.

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2FTQxciFErmOIq1hfMOU5D%2Fimage.png?alt=media&#x26;token=2168a3fe-d3ed-4032-8525-6240991a59fc" alt="Http Authentication schemes configuration" width="375"><figcaption></figcaption></figure></div>

3. Configurez le schéma avec une clé API créée dans The Wallet Crew.

Une clé API The Wallet Crew avec `tenant.pass:write` l’autorisation est requise. Les clés API sont gérées dans la console d’administration de The Wallet Crew.

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/settings/security/apiKeys" class="button secondary" data-icon="chevrons-right">Ouvrir la configuration des clés API</a></p>

Valeurs du schéma Bloomreach :

<table data-header-hidden data-full-width="true"><thead><tr><th width="141.88885498046875"></th><th></th></tr></thead><tbody><tr><td>Point de terminaison</td><td><code>https://app.neostore.cloud/api</code> (production) ou <code>https://app-qa.neostore.cloud/api</code> (staging)</td></tr><tr><td>Type</td><td>En-têtes personnalisés</td></tr><tr><td>Clé</td><td><code>X-API-KEY</code></td></tr><tr><td>Valeur</td><td>Clé API The Wallet Crew</td></tr></tbody></table>
{% endstep %}

{% step %}

#### Installer les activités prédéfinies WebHook

Les activités Bloomreach sont installées sous forme d’intégrations prédéfinies WebHook. Une intégration Bloomreach est généralement créée par activité.

Seules les activités nécessaires doivent être installées. Cela simplifie la création des scénarios et réduit la dérive de configuration.

{% hint style="info" %}
Les icônes des activités sont disponibles sous forme de fichier :

{% file src="<https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2Fwfi8BE4teckdrUb8xRPe%2Ftwc-bloomreach-icons.zip?alt=media&token=78174804-50f2-4db1-8cd8-e5fd972651dc>" %}
{% endhint %}

Les exemples de charge utile utilisent la syntaxe des paramètres prédéfinis Bloomreach WebHook.

<details>

<summary><strong>Mettre à jour la Carte ("Push Update")</strong></summary>

URL du point de terminaison :

```
PATCH https://app.neostore.cloud/api/<<tenantId>>/passes/?id=[[ {name: 'passId', tooltip: 'Identifiant de la Carte', category: 'Pass target', isJsonParam: true} : string]]
```

Charge utile minimale (options uniquement) :

```json
{
  "options": {
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : string]]"
  }
}
```

Exemple de charge utile pour mettre à jour `additionalData`:

```json
{
  "additionalData": {
    "xx": "[[ {name: 'xx', tooltip: 'xx', category: 'Content', orderIndex: 10, isJsonParam: true} : string]]",
    "xy": "[[ {name: 'xy', tooltip: 'xy', category: 'Content', orderIndex: 11, isJsonParam: true} : string]]"
  },
  "options": {
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : string]]"
  }
}
```

Exemple de charge utile pour modifier le modèle de la Carte (`passType`):

```json
{
  "passType": "newTemplate",
  "options": {
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : string]]"
  }
}
```

Référence API : [Référence API](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/develop/api-reference).

</details>

<details>

<summary><strong>Notifier</strong></summary>

URL du point de terminaison :

```
PUT https://app.neostore.cloud/api/<<tenantId>>/passes/notification?id=[[ {name: 'passId', tooltip: 'Identifiant de la Carte', category: 'Pass target', isJsonParam: true} : string]]
```

Exemple de charge utile (une seule langue) :

```json
{
  "content": "[[ {name: 'Notification Content', tooltip: 'Contenu de la notification', category: 'Content', orderIndex: 10, isJsonParam: true} : string]]",
  "options": {
    "updateData": [[ {name: 'Update data', tooltip: 'Mettre également à jour les données de la Carte lors de l’envoi de la notification', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : boolean | false]],
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : string]]"
  }
}
```

Exemple de charge utile (localisée) :

```json
{
  "localizedContent": {
    "en": "[[ {name: 'Notification Content (en)', tooltip: 'Contenu de la notification', category: 'Content', orderIndex: 10, isJsonParam: true} : string]]",
    "fr": "[[ {name: 'Notification Content (fr)', tooltip: 'Contenu de la notification', category: 'Content', orderIndex: 11, isJsonParam: true} : string]]"
  },
  "options": {
    "updateData": [[ {name: 'Update data', tooltip: 'Mettre également à jour les données de la Carte lors de l’envoi de la notification', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : boolean | false]],
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 20, isJsonParam: true} : string]]"
  }
}
```

Référence API : [Référence API](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/develop/api-reference).

</details>

<details>

<summary><strong>Appliquer un privilège</strong></summary>

URL du point de terminaison :

```
POST https://app.neostore.cloud/api/<<tenantId>>/passes/[[ {name: 'passId', tooltip: 'Identifiant de la Carte', category: 'Pass target', isJsonParam: true} : string]]/privileges
```

Exemple de charge utile (privilège non localisé) :

```json
{
  "type": "multiUse",
  "origin": {
    "generator": "bloomreach",
    "processId": "[[ {name: 'Process identifier', tooltip: 'Identifiant du scénario / de la campagne', category: 'Advanced configuration', orderIndex: 120, isJsonParam: true} : string]]"
  },
  "priority": [[ {name: 'Priority', tooltip: 'Des valeurs élevées signifient une priorité plus forte', category: 'Advanced configuration', orderIndex: 110, isJsonParam: true} : number]],
  "content": {
    "title": {
      "value": "[[ {name: 'Title', tooltip: 'Titre de ce privilège', category: 'Content', orderIndex: 10, isJsonParam: true} : string]]"
    },
    "description": {
      "value": "[[ {name: 'Description', tooltip: 'Description de ce privilège', category: 'Content', orderIndex: 20, isJsonParam: true} : string]]"
    }
  },
  "appearance": {
    "mainImageUrl": {
      "value": "[[ {name: 'Main Image', tooltip: 'URL de l’image principale', category: 'Content', orderIndex: 30, isJsonParam: true} : image]]"
    }
  },
  "options": {
    "correlationId": "[[ {name: 'Correlation Id', tooltip: 'Identifiant de regroupement pour associer plusieurs actions', category: 'Advanced configuration', orderIndex: 130, isJsonParam: true} : string]]"
  }
}
```

Référence API : [Référence API](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/develop/api-reference).

</details>

{% hint style="danger" %}
Les points de terminaison incluent `<tenantId>`. Remplacez-le par l’identifiant du tenant de The Wallet Crew.
{% endhint %}

Pour en savoir plus sur les activités : [Activités Bloomreach](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/connect/marketing-automation/bloomreach/bloomreach-activities).
{% endstep %}
{% endstepper %}

## Liste de contrôle de validation

Une exécution de validation minimale couvre généralement :

* Une Carte de test existe et son `passId` est disponible dans Bloomreach.
* Une activité Mettre à jour la Carte actualise le contenu visible sur la Carte.
* Une activité Notifier délivre un message.
* Une installation/désinstallation de test produit des événements Bloomreach.

Noms et propriétés des événements : [Événements](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/connect/marketing-automation/bloomreach/events).

## Bonnes pratiques

* **Commencer par le staging**: validez les activités et les événements dans un token de projet Bloomreach de test.
* **Déploiement progressif**: installez d’abord uniquement Notifier, puis ajoutez Appliquer un privilège.
* **Configuration multi-équipe**: l’IT configure les identifiants et les allowlists, le marketing installe les activités du scénario.

## FAQ

<details>

<summary><strong>Qui est généralement responsable de la configuration ?</strong></summary>

L’activation du connecteur et les identifiants sont généralement gérés par l’IT ou par un partenaire d’implémentation. L’installation des activités et l’utilisation des scénarios sont souvent gérées par le CRM ou les opérations marketing.

</details>

<details>

<summary><strong>Quel environnement doit être configuré en premier ?</strong></summary>

Un environnement de staging est généralement configuré en premier. Cela permet de valider les activités, les événements et les scripts avant la production.

</details>

<details>

<summary><strong>Quelles autorisations sont requises pour la clé API utilisée par Bloomreach ?</strong></summary>

Une clé avec `tenant.pass:write` l’autorisation est requise pour les activités qui mettent à jour les Cartes. Des autorisations supplémentaires peuvent être nécessaires selon l’ensemble des activités.

</details>
