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

Mettre à jour les cartes Apple Wallet et Google Wallet gérées dans The Wallet Crew à partir des workflows Adobe Campaign Classic en appelant l’API The Wallet Crew.

{% hint style="info" %}
**Quelle page Adobe Campaign me faut-il ?**

* **Cette page**: les workflows Adobe Campaign Classic appellent l’API The Wallet Crew pour mettre à jour des Cartes pendant une campagne. Adobe Campaign appelle The Wallet Crew.
* [Messagerie transactionnelle Adobe Campaign](/connectors/fr/email-provider/adobe-marketing-cloud/adobe-campaign-transactional-messaging.md) (Fournisseur d’e-mails) : The Wallet Crew appelle Adobe Campaign pour envoyer ses propres e-mails transactionnels, comme la création d’un compte ou un lien de téléchargement.
  {% endhint %}

Les workflows Adobe Campaign Classic 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><strong>Exemples concrets</strong></summary>

* Une marque de distribution ajoute un message personnalisé à une Carte de 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

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

{% hint style="info" %}
L’hôte de l’API dépend de l’environnement. Voir [Environnements et URL](/connectors/fr/marketing-automation.md#environments-and-urls). Remplacez les valeurs d’exemple par celles du tenant.
{% endhint %}

## Aperçu 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 des Cartes avec un identifiant externe (`id.<system>.<name>`, ici `id.crm.customerId`) et met à jour `additionalData`. Le paramètre de requête est la clé d’identifiant précédée de `id.`: la clé elle-même (`<system>.<name>`) est celle configurée sur le tenant. Pour envoyer une notification Wallet, utilisez l’appel de notification (`PUT`) décrit dans [les activités Bloomreach](/connectors/fr/marketing-automation/bloomreach/bloomreach-activities.md).

La clé API nécessite la `tenant.Carte:write` d’autorisation. Le filtre est soit `id=<passId>` seul, soit un ou plusieurs identifiants externes précédés de `id.`; combiner `id` avec d’autres identifiants est refusé (400). Réponses : `202` (mise à jour en file d’attente), `200` (appliquée dans la requête lorsque `options.bypassQueue` est `true`), `400`, `404` (aucune Carte ne correspond), `409` (mise à jour synchrone uniquement : la Carte a changé simultanément, réessayez).

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

```bash
curl -X 'PATCH' \
  'https://<host>/api/<tenantId>/passes?id.crm.customerId=00100000207298' \
  -H 'accept: */*' \
  -H 'X-API-KEY: <your API key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "additionalData": {
          "adobe_message": "Offre exclusive : venez nous rendre visite."
        }
      }'
```

{% endcode %}

## Conception des workflows Adobe Campaign

La configuration la plus sûre sépare la sélection de l’exécution. La sélection définit *qui* doit être mise à jour. L’exécution définit *quoi* doit être écrit dans 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 de Carte The Wallet Crew (exemple : `customerId`).
{% endstep %}

{% step %}

#### Itérer sur les enregistrements

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

{% step %}

#### Appeler l’API The Wallet Crew

Le `PATCH /passes` l’endpoint 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 d’état 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 revue 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)

{% hint style="warning" %}
À titre indicatif, non testé. Les API disponibles dans les activités JavaScript varient selon la version d’Adobe Campaign et le modèle d’hébergement. Adaptez l’extrait à l’instance (méthode de requête, client HTTP, stockage des identifiants).
{% endhint %}

L’exemple utilise les API JavaScript documentées d’Adobe Campaign Classic : `xtk.queryDef.create` avec une requête E4X pour lire la population ([méthodes SOAP en JavaScript](https://experienceleague.adobe.com/en/docs/campaign-classic/using/configuring-campaign-classic/api/soap-methods-in-javascript)), et `HttpClientRequest` pour appeler l’API The Wallet Crew ([HttpClientRequest](https://experienceleague.adobe.com/developer/campaign-api/api/m-HttpClientRequest-HttpClientRequest.html)). L’URL sortante peut devoir être autorisée dans la configuration de l’instance.

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

```javascript
// Configuration de l’API The Wallet Crew
var apiUrl = "https://<host>/api/<tenantId>/passes";
var apiKey = "<your API key>"; // stockez-la avec le mécanisme d’identifiants de votre instance

// Lire les identifiants de la population (adapter le schéma et le champ au modèle de données de l’instance)
var query = xtk.queryDef.create(
  <queryDef schema="nms:recipient" operation="select">
    <select>
      <node expr="@account"/>
    </select>
  </queryDef>
);
var res = query.ExecuteQuery();

for each (var recipient in res.recipient) {
  var customerId = String(recipient.@account);

  // Construire l’URL du point de terminaison de l’API
  var url = apiUrl + "?id.crm.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
    var http = new HttpClientRequest(url);
    http.method = "PATCH";
    http.header["X-API-KEY"] = apiKey;
    http.header["Content-Type"] = "application/json";
    http.body = JSON.stringify(payload);
    http.execute();

    logInfo("ID client " + customerId + " : statut " + http.response.code);
  } catch (error) {
    // logWarning maintient la boucle en cours ; logError arrêterait le workflow
    logWarning("ID client " + customerId + " : échec de la mise à jour. Erreur : " + error);
  }
}
```

{% endcode %}

## FAQ

<details>

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

Le regroupement par lots et l’échelonnement réduisent le risque d’atteindre les limites de l’API. Une approche courante consiste à traiter les enregistrements par petits groupes, à insérer des pauses entre les lots et à réessayer avec backoff sur les réponses 429/5xx.

</details>

<details>

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

Utilisez le mécanisme de stockage des identifiants de l’instance Adobe Campaign au lieu de coder en dur la clé dans les activités ou les scripts. Limitez l’accès à la clé aux opérateurs et aux workflows qui en ont besoin.

</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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
