Passer au contenu principal

Webhooks

Recevez un message dans votre propre système lorsque des clients s’inscrivent ou cumulent des points.

Écrit par Berke Atik

Les Webhooks permettent à Loyaltify de prévenir immédiatement vos autres systèmes lorsqu’il se passe quelque chose, par exemple quand un nouveau client s’inscrit ou qu’un client gagne des points. Loyaltify envoie un court message à l’adresse de votre choix, et votre système peut y réagir.

Ils sont utiles pour tenir un CRM à jour, déclencher des e-mails dans vos propres outils ou créer des rapports. Ce guide explique comment en configurer un, ce que contient chaque message et comment vérifier que les messages arrivent bien.

💡 Bon à savoir : Cette fonctionnalité fait partie de la formule Advanced. Elle cesse de fonctionner si vous passez à une formule inférieure.

Configurer un webhook

Étape 1 : ouvrez la configuration du webhook

Allez dans Intégrations et cliquez sur Connecter sur la carte Webhook.


​

Étape 2 : renseignez les informations

Dans la fenêtre Configuration du webhook :

  • URL du point de terminaison : l’adresse https de votre système qui doit recevoir les messages.

  • Autorisation : choisissez Bearer et saisissez un jeton de votre choix, ou choisissez Aucune.

  • Événements : cochez ceux que vous souhaitez. Vous devez en sélectionner au moins un.

Enregistrez ensuite, et votre webhook est actif.

💡 Astuce : Choisissez Bearer et un jeton long et aléatoire. Chaque message inclut alors l’en-tête Authorization: Bearer suivi de votre jeton, afin que votre système puisse vérifier que le message provient bien de Loyaltify. Ce jeton est distinct de votre clé API.

Le modifier plus tard

Vous pouvez modifier le point de terminaison, l’autorisation et les événements à tout moment sur la page Configuration du webhook. Cliquez sur Enregistrer lorsque vous avez terminé.


Les événements disponibles

  • Client créé (customer.created) : un nouveau client s’inscrit.

  • Client mis à jour (customer.updated) : les informations d’un client sont modifiées.

  • Transaction créée (transaction.created) : un client reçoit son solde de départ, cumule, utilise une récompense, reçoit une récompense de parrainage ou voit ses points expirer.

  • Tentative d'inscription d'un client existant (customer.signup_attempt) : une personne qui a déjà la carte remplit à nouveau votre formulaire. Ses informations enregistrées ne sont pas modifiées par ce nouvel envoi.


Contenu de chaque message

Loyaltify envoie chaque message au format JSON, avec les en-têtes Content-Type: application/json et User-Agent: Loyaltify-Webhook/1.0. Chaque message comporte trois parties :

  • event : l’événement dont il s’agit, par exemple customer.created.

  • timestamp : le moment où il s’est produit, en UTC (par exemple 2026-10-16T16:38:46Z).

  • data : les détails, qui dépendent de l’événement.

Les nombres comme point et balance_after sont envoyés sous forme de texte, par exemple "1.0", et les valeurs vides valent null.

Client créé et Client mis à jour

  • name, email, phone et birthday

  • uuid : l’identifiant du client (le même que dans le QR code de sa carte)

  • point : son solde (pour Client créé, le solde de départ)

  • custom_fields : les réponses à vos questions personnalisées, y compris les valeurs masquées du lien du formulaire, comme click_id

  • is_marketing_opted_in : s’il a donné son consentement marketing

  • created_at, updated_at et store_uuid

Client mis à jour contient les mêmes champs, avec les nouvelles valeurs. Voici un exemple de Client créé :

{
"data": {
"name": "Alex",
"uuid": "7f3e9a21",
"email": "[email protected]",
"phone": null,
"point": "1.0",
"birthday": null,
"created_at": "2026-10-16T16:38:41.704Z",
"store_uuid": "a1b2c3d4",
"updated_at": "2026-10-16T16:38:46.790Z",
"custom_fields": {},
"is_marketing_opted_in": true
},
"event": "customer.created",
"timestamp": "2026-10-16T16:38:46Z"
}

Transaction créée

  • kind : le type de transaction, par exemple initial (le solde de départ à l’inscription), manual, redeem, expired, referee ou referrer

  • point et amount : les valeurs de la transaction. En cas d’expiration, point est négatif.

  • balance_after : le solde du client après la transaction

  • campaign : pour l’utilisation d’une récompense, la campagne concernée

  • user : le membre de l’équipe qui a scanné (nom, identifiant et e-mail), ou null pour les événements automatiques comme les expirations

  • customer_uuid, customer_email et customer_phone

  • referred_by_uuid : pour les récompenses de parrainage, la personne qui a parrainé le client

  • uuid : l’identifiant propre de la transaction

  • created_at et store_uuid

Voici un exemple d’un membre de l’équipe qui ajoute un point :

{
"data": {
"kind": "manual",
"user": {
"name": "Sam Taylor",
"uuid": "0b8e7d4c-1f2a-4c3b-9d5e-6a7b8c9d0e1f",
"email": "[email protected]"
},
"uuid": "5c9d2e7a-3b4f-4a1c-8e6d-2f7a9b0c1d3e",
"point": "1.0",
"amount": null,
"campaign": null,
"created_at": "2026-10-16T16:45:10.375Z",
"store_uuid": "a1b2c3d4",
"balance_after": "2.0",
"customer_uuid": "7f3e9a21",
"customer_email": "[email protected]",
"customer_phone": null,
"referred_by_uuid": null
},
"event": "transaction.created",
"timestamp": "2026-10-16T16:45:10Z"
}

Une récompense de parrainage envoie deux transactions au même moment : referee pour le nouveau client, avec referred_by_uuid renseigné avec l’identifiant du parrain, et referrer pour le client qui l’a parrainé.

Tentative d'inscription d'un client existant

  • customer : le client existant concerné, avec son uuid et ses custom_fields

  • matched_on : la façon dont il a été reconnu, par exemple par e-mail

  • submission : ce qu’il vient de saisir dans le formulaire

  • form : le formulaire utilisé

Pour voir un message complet, ouvrez n’importe quel envoi dans Événements récents (voir ci-dessous).


Vérifier vos envois

La page Configuration du webhook affiche vos Événements récents avec leur statut, leur code de réponse, le nombre de tentatives et la date. Cliquez sur l’icône œil pour voir exactement ce qui a été envoyé, les en-têtes et la réponse de votre système.

Les messages n’arrivent pas ?

  • Vérifiez que votre URL du point de terminaison est une adresse https valide. Les navigateurs y insèrent parfois automatiquement une adresse e-mail.

  • Vérifiez que l’événement est coché sur la page Configuration du webhook.

  • Vérifiez que vous avez la formule Advanced.

  • Consultez l’événement dans Événements récents. Si le code de réponse indique une erreur, votre système a bien reçu le message mais l’a refusé, et l’icône œil affiche sa réponse.

Toujours bloqué ? Contactez l’assistance via le chat en direct.


Bon à savoir

  • Les messages peuvent arriver dans le désordre, utilisez donc l’horodatage si l’ordre compte.

  • Prévoyez que votre système puisse recevoir deux fois le même événement, au cas où. Pour les transactions, l’uuid dans data est unique pour chacune.

  • Vous travaillez avec l’API ? Les webhooks envoient l’identifiant court du client. Certaines requêtes de l’API nécessitent plutôt le numéro interne du client, et la documentation de l’API explique comment retrouver l’un à partir de l’autre.

  • Vous utilisez Omnisend ? Le guide d’Omnisend utilise un webhook pour se connecter à Loyaltify. Consultez la Présentation des intégrations pour obtenir le lien.
    ​


Besoin d’aide ?

Nous sommes là pour vous aider !

Si vous avez des questions sur les webhooks, contactez-nous via le chat en direct dans Loyaltify, ou utilisez le bouton de chat en bas à droite de cette page. Notre équipe se fera un plaisir de vous aider.

Avez-vous trouvé la réponse à votre question ?