Passer au contenu principal

Comment créer un webhook entre WAX et Klaviyo

Transmettez automatiquement vos données de profil Klaviyo vers WAX pour déclencher vos flows

Pourquoi créer un webhook ?

Klaviyo est votre CRM central, c'est là que se trouvent toutes les données de vos contacts : historique d'achat, comportement sur le site, attributs personnalisés, et bien plus encore.

Certaines de ces données sont indispensables pour personnaliser et déclencher vos flows WAX. Le webhook vous permet de les transmettre automatiquement à WAX au bon moment, sans aucune action manuelle.

Deux types de données peuvent être transmis :

  1. Données fixes de profil → des informations stockées à l'avance sur la fiche contact Klaviyo (prénom, email, téléphone, attributs personnalisés). Elles existent avant l'événement et restent les mêmes tant que vous ne les modifiez pas manuellement.

  2. Données dynamiques liées à un événement → des informations générées au moment de l'événement, à partir de l'action précise de l'utilisateur (panier abandonné, produit consulté, etc.). Elles n'existent pas à l'avance : elles sont produites au moment où ça se passe, et sont propres à cette action de cet utilisateur.

Avant de commencer

Pour que le webhook fonctionne, l'intégration entre WAX et Klaviyo doit être activée au préalable.

Si votre connexion est réussie, vous devez voir cette affichage sur cette page :

Si ce n'est pas encore fait, rendez-vous dans Settings → Intégrations → Klaviyo sur WAX et suivez les étapes de connexion.


Étape 1 : Créer un flow

Créez votre flow WAX et sélectionnez Klaviyo comme source de déclenchement. C'est cette étape qui génère les informations du Webhook que vous ajouterez dans Klaviyo par la suite.

Dans WAX, rendez-vous dans AutomationsCréez un flow from scratch ou Sélectionnez un template en cliquant sur "Create" en haut à droite.


Étape 2 : Créer un Trigger Klaviyo personnalisé

Sur le nœud Trigger, cliquez pour ouvrir le panneau de configuration.

Dans la section Source, sélectionnez Klaviyo.

WAX génère alors automatiquement 3 informations à reporter dans Klaviyo :

  • Destination URL : L'adresse du endpoint WAX à coller dans votre webhook Klaviyo (ex : https://api.getwax.io/v1/hooks/...)

  • Headers : La clé d'en-tête à renseigner dans Klaviyo : Authorization

  • Bearer Token : Le token secret associé, à copier et coller dans le champ correspondant dans Klaviyo.

Étape 3 : Ajouter le trigger dans un webhook Klaviyo

1. Partir d'un flow existant ou en créer un nouveau

Vous avez deux possibilités selon votre situation :

Option A : Vous avez déjà un flow Klaviyo existant

  1. Ouvrez le flow concerné (par exemple Abandoned Cart).

  2. Sélectionnez l'action Webhook, puis faites-la glisser (drag and drop) à l'endroit où vous souhaitez l'ajouter dans la séquence.

Option B : Vous créez un nouveau flow Klaviyo

  1. Créez un nouveau flow et choisissez le trigger adapté (par exemple When someone Checkout Started).

  2. Ajoutez ensuite les étapes souhaitées (délai d'attente, email, etc.).

  3. Sélectionnez l'action Webhook, puis faites-la glisser (drag and drop) à l'endroit où vous souhaitez l'ajouter dans la séquence.

2. Insérer les informations du webhook WAX dans Klaviyo

  1. Copiez l'URL du webhook fournie par WAX.

  2. Retournez dans Klaviyo, ouvrez le bloc Webhook que vous venez d'ajouter.

  3. Collez cette URL dans le champ Destination URL.

  4. Ajoutez ensuite le header et le token en copiant collant les infos depuis WAX

⚠️ Utilisez toujours le raccourci copier-coller de WAX (plutôt que de retaper l'URL manuellement) pour éviter toute erreur de frappe. L'URL doit être collée strictement à l'identique, sans espace ni caractère ajouté.

3. Remplir le JSON body avec les bonnes données

C'est ici que vous indiquez à Klaviyo quelles informations envoyer à WAX via le webhook.

1. Créer la structure du JSON

Squelette exemple à copier/coller dans le JSON body du webhook, avant de remplir quoi que ce soit :

{
"attributes": {
"email": "",
"first_name": "",
"phone_number": ""
},
"checkout_url": ""
}

Comment lire cette structure :

  • email et first_name sont dans "attributes" → ce sont des données de profil (onglet Profile).

  • checkout_url est en dehors du bloc attributes → c'est une donnée d'événement (onglet Event), propre au panier abandonné.

2. Récupérer une donnée

Pour chaque champ vide, ouvrez la fenêtre Preview Profile Info (onglet Profile ou Event selon le cas), cliquez sur la donnée correspondante, puis collez la variable copiée par Klaviyo entre les guillemets vides. Vous retrouverez deux onglets :

  • Profile → contient les données fixes de profil (prénom, email, téléphone, attributs personnalisés...).

  • Event → contient les données dynamiques liées à l'événement (URL du panier abandonné, produits ajoutés, devise, etc.).

Cliquez sur l'onglet correspondant au type de donnée que vous cherchez (Profile ou Event). Repérez ensuite la donnée souhaitée dans la liste (par exemple checkout_url). Cliquez sur le nom de la donnée : Klaviyo copie automatiquement la variable correspondante, sous cette forme.

Résultat final attendu (exemple) :

{
"attributes": {
"email": "{{ person.email|default:'' }}",
"first_name": "{{ person.first_name|default:'' }}",
"phone_number": "{{ person.phone_number|default:'' }}"
},
"checkout_url": "{{ event.extra.checkout_url|default:'' }}"
}

💡 Cette copie se fait derrière votre pop-up : pensez à fermer la fenêtre pour voir la confirmation de copie s'afficher.

3. Insérer la variable dans le JSON

Vos variables doit être collée entre les guillemets, dans le JSON body du webhook.

Exemple final pour un flow de checkout abandonné :

{
"attributes": {
"phone_number": "{{ person.phone_number|default:'' }}",
"first_name": "{{ person.first_name|default:'' }}",
"email": "{{ person.email|default:'' }}"
},
"checkout_url": "{{ event.extra.checkout_url|default:'' }}"
}

Comment lire ce JSON :

  • Tout ce qui se trouve sous la clé "attributes" correspond aux données fixes de profil (celles de l'onglet Profile).

  • Tout ce qui se trouve après la fermeture de ce bloc attributes (après la deuxième accolade }) correspond aux données dynamiques liées à un événement (celles de l'onglet Event).

🛠️ Si le code ne fonctionne pas (erreur, blocage) : il manque très probablement une virgule ou une accolade. Dans ce cas, copiez votre code JSON et passez-le à une IA (comme Claude ou ChatGPT) en lui demandant de corriger la syntaxe.

Étape 4 : Utiliser les variables sur WAX et activer le flow

  1. Mettre à jour les liens et variables sur WAX Sur votre message WAX, remplacez les liens et champs statiques par les bonnes variables issues du webhook. Par exemple :

    • Le bouton ou lien de relance doit pointer vers la variable checkout_url (et non un lien fixe).

    • Le prénom affiché dans le message doit utiliser la variable first_name.

    Vérifiez chaque message du flow pour vous assurer qu'aucune variable n'a été oubliée.

  2. Activer le webhook Activez le webhook côté Klaviyo, puis activez également le flow côté WAX. Les deux activations sont nécessaires pour que les données circulent correctement d'une plateforme à l'autre.

  3. Envoyer un message de test Pour vérifier que tout fonctionne, déclenchez l'événement Checkout Started depuis Klaviyo


    💡 Astuce : pour ne recevoir le test que sur votre propre numéro ou email, vous pouvez ajouter une condition à l'entrée du webhook, par exemple :

    • envoyer le webhook uniquement si le phone_number correspond au vôtre,

    • ou si l'email se termine par le nom de domaine de votre organisation.

⚠️ Rappel important : les variables ne peuvent être testées que si le flow est réellement déclenché par Klaviyo (via l'événement Checkout Started) et qu'il est live sur WAX. Un test manuel sur WAX seul n'affichera pas les bonnes valeurs.

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