> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/connectors/fr/marketing-automation/adobe-campaign.md).

# Adobe Campaign

## Adobe Campaign (Classic)

Les workflows Adobe Campaign peuvent déclencher des appels à l’API The Wallet Crew. Cela permet de mettre à jour automatiquement des cartes pendant une campagne. Les mises à jour typiques incluent l’ajout d’une offre, la mise à jour des données de fidélité ou l’écriture d’un message de campagne dans `additionalData`.

<details>

<summary>Exemples concrets</summary>

* Une marque de distribution ajoute un message personnalisé à une carte du segment VIP, juste après l’envoi.
* Un organisateur de spectacle met à jour un billet Wallet avec un changement de porte de dernière minute.
* Un fournisseur de billetterie écrit un `campaignId` dans `additionalData` pour mesurer les conversions Wallet.

</details>

### Prérequis

Un accès à une clé API autorisée à mettre à jour des cartes est requis. Un identifiant stable doit également exister dans Adobe Campaign et correspondre à l’identifiant utilisé pour rechercher des cartes dans The Wallet Crew (par exemple, un ID client).

{% hint style="info" %}
L’hôte et le chemin de l’API dépendent de l’environnement (QA vs production) et de la configuration du projet The Wallet Crew. Les valeurs d’URL d’exemple doivent être remplacées par celles fournies par The Wallet Crew.
{% endhint %}

### Vue d’ensemble de la requête API

L’API de mise à jour des cartes The Wallet Crew est appelée avec `PATCH`. L’exemple ci-dessous filtre les cartes à l’aide d’un identifiant spécifique au projet (`id.y2.customerId`) et met à jour `additionalData`.

{% code title="Exemple de requête PATCH" %}

```bash
curl -X 'PATCH' \
  'https://app-qa.neostore.cloud/api/xxxxx/passes?id.y2.customerId=00100000207298' \
  -H 'accept: */*' \
  -H 'X-API-KEY: xyz' \
  -H 'Content-Type: application/json' \
  -d '{
        "additionalData": {
          "adobe_message": "Offre exclusive : venez nous rendre visite."
        }
      }'
```

{% endcode %}

### Conception d’un workflow Adobe Campaign

La configuration la plus sûre sépare la sélection de l’exécution. La sélection définit *qui* doivent être mises à jour. L’exécution définit *quoi* doit être écrite sur la carte.

{% stepper %}
{% step %}

#### Sélectionner l’audience

Une activité de requête sélectionne la population cible. La transition sortante doit contenir l’identifiant qui correspond à la clé de recherche des cartes The Wallet Crew (exemple : `customerId`).
{% endstep %}

{% step %}

#### Parcourir les enregistrements

Un modèle de workflow peut traiter un enregistrement à la fois, ou de petits lots, selon le volume attendu. Cela réduit l’impact en cas d’erreurs API.
{% endstep %}

{% step %}

#### Appeler l’API The Wallet Crew

La `PATCH /passes` le point de terminaison est appelé pour chaque identifiant. La charge utile doit rester minimale et n’écrire que les champs qui doivent changer (exemple : `additionalData.adobe_message`).
{% endstep %}

{% step %}

#### Journaliser et gérer les erreurs

Les journaux du workflow doivent stocker le code de statut HTTP et le corps de la réponse. Un chemin d’erreur explicite pour les réponses non 2xx est recommandé (nouvelle tentative, mise en quarantaine ou révision manuelle), selon la criticité de la campagne.
{% endstep %}

{% step %}

#### Valider les résultats

La validation commence généralement par un petit segment de test. Les champs attendus peuvent ensuite être confirmés sur un échantillon de cartes dans The Wallet Crew.
{% endstep %}
{% endstepper %}

### Exemple d’implémentation (activité JavaScript)

Cette section fournit un exemple pour Adobe Campaign Classic **activité JavaScript** qui met à jour des cartes dans The Wallet Crew pour une population sélectionnée.

{% hint style="warning" %}
À confirmer : les API exactes disponibles dans les activités JavaScript varient selon la version d’Adobe Campaign et le modèle d’hébergement. L’extrait ci-dessous est un exemple d’implémentation et peut nécessiter une adaptation pour l’instance (méthode de requête, client HTTP, stockage des identifiants).
{% endhint %}

{% code title="Exemple d’activité JavaScript (illustratif)" %}

```javascript
// Configuration de l’API The Wallet Crew
var apiUrl = "https://app-qa.neostore.cloud/api/xxxxx/passes";
var apiKey = "xyz"; // Les clés API doivent être stockées comme des secrets, et non codées en dur.

// Récupérer la liste des clients depuis le contexte du workflow (adapter au modèle de données de l’instance)
var query = xtk.queryDef.create();
query.select("customerId")        // Champ d’identifiant utilisé pour rechercher des cartes
     .from("customerTable");      // Table source
var customers = query.executeQuery();

for (var i = 0; i < customers.length; i++) {
  var customerId = customers[i].customerId;

  // Construire l’URL du point de terminaison API
  var url = apiUrl + "?id.y2.customerId=" + encodeURIComponent(customerId);

  // Définir la charge utile pour la requête API
  var payload = {
    additionalData: {
      adobe_message: "Offre exclusive : venez nous rendre visite."
    }
  };

  try {
    // Exécuter l’appel API (adapter le client HTTP aux capacités de l’instance)
    var response = http.request({
      method: "PATCH",
      url: url,
      headers: {
        "X-API-KEY": apiKey,
        "Content-Type": "application/json",
        "accept": "*/*"
      },
      body: JSON.stringify(payload)
    });

    logInfo("ID client " + customerId + ": mise à jour OK. Statut : " + response.statusCode);
  } catch (error) {
    logError("ID client " + customerId + ": échec de la mise à jour. Erreur : " + error.message);
  }
}
```

{% endcode %}

### Bonnes pratiques

Les tests dans un environnement hors production réduisent les risques. La gestion des erreurs doit être explicite, car les échecs API peuvent être temporaires. Si la limitation de débit est activée sur le projet, le throttling ou le découpage en lots aide à éviter les réponses 429. Les clés API doivent être traitées comme des secrets et stockées à l’aide des options sécurisées d’Adobe Campaign, lorsque celles-ci sont disponibles.

### FAQ

<details>

<summary>Quel identifiant doit être utilisé dans le filtre API ?</summary>

L’identifiant doit correspondre à ce qui a été configuré dans le projet The Wallet Crew pour la recherche de cartes. Les identifiants courants incluent un ID client, un ID de fidélité ou un ID utilisateur externe. Le nom du paramètre de requête (exemple : `id.y2.customerId`) dépend du modèle de données du projet.

</details>

<details>

<summary>Comment confirmer que les cartes ont été mises à jour avec succès ?</summary>

La confirmation nécessite généralement à la fois les journaux du workflow et des vérifications ponctuelles dans The Wallet Crew. Les journaux du workflow doivent conserver l’identifiant de la requête et la réponse HTTP. Les vérifications ponctuelles doivent valider les champs attendus (exemple : `additionalData`) sur un petit échantillon de cartes.

</details>

<details>

<summary>Comment éviter les limites de débit lors de la mise à jour de grandes audiences ?</summary>

Le découpage en lots et le throttling réduisent le risque d’atteindre les limites de l’API. Une approche courante consiste à traiter les enregistrements par petits groupes, à ajouter des pauses entre les lots et à réessayer avec temporisation exponentielle sur les réponses 429/5xx.

</details>

<details>

<summary>Où la clé API doit-elle être stockée dans Adobe Campaign ?</summary>

Les clés API doivent être gérées comme des secrets. Privilégiez les mécanismes d’Adobe Campaign prévus pour le stockage des identifiants, plutôt que de coder les valeurs en dur dans les activités ou les scripts. L’accès doit être limité au strict minimum d’opérateurs et de workflows.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.thewalletcrew.io/connectors/fr/marketing-automation/adobe-campaign.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
