> 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/ticketing/secutix/member-cards-secutix-contacts.md).

# Cartes membres (contacts Secutix)

Le connecteur Secutix ne se limite pas aux billets d’événement. Il peut aussi synchroniser **les contacts Secutix**. Cela débloque un flux « carte de membre dans Wallet ». La carte représente le contact et reste synchronisée.

## Ce que vous pouvez créer

Vous pouvez émettre une carte Wallet qui se comporte comme une carte d’adhésion :

* Une carte par membre (un contact Secutix).
* Code-barres / code QR pour l’identification sur site.
* Mises à jour automatiques lorsque les données du contact changent.
* Retour d’information facultatif sur l’installation/la désinstallation renvoyé à Secutix.

{% hint style="info" %}
Secutix reste la source de vérité pour le profil du membre. Wallet Crew émet et distribue la carte.
{% endhint %}

<details>

<summary>Cas d’usage réels</summary>

Modèles qui fonctionnent bien en production :

* **Renouvellement de l’adhésion sur site**: scanner un code QR, mettre à jour le contact, actualiser la carte.
* **Inscription en libre-service**: les membres s’inscrivent depuis une page d’atterrissage de campagne.
* **Inscription assistée par le personnel**: les équipes du front-office utilisent un formulaire au lieu de l’interface Secutix.
* **Collecte du consentement**: stocker les critères d’adhésion volontaire dans Secutix pendant l’inscription.
* **Messagerie segmentée**: utiliser l’état d’installation pour cibler uniquement les membres installés.

</details>

## Créer et mettre à jour des contacts à partir d’un formulaire d’inscription

Utiliser un Wallet Crew **formulaire d’inscription** pour :

* Créer un nouveau contact Secutix.
* Mettre à jour un contact Secutix existant.
* Livrer immédiatement la carte de membre à Apple Wallet / Google Wallet.

Cela fonctionne bien lorsque vous ne souhaitez pas exposer l’interface Secutix au personnel. Cela convient aussi aux flux d’inscription en libre-service.

### Point d’entrée par code QR

Affichez un code QR qui ouvre le formulaire d’inscription sur un téléphone. C’est idéal pour l’acquisition sur site. Pensez au foyer, au guichet de billetterie ou aux stands partenaires.

### Correspondance : compte Wallet Crew ↔ contact Secutix

Lorsque la synchronisation des contacts est activée, Wallet Crew associe **les champs du compte** à **les champs du contact Secutix**. Personnalisez la correspondance lorsque vous devez lire/écrire des critères Secutix spécifiques. C’est courant pour les consentements, les indicateurs de segmentation ou les champs hérités.

Ajoutez votre script de correspondance personnalisé dans la configuration Secutix **onglet Avancé** onglet.

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/integrations/secutix/settings" class="button secondary" data-icon="chevrons-right">Écran de configuration Secutix</a></p>

#### Hook avancé de correspondance des contacts

Enregistrez `extensions.secutix.contact.mapper`.

* `MapToSecutix(account, request)` s’exécute **avant** lors de l’appel à Secutix.
* `MapToNeostore(response, account)` s’exécute **après** la réponse de Secutix.

```javascript
/**
 * Applique une correspondance avancée des données de compte neostore vers une demande de contact Secutix.
 * La correspondance standard est déjà appliquée à l’objet request avant l’appel de cette fonction.
 *
 * @param {Object} account - Données provenant de neostore.
 * @param {Object} request - Demande envoyée à Secutix avec la correspondance par défaut déjà renseignée.
 */
function mapToSecutix(account, request){
  request.ExternalContactCriterionData = [{ CriterionIdCode : 'OPT_CO', Values : [account["consents_email"] ? 'true' : 'false'] }];
}

/**
 * Applique une correspondance avancée d’une réponse de contact Secutix vers un compte neostore.
 * La correspondance standard est déjà appliquée à l’objet account avant l’appel de cette fonction.
 *
 * @param {Object} response - Réponse reçue de Secutix.
 * @param {Object} account - Données envoyées à neostore avec la correspondance par défaut déjà renseignée.
 */
function mapToNeostore(response, account){
  response.ContactCriteria = response.ContactCriteria || [];
  account["consents_email"] = !!response.ContactCriteria.find(c => c.CriterionIdCode === 'OPT_CO' && c.Values != null && c.Values[0] === 'true');
}

export default function(context) {
  context.register('extensions.secutix.contact.mapper', {
    MapToSecutix : mapToSecutix,
    MapToNeostore: mapToNeostore
  });
}
```

#### Mise à jour de l’état d’installation sur le contact

Ce hook vous permet de conserver les signaux d’installation/désinstallation de la carte dans les critères de contact Secutix. Utilisez-le pour piloter la segmentation ou les rapports opérationnels dans Secutix.

Implémentez `extensions.secutix.contact.passUpdater`:

```javascript
/**
 * Déclenché lorsque l’état d’installation d’une carte de membre change.
 *
 * @param {Object} request - Demande Secutix SaveIndividualContactRequest.
 * @param {boolean} isInstalled - `true` si la carte est installée, sinon `false`.
 * @param {number} device - Appareil sur lequel l’état d’installation a changé (0 = Apple, 2 = Google).
 * @returns {Promise<void>} Aucune valeur de retour ; modifie la requête sur place.
 */
async function onPassInstallationStatusChanged(request, isInstalled, device){
  request.ExternalContactCriterionData = [
    {
      CriterionIdCode : 'W_' + (device == 0 ? "APPLE" : "GOOGLE"),
      Values : [isInstalled ? 'Installé' : 'Désinstallé']
    }
  ];
}

export default function(context) {
  context.register('extensions.secutix.contact.passUpdater', {
    OnPassInstallationStatusChanged: onPassInstallationStatusChanged
  });
}
```


---

# 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/ticketing/secutix/member-cards-secutix-contacts.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.
