Objectif de cet article
Découvrez comment créer un webhook Zapier personnalisé pour transmettre le consentement pour l’envoi de SMS à Klaviyo. Vous pouvez facilement modifier les instructions de ce guide pour également transmettre un consentement pour l’envoi d’e-mails.
Les étapes ci-dessous vous aideront à créer un Zap à l’aide d’un webhook (également appelé « catch hook ») qui déclenche l’action d’un script Python. Le script envoie un appel d’API à Klaviyo pour abonner des adresses e-mail et des numéros de téléphone à une liste.
Cette fonctionnalité n’est disponible que pour les utilisateurs disposant d’un abonnement Zapier Premium.
À propos de l’intégration
Cette intégration n’est pas entièrement prise en charge par Klaviyo, mais peut être utilisée comme solution de contournement si nécessaire. Nous vous recommandons de n’utiliser cette intégration que si vous avez des développeurs dans votre équipe qui peuvent s’en charger.
Ce guide utilise une action de code Zapier qui exécute un script Python lorsque le déclencheur est détecté. Cette solution vous permet de mapper des champs vers les types de données requis par les points de terminaison de Klaviyo, en particulier pour l’abonnement de profils et le désabonnement de profils.
Configurer le webhook de ZapierConfigurer le webhook de Zapier
- Connectez-vous à votre compte Zapier.
- Depuis la page principale de Zapier, sélectionnez +Create, puis Zap.
- Saisissez un nom pour votre nouveau Zap (par exemple, « Webhook Klaviyo »).
- Recherchez Webhook, puis sélectionnez Webhooks by Zapier dans le menu Trigger.
- Dans le menu suivant, sélectionnez Catch Hook parmi les options Trigger Event.
- Cliquez sur Continue.
- Sélectionnez l’onglet Test.
- Copiez l’URL du webhook que Zapier vous fournit pour envoyer vos demandes.
- Avant de procéder aux tests, vous devez envoyer des données de test à votre webhook. Pour en savoir plus, consultez notre guide Comment envoyer des données de test à Zapier. Veillez à formater correctement les numéros de téléphone lorsque vous envoyez des données de test.
- Une fois que vous avez envoyé les données de test au webhook, cliquez sur Test trigger (dans l’onglet Test).
- Si la demande aboutit, vous verrez un message de réussite et les données du test s’afficheront sous le message de réussite, comme dans l’exemple ci-dessous :
- Une fois que votre déclencheur fonctionne, cliquez sur Continue with selected record.
Configurer une action Zapier
- Dans le menu Action, saisissez Code by Zapier dans le champ de recherche et sélectionnez l’option dans la liste.
- Cliquez sur Choose an event > Run Python.
- Cliquez sur Continue.
Configurer le mappage des champs et créer une logique de script
- Configurez un mappage des champs afin d’établir une corrélation entre les données d’entrée du tableau ci-dessous et les données de test correctes que vous avez envoyées précédemment.
Données d’entrée Données de test mappées email
1. Email: <E-mail test> phone_number
1. Phone Number: <Numéro de téléphone test> sms_consent
1. Sms Consent: true name
1. Name: <Nom test>
- Ajoutez un script comme celui-ci dans la zone de code :
import requests # configuring sms subscribe or unsubscribe call if (input_data["sms_consent"] == "true" or input_data["sms_consent"] == "True" or input_data["sms_consent"] == "TRUE"): url = "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs/"
payload = { "data": { "type": "profile-subscription-bulk-create-job", "attributes": { "profiles": { "data": [ { "type": "profile", "attributes": { "email": input_data["email"], "phone_number": input_data["phone_number"], "subscriptions": { "sms": { "marketing": { "consent": "SUBSCRIBED" } } } } } ] } }, "relationships": { "list": { "data": { "type": "list", "id": "LIST_ID" } } } } } elif (input_data["sms_consent"] == "false" or input_data["sms_consent"] == "False" or input_data["sms_consent"] == "FALSE"):
url = "https://a.klaviyo.com/api/profile-subscription-bulk-delete-jobs/" payload = { "data": { "type": "profile-subscription-bulk-delete-job", "attributes": { "profiles": { "data": [ { "type": "profile", "attributes": { "email": input_data["email"], "phone_number": input_data["phone_number"], } } ] } }, "relationships": { "list": { "data": { "type": "list", "id": "LIST_ID" } } } } }
headers = { "accept": "application/json", "revision": "2024-05-15", "content-type": "application/json", "Authorization": "Klaviyo-API-Key your-private-api-key" } response = requests.post(url, json=payload, headers=headers) # Zapier requires an ’output’ object output = {"response text": response.text} - Remplacez
your-private-api-key
par votre clé d’API privée Klaviyo.
Traitez les clés d’API privées comme des mots de passe : conservez-les en lieu sûr et ne les dévoilez jamais au public.
- Remplacez
LIST_ID
(aux deux endroits) par l’ID de la liste Klaviyo à laquelle vous souhaitez envoyer vos données Zapier. Pour trouver l’ID de votre liste dans Klaviyo, accédez à Audience > Listes et segments > Paramètres. Si vous souhaitez abonner immédiatement des personnes sans confirmation (ce qui peut être utile lors des tests), assurez-vous que votre liste est configurée en mode « Opt-in simple » (voir l’onglet Consentement dans les paramètres de la liste). - Cliquez sur Continue, puis sur Test step.
- Si votre test réussit, vous obtiendrez une réponse sans erreur, comme celle-ci :
- Vous pouvez également vérifier la réussite du test dans Klaviyo en accédant à votre liste et en vous assurant que le profil a bien été ajouté.
- Une fois votre test réussi, cliquez sur Publier pour publier votre zap. Si votre test n’aboutit pas, consultez nos conseils de dépannage des problèmes les plus courants.
Résolution de problèmes
Les points suivants sont des problèmes courants que vous pouvez rencontrer lors de la configuration du webhook de Zapier. Si vous rencontrez d’autres problèmes, contactez la communauté Klaviyo pour obtenir des conseils supplémentaires.
EOL lors de l’analyse d’une chaîne de caractères littérale (« EOL while scanning string literal »)EOL lors de l’analyse d’une chaîne de caractères littérale (« EOL while scanning string literal »)
Si vous voyez cette erreur, c’est qu’il manque un guillemet au niveau de l’une de vos variables. Vérifiez que l’ID de la liste et la clé d’API privée sont entourés de guillemets.
Syntaxe non valide (« SyntaxError: invalid syntax »)Syntaxe non valide (« SyntaxError: invalid syntax »)
Si vous voyez cette erreur, supprimez les commentaires dans le code Python (toute ligne commençant par #
).