# Synchroniser le statut d’installation des cartes avec votre CRM

## Synchroniser le statut d'installation de la Carte avec votre CRM

Suivre si une Carte est installée dans **Apple Wallet** ou **Google Wallet**. Puis synchronisez ce signal vers votre CRM, CDP ou outils marketing.

### Ce que signifie « statut d'installation »

Le statut d'installation est un signal de cycle de vie émis lorsqu'un utilisateur ajoute ou supprime une Carte. Il couvre quatre états.

Elle peut être installée sur Apple. Elle peut être installée sur Google. Elle peut être désinstallée d'Apple. Elle peut être désinstallée de Google.

{% hint style="info" %}
Assurez-vous que chaque Carte inclut un identifiant externe stable (par exemple `customerId` ou `email`). Vous l'utiliserez pour rapprocher les événements avec les enregistrements dans votre CRM.
{% endhint %}

### Choisir la bonne méthode de synchronisation

Si vous souhaitez des mises à jour en temps réel, utilisez **webhooks** ou un **connecteur personnalisé**.

Si vous préférez des traitements par lot ou des reconstitutions, utilisez le **Pass API**.

Si vous avez principalement besoin de comptes et de tendances, utilisez **API Insights**.

### Décidez ce que vous voulez synchroniser

Commencez par choisir la « vérité » que vous souhaitez dans votre CRM. La plupart des équipes stockent à la fois un statut simple et quelques horodatages.

Vous voulez généralement un champ global, plus des champs par Wallet. Cela vous permet de segmenter sans perdre le détail.

Champs CRM courants :

* `walletStatus`: `none`, `apple`, `google`, `both`
* `appleWalletInstalledAt`: horodatage, optionnel
* `googleWalletInstalledAt`: horodatage, optionnel
* `walletLastChangedAt`: horodatage
* `walletLastEvent`: installé ou désinstallé

{% hint style="warning" %}
Traitez les événements comme **livraison au moins une fois**. Attendez-vous à des doublons et à des livraisons hors ordre.
{% endhint %}

### Rapprocher les événements avec les enregistrements CRM

Votre synchronisation a besoin d'une clé de jointure. Utilisez un identifiant externe stable stocké sur la Carte.

De bons identifiants sont `customerId`, `accountId`, ou un e-mail normalisé. Évitez les identifiants qui peuvent changer fréquemment.

Quand un événement arrive, rattachez-le à un enregistrement CRM. Mettez ensuite à jour les indicateurs par Wallet et votre statut global.

### Comprendre les cas limites

L'installation est spécifique au Wallet. Un même client peut installer sur Apple et Google.

La désinstallation reste aussi spécifique au Wallet. Une désinstallation sur Apple n'implique pas une désinstallation sur Google.

Certains clients réinstallent rapidement. Utilisez les horodatages pour éviter les « fluctuations » dans votre CRM.

### Option 1 — Webhooks (temps réel, effort minimal)

Les webhooks poussent les événements vers votre point de terminaison au fur et à mesure. Abonnez-vous à `Pass:Installed` et `Pass:Uninstalled`.

Étape suivante : configurez votre endpoint de webhook et validez les signatures.

Voir [Écouter l'événement The Wallet Crew via webhook](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/develop/guides/webhook).

### Option 2 — Connecteur personnalisé (temps réel, payload personnalisé)

Utilisez un connecteur personnalisé lorsque la charge utile webhook par défaut n'est pas suffisante.

C'est le bon choix pour des formats de payload personnalisés. C'est aussi utile pour une authentification personnalisée (clé API, OAuth) ou une logique supplémentaire.

La logique typique inclut le routage, l'enrichissement, le throttling et les tentatives de nouvelle livraison.

Étape suivante : implémenter `OnPassInstalled` et `OnPassUninstalled`.

Voir [Connecteur personnalisé pour appeler l'API lorsque le statut d'installation de la Carte change](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/connect/custom-connector/installation-changed-extensibility).

### Option 3 — Pass API (synchronisation par lot + reconstitutions)

Utilisez la Pass API lorsque vous souhaitez synchroniser périodiquement l'état d'installation.

C'est aussi le meilleur choix pour reconstruire l'état de votre CRM après une indisponibilité.

Commencez par la documentation Swagger. Recherchez les endpoints de liste de pass pouvant être filtrés par statut d'installation.

Swagger : <https://admin.thewalletcrew.io/api/swagger/index.html>

#### Schéma de reconstitution qui fonctionne bien

Exécutez un job planifié qui recompute la vérité CRM à partir de la Pass API. La plupart des équipes l'exécutent quotidiennement.

Utilisez vos événements en temps réel pour la rapidité. Utilisez la reconstitution pour la cohérence.

Si votre CRM et les pass ne sont pas d'accord, faites confiance à la Pass API. Puis corrigez l'enregistrement CRM et poursuivez.

### Option 4 — Insights API (analytics / BI)

Utilisez Insights lorsque vous voulez des comptes et des tendances, pas une synchronisation par client. Interrogez des événements comme `Pass:Installed` et `Pass:Uninstalled` avec KQL.

Étape suivante : configurez l'authentification et exécutez une première requête.

Voir [API Insights](https://app.gitbook.com/s/WLc8AHXW4tdrAXUBfrYF/develop/guides/insights-api).

### Un flux de travail pragmatique de bout en bout

{% stepper %}
{% step %}

### 1) Ajoutez un identifiant stable à chaque Carte

Choisissez un seul identifiant. Utilisez le même champ sur chaque Carte.
{% endstep %}

{% step %}

### 2) Envoyez des événements en temps réel vers votre stack

Utilisez des webhooks pour la plupart des configurations. Utilisez un connecteur personnalisé si vous avez besoin d'une charge utile différente.
{% endstep %}

{% step %}

### 3) Mettez à jour les champs et les segments du CRM

Mettez à jour les indicateurs et les horodatages par Wallet. Recalculez le global `walletStatus`.
{% endstep %}

{% step %}

### 4) Reconstituez régulièrement

Planifiez un job Pass API. Utilisez-le pour réparer les dérives et couvrir les indisponibilités.
{% endstep %}

{% step %}

### 5) Suivez l'adoption avec Insights

Utilisez Insights pour les tendances et la surveillance. Vérifiez que les installations et désinstallations correspondent aux attentes.
{% endstep %}
{% endstepper %}

### Dépannage

Si vous ne voyez pas d'événements, commencez par la validation des signatures. Puis vérifiez la disponibilité du endpoint et la gestion des nouvelles tentatives.

Si vous voyez des doublons, ajoutez de l'idempotence dans votre chemin d'écriture CRM. Utilisez l'horodatage le plus récent comme brise-égalité.

Si vous ne pouvez pas associer les événements aux clients, il vous manque un identifiant. Ajoutez-le aux données de la Carte, puis reconstituez pour réparer l'historique.
