Intégration des développeurs

7Stamp Webhooks

Disponible

Poussez chaque événement de fidélité de 7Stamp vers vos propres systèmes en temps réel. Pas d'interrogation et pas d'appels API programmés. Les événements arrivent sous la forme de requêtes HTTPS POST quelques secondes après leur apparition.

Utilisez des webhooks pour synchroniser votre CRM, ERP ou votre backend personnalisé avec ce qui se passe du côté de la fidélité: qui a rejoint, qui a reçu un tampon, qui a utilisé un bon d'achat, qui a déclenché un cadeau d'anniversaire et qui est devenu inactif. Ensuite, vos systèmes décident quoi faire de ces données.

Ce que vous pouvez faire avec les webhooks

Les webhooks sont le côté sortant de la pile d'intégration. Ils reflètent l'activité des clients et des récompenses dans les systèmes auxquels vous faites déjà confiance pour les ventes, le service, l'analyse et la messagerie.

Mettez en miroir l'historique de fidélité dans votre CRM

Chaque tampon, bon, anniversaire et déclencheur d'inactivité atterrit sur le dossier client dans votre CRM. Vous voyez la chronologie complète de la fidélité à côté des ventes, des appels et des billets sans vous connecter au 7Stamp.

Déclenchez votre propre pile de messagerie

Lorsqu'un client utilise un bon, envoyez un remerciement SMS depuis votre passerelle SMS existante. Lorsqu'un client atteint l'objectif, publiez une célébration dans Slack. Lorsqu'une personne devient inactive, acheminez le dossier vers votre responsable de compte.

Analyse puissante et rapprochement

Diffusez les événements dans votre outil BI, votre entrepôt ou votre pipeline de rapprochement. Faites correspondre les échanges de bons avec les reçus POS et calculez la fidélité ROI selon vos propres mesures.

Types d'événements de carte

SCAN — Une carte a reçu une action scan/stamp.
REWARD_EARNED — Une récompense a été gagnée sur la carte.
VOUCHER_ISSUED — Un bon a été émis.
VOUCHER_REDEEMED — Un bon a été utilisé.
LOTTERY_WIN — Une loterie a donné lieu à un gain.
DELIVERY_INSERT — Un flux d'insertion de livraison a été enregistré.
CARD_JOINED — Un client a rejoint une carte.
CARD_CAMPAIGN — Un événement de campagne de cartes s'est produit.
BIRTHDAY_GREETING — Un événement de vœux d'anniversaire s'est produit.
ADMIN_VOUCHER_ISSUE — Un administrateur a émis un bon.
CARD_ADDED_TO_WALLET — Un client a ajouté la carte à son portefeuille.
CARD_REMOVED_FROM_WALLET — Un client a retiré la carte de son portefeuille.

Créer un récepteur webhook sécurisé

Accuser réception après une manipulation durable

Votre point de terminaison doit accepter HTTPS POST, validez la forme de la requête, conservez ou mettez l'événement en file d'attente, puis renvoyez une réponse 2xx réussie. Ne passez pas d'appel lent CRM ou de messagerie avant l'accusé de réception s'il peut être mis en file d'attente en toute sécurité.

Corréler avec External ID

Chaque événement associé peut porter le External ID et le External Source en option que vous avez utilisés lors de la création ou de la numérisation de la carte. Utilisez cette paire pour mettre à jour votre propre CRM, POS ou votre enregistrement de commande sans deviner à partir d'un nom ou d'un e-mail.

Make livraison idempotente

Stockez une clé de traitement durable ou une empreinte digitale d'événement avant de déclencher des effets secondaires. If your receiver sees the same delivery again, it should not add a duplicate CRM note, voucher, or message. Traitez le point de terminaison URL comme un secret.

Exemple de forme de charge utile d'événement

Copiez ceci dans votre étape d'automatisation json
{
  "entity": "card_event",
  "action": "created",
  "entity_id": 707,
  "event_id": "8f05e58decec48e09d328f0edebbacf6",
  "profile_id": 2,
  "profile_name": "Your Business",
  "profile_lang": "en",
  "data": {
    "event_type": "SCAN",
    "scanned_at": "2026-10-01T09:19:24.179424",
    "user_card_id": 10,
    "card_template_id": 14,
    "card_template_name": "Collect your stamps!",
    "stamps_added": 3,
    "stamps_before": 1,
    "stamps_after": 4,
    "amount": null,
    "external_order_id": "ORDER-1001",
    "workplace": { "id": 4, "name": "Bar Counter" },
    "device_type": null,
    "external_id": "odoo_contact_8821",
    "external_source": "odoo",
    "issued_vouchers": [
      {
        "id": 174,
        "unique_code": "100425813507",
        "stamp_number": 4,
        "issued_at": "2026-10-01T09:19:24.191836",
        "expires_at": "2027-01-01T23:59:59",
        "status": "ACTIVE",
        "voucher_template_id": 58,
        "voucher_description": "Free coffee",
        "voucher_image_url": "https://..."
      }
    ],
    "achieved_goals": [],
    "user": {
      "id": 2,
      "name": "Anna",
      "full_name": "Anna Smith",
      "email": "anna@example.com",
      "telegram_chat_id": null,
      "telegram_username": null,
      "whatsapp_phone": null,
      "birth_date": null
    }
  }
}

Configurer et tester un webhook

01

Créez un point de terminaison HTTPS dans votre backend, une couche d'intégration CRM, un webhook Make ou Zapier Catch Hook. Make assurez-vous de contrôler la destination avant de copier son URL.

02

Dans 7Stamp Admin, ouvrez Stamp Cards → API & Integrations → Webhooks.

03

Ajoutez l'URL du point de terminaison. Le webhook reçoit tous les événements de carte du profil : filtrez donc par data.event_type dans votre récepteur.

04

Enregistrez les paramètres du profil, puis déclenchez une analyse de test jetable ou une action de carte pour produire un événement.

05

Inspectez la charge utile reçue. Faites correspondre External ID et External Source à l'enregistrement attendu et confirmez que le récepteur renvoie une réponse réussie.

06

Activez CRM, le bon ou les effets secondaires de messagerie uniquement après avoir géré et surveillé les échecs en toute sécurité.

Options sans code: Make et Zapier

Dans Make, utilisez Webhooks → Custom webhook pour générer un URL de réception et collez-le dans le 7Stamp profil. Dans Zapier, utilisez Webhooks by Zapier → Catch Hook dans le même but. Le profil 7Stamp est propriétaire de l'abonnement car le API actuel n'expose pas les points de terminaison d'enregistrement automatique des webhooks.

Contrat de sécurité et de livraison

Utilisez la section Webhooks de la référence OpenAPI publique comme source du schéma actuel de la charge utile. Le corps est une enveloppe : profile_id et profile_name désignent le profil 7Stamp, event_id identifie l'événement, et l'événement de carte lui-même se trouve dans data (pour une URL Make ou Zapier, la clé est card_event). Chaque envoi est signé dans un seul en-tête, X-Webhook-Signature: t=…,s=…. Calculez un HMAC-SHA256 avec votre secret de webhook sur t suivi du corps brut de la requête, encodez-le en hexadécimal et comparez-le à s ; le secret se trouve sur la page du webhook dans 7Stamp Admin. Utilisez X-Webhook-Event-Id pour écarter les envois répétés : une nouvelle tentative est signée à nouveau avec un nouveau t. Vous pouvez aussi protéger le point de terminaison avec Basic Auth. Exigez HTTPS et gardez l'URL du récepteur hors des journaux publics.

Questions fréquemment posées

Puis-je sélectionner uniquement certains événements de webhook?

Non. Un webhook 7Stamp reçoit tous les événements de carte du profil. Filtrez par data.event_type dans votre récepteur ; dans Make et Zapier, l'événement arrive sous card_event : filtrez donc par card_event.event_type.

Comment connecter des webhooks à Make ou Zapier?

Créez le webhook de réception dans Make ou un Catch Hook dans Zapier, copiez le URL généré, puis collez-le dans les paramètres du webhook du profil 7Stamp et envoyez un événement de test.

Comment dois-je associer un événement à mon contact CRM?

Utilisez data.external_id et, s'il est présent, data.external_source : ils sont renvoyés dans chaque webhook pour les cartes que vous avez émises via l'API avec votre propre ID. Un client qui a pris la carte lui-même n'a pas d'External ID : associez-le donc par data.user.email. Une adresse Apple « Hide My Email » est une adresse relais, et non celle de votre CRM.

Comment vérifier qu'un webhook provient bien de 7Stamp ?

Séparez l'en-tête X-Webhook-Signature en t et s, calculez un HMAC-SHA256 avec le secret du webhook fourni par 7Stamp Admin sur t suivi du corps brut de la requête, encodez-le en hexadécimal et comparez-le à s. Prenez t exactement tel qu'il a été envoyé et le corps sous forme des octets bruts reçus, avant toute analyse JSON. Écartez un envoi dont vous avez déjà traité le X-Webhook-Event-Id : une nouvelle tentative est signée à nouveau avec un nouveau t.

Étape suivante

Prêt à envoyer le premier événement de carte?

Créez un récepteur, collez son HTTPS URL dans le profil, exécutez une analyse jetable et validez le External ID correspondant avant d'activer l'automatisation en aval.