Du wirst lernen
Erfahre, wie du einen benutzerdefinierten Zapier Webhook erstellst, um SMS-Einwilligung an Klaviyo zu senden. Du kannst die Anweisungen in diesem Leitfaden leicht abändern, um die Zustimmung auch per E-Mail zu senden.
Die folgenden Schritte helfen dir, ein Zap mit einem Webhook (auch Catch Hook genannt) zu erstellen, das eine Python-Skriptaktion auslöst. Das Skript sendet einen API-Aufruf an Klaviyo, um E-Mail- und Telefonnummern für eine Liste zu abonnieren.
Diese Funktion ist nur für Nutzer mit einem Premium Zapier-Abonnement verfügbar.
Über die Integration
Diese Integration wird von Klaviyo nicht vollständig unterstützt, kann aber bei Bedarf als Workaround genutzt werden. Wir empfehlen, diese Integration nur zu nutzen, wenn du Entwickler in deinem Team hast, die sie unterstützen können.
Dieser Leitfaden verwendet eine Zapier-Codeaktion, die ein Python-Skript ausführt, wenn der Auslöser erkannt wird. Mit dieser Lösung kannst du Felder den Datentypen zuordnen, die die Endpunkte von Klaviyo benötigen, insbesondere die Endpunkte Subscribe Profil und Unsubscribe Profil.
Zapier Webhook einrichtenZapier Webhook einrichten
- Melde dich bei deinem Zapier-Konto an.
- Wähle auf der Hauptseite von Zapier "+Erstellen" und dann " Zap".
- Gib einen Namen für deinen neuen Zap ein (z.B. Klaviyo Webhook).
- Suche nach Webhookund wähle dann Webhook by Zapier aus dem Menü Auslöser.
- Wähle im nächsten Menü die Option Fanghaken aus den Trigger-Ereignis-Optionen.
- Klicke auf Weiter.
- Wähle die Registerkarte Test.
- Kopiere die Webhook-URL, die dir Zapier zur Verfügung stellt, um deine Anfragen zu senden.
- Bevor du testest, musst du Testdaten an deinen Webhook senden. Weitere Informationen findest du in unserem Leitfaden zum Senden von Testdaten an Zapier. Achte beim Senden von Testdaten auf die richtige Formatierung der Telefonnummern.
- Sobald du die Testdaten an den Webhook gesendet hast, klickst du auf Testauslöser (auf der Registerkarte Test ).
- Wenn die Anfrage erfolgreich war, siehst du eine Erfolgsmeldung und die Testdaten werden unter der Erfolgsmeldung eingefügt, ähnlich wie im folgenden Beispiel:
- Wenn dein Trigger funktioniert, klicke auf Mit ausgewähltem Datensatz fortfahren.
Zapier-Aktion einrichten
- Gib im Aktionsmenü Code by Zapier in das Suchfeld ein und wähle die Option aus der Liste aus.
- Klicke auf Ein Ereignis auswählen > Python ausführen.
- Klicke auf Weiter.
Feldzuordnung einrichten und Skriptlogik erstellen
- Richte die Feldzuordnung ein, um die Eingabedaten in der Tabelle unten den richtigen Testdaten zuzuordnen, die du zuvor gesendet hast.
Eingangsdaten Testdaten abgebildet E-Mail
1. E-Mail: <Test email> telefon_nummer
1. Rufnummer: <Test phone number> sms_zustimmen
1. Sms_consent: true Name
1. Name: <Name der Prüfung> <Test name>
- Füge ein Skript wie das untenstehende in das Codefeld ein:
Anfragen importieren # Konfiguration des SMS-Abonnements oder Abmeldeaufrufs if (input_data["sms_consent"] == "true" oder input_data["sms_consent"] == "True" oder input_data["sms_consent"] == "TRUE"): url = "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs/"
Nutzlast = { "data": { "Typ": "Profil-abonnement-bulk-erstellen-job", "Attribute": { "Profil": { "data": [ { "Typ": "Profil", "Attribute": { "E-Mail": input_data["E-Mail"], "telefonnummer": input_data["telefonnummer"], "Abonnements": { "SMS-Marketing": { "consent": "SUBSCRIBED" } } } } } ] } }, "Beziehungen": { "Liste": { "Daten": { "type": "list", "id": "LIST_ID" } } } } } elif (input_data["sms_consent"] == "false" oder input_data["sms_consent"] == "False" oder input_data["sms_consent"] == "FALSE"):
url = "https://a.klaviyo.com/api/Profil-subscription-bulk-delete-jobs/" Nutzlast = { "data": { "Typ": "Profil-abonnement-bulk-delete-job", "attributes": { "Profil": { "data": [ { "Typ": "Profil", "Attribute": { "email": input_data["email"], "phone_number": input_data["phone_number"], } } ] } }, "Beziehungen": { "Liste": { "Daten": { "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 benötigt ein 'output'-Objekt output = {"response text": response.text} - Ersetze den
your-private-API-Schlüssel durch
deinen Klaviyo privaten API-Schlüssel.
Behandle private API-Schlüssel wie Passwörter - bewahre sie an einem sicheren Ort auf und gib sie niemals der Öffentlichkeit preis.
- Ersetze die
Liste
(an beiden Stellen) durch die Klaviyo Listen-ID, an die du deine Zapier-Daten senden möchtest. Du findest deine Listen-ID auf Klaviyo, indem du zu Audience > Liste & Segment > Einstellungen navigierst. Wenn du Personen sofort und ohne Bestätigung anmelden möchtest (was bei Tests hilfreich sein kann), stelle sicher, dass deine Liste auf einmalige Anmeldung eingestellt ist (zu finden auf der Registerkarte " Zustimmung" in den Listeneinstellungen). - Klicke auf Weiter und dann auf Testschritt.
- Wenn dein Test erfolgreich war, siehst du eine fehlerfreie Antwort, wie die untenstehende:
- Du kannst auch überprüfen, ob der Test in Klaviyo erfolgreich war, indem du zu deiner Liste navigierst und sicherstellst, dass das Profil hinzugefügt wurde.
- Wenn dein Test erfolgreich war, klicke auf Veröffentlichen, um deinen Zap zu veröffentlichen. Wenn dein Test nicht erfolgreich ist, schau dir unsere Tipps zur Fehlerbehebung für häufige Probleme an.
Tipps zur Fehlerbehebung
Die folgenden Probleme können beim Einrichten des Zapier-Webhooks auftreten. Wenn du auf andere Probleme stößt, kannst du dich an die Klaviyo Community wenden, um weitere Hilfe zu erhalten.
EOL beim Scannen von String-LiteralenEOL beim Scannen von String-Literalen
Wenn du diesen Fehler siehst, fehlt ein Anführungszeichen um eine deiner Variablen. Überprüfe die Liste ID und den privaten API-Schlüssel, um sicherzustellen, dass sie auf beiden Seiten von Anführungszeichen umgeben sind.
SyntaxError: Ungültige SyntaxSyntaxError: Ungültige Syntax
Wenn du diesen Fehler siehst, entferne die Kommentare im Python-Code (jede Zeile, die mit einem #
beginnt).