Du wirst lernen
Lerne etwas über Code und wie du eigene Funktionen erstellst, die direkt von Klaviyo ausgeführt werden.
Der Code muss individuell entwickelt werden und das Support-Team von Klaviyokann keine praktische Hilfe leisten. Wenn du keinen Entwickler in deinem Team hast und dich nicht wohl dabei fühlst, selbst Code zu schreiben, kannst du dich an einen Klaviyo-Partner wenden.
Bevor du beginnstBevor du beginnst
Der Code ist Teil der Klaviyo's Kundendatenplattform (Kundendatenplattform).
Klaviyo Die Kundendatenplattform ist nicht in der Standard-Marketinganwendung von Klaviyoenthalten. Um auf die damit verbundenen Funktionen zugreifen zu können, ist ein Abonnement der Kundendatenplattform erforderlich. In unserem Leitfaden zur Abrechnung erfährst du mehr darüber, wie du diese Funktion zu deinem Abonnement hinzufügen kannst, oder du kannst gleich loslegen, wenn du ein neuer Kunde bist.
Was ist Code?
Der Code ermöglicht es dir, benutzerdefinierte Funktionen als Reaktion auf in Klaviyo erfasste Ereignisse auszuführen. Du kannst deine eigenen Javascript- oder Python-Funktionen im Code-Editor schreiben, die dann direkt auf der Plattform ausgeführt werden.
Mit Code kannst du Daten an deine externen Systeme senden, ohne einen öffentlichen HTTP-Endpunkt für den Empfang von Webhooks einrichten zu müssen, und benutzerdefinierte Funktionen erstellen, die als Reaktion auf das Eintreten eines Ereignisses ausgelöst werden. Du kannst auch auf viele beliebte vorgefertigte Module zugreifen, um die Erstellung individueller Lösungen zu erleichtern.
ThemenThemen
Code kannst du benutzerdefinierte Funktionen als Reaktion auf jedes Ereignis ausführen, das über die Get Events API abgefragt werden kann.
Dazu gehören:
- E-Mail-Ereignisse (z. B. angeklickte E-Mail, als Spam markierte E-Mail )
- SMS-Ereignisse (z. B. gesendete SMS, empfangene SMS)
- Push-Ereignisse (z. B. empfangener Push, abgeprallter Push)
- Ereignisse aus Integrationen (d.h. Ereignisse aus Erstanbieter-Integrationen, die von Klaviyo erstellt wurden)
- API Ereignisse (d. h. Ereignisse, die über die API von Klaviyosynchronisiert werden)
Klaviyo Der Code unterstützt die folgenden Ereignisse nicht als Themen:
- E-Mail geöffnet
- E-Mail erhalten
Code-Schnittstelle
Um auf den Code zuzugreifen, navigiere zur Registerkarte Code unter Kundendatenplattform > Data Management > Code.
Um eine benutzerdefinierte Funktion zu erstellen, wähle die Schaltfläche Funktion erstellen :
Du gelangst zur Seite Rezepte , auf der du entweder eine vorgefertigte Lösung oder eine leere Python- oder Node.js-Funktion zur Ausführung auswählen kannst.
Wenn du ein bestehendes Rezept auswählst, siehst du den Code-Editor mit dem Code für die Lösung und einer Beschreibung der Funktionalität.
Wenn du eine leere Funktion auswählst, damit du deine eigenen Lösungen erstellen kannst, wird das Modal "Details" angezeigt, in dem du dies tun kannst:
-
Benenne deine Funktion
Ein Name, um deine Funktion zu identifizieren. -
Wähle ein Thema für deine Funktion
Das Ereignis, das die Ausführung deines Codes auslösen wird. -
Wähle eine Laufzeitumgebung
Die Laufzeitumgebung, in der der Code ausgeführt wird (d.h. Python oder Node.js).
Nachdem du die gewünschte Auswahl getroffen und auf die Schaltfläche " Funktion erstellen" geklickt hast, wirst du zu einer Oberfläche mit den folgenden Registerkarten weitergeleitet:
- Herausgeber
- Test Ausgang
- Logs
Erteilung von Genehmigungen
Wenn du zum ersten Mal eine Funktion über Code erstellst, wirst du aufgefordert, die Code OAuth-Anwendung zu authentifizieren. Dies ist erforderlich, damit deine Code-Funktionen auf die Daten in deinem Klaviyo-Konto zugreifen können.
Sobald du den Zugang gewährt hast, wirst du zum Code-Editor weitergeleitet.
HerausgeberHerausgeber
Auf der Editor-Seite in Code wird die Seite in 3 Registerkarten aufgeteilt:
-
Code
Der Code-Tab hat einen Editor, in dem du Python- oder Javascript-Funktionen schreiben kannst. -
Module
Module sind Pakete von Drittanbietern, die Funktionen zu deinen Funktionen hinzufügen. -
Umgebungsvariablen
Umgebungsvariablen sind die Schlüssel-Wert-Paare, auf die deine Funktion zugreift, wenn sie ausgeführt wird.
Code
Auf der Registerkarte Code siehst du einen Editor, mit dem du Python- oder Javascript-Funktionen schreiben kannst, die als Reaktion auf das ausgewählte Thema ausgeführt werden.
Parameter der HandlerfunktionParameter der Handlerfunktion
Damit Klaviyo den von dir geschriebenen Code ausführen kann, muss er in eine Funktion namens "handler" verpackt werden, die 2 Parameter akzeptiert:
-
Ereignis
Besteht aus den mit dem auslösenden Ereignis verbundenen Ereignisdaten im Format JSON:API. Wenn der Auslöser nicht ereignisbasiert ist (z. B. " Zur Liste hinzugefügt"), ist der Wert dieses Parameters je nach Sprache None oder Null. -
Kontext
Enthält zusätzliche Metadaten über die Funktionsausführung, einschließlich des Profils, das mit dem Funktionsaufruf verbunden ist. Du kannst auf das Profil-Objekt über context.Profil in Javascript oder context["Profil" ] in Python zugreifen.
Im Folgenden findest du Beispiele für die Ereignis- und Kontextparameter, die an die Handler-Funktion übergeben werden.
Beispiel Ereignisformat
{
{
"Daten": {
"type": "event",
"id": "7S2q9haejYG",
"Attribute": {
"Zeitstempel": 1694435729,
"event_properties": {
"MfaEnabled": false,
"IpAddress": "000.00.0.0",
"UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
"UserRole": "Owner",
"SessionId": "34sh0a9nh8ngnk2nfacjxmt592yx40ib",
"LoginType": "Username_password",
"current_company_id": "XXXXX",
"$event_id": "1694435729"
},
"datetime": "2023-09-11 12:35:29+00:00",
"uuid": "b0b8fe80-509f-11ee-8001-278cc529fcd3"
},
"Beziehungen": {
"Profil": {
"Daten": {
"type": "profile",
"id": "123456"
},
"links": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/profile/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/profile/"
}
},
Metrik": {
"Daten": {
"type": "metric",
"id": "4Tdup6"
},
"links": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/metric/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/metric/"
}
}
},
"links": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/"
}
}
}
Beispiel Kontextformat
{
"Unternehmen": "XXXXX",
"Auslöser": {"type": "event", "uid": "123456"},
"function_id": "123456",
}
ModuleModule
Auf der Registerkarte Module kannst du aus den beliebtesten vorgefertigten Modulen auswählen (d.h. Pakete von Drittanbietern, die deine Funktionen erweitern).
Um ein externes Modul hinzuzufügen, das du in deinem Code verwenden möchtest, wähle die Schaltfläche Modul hinzufügen:
In dem erscheinenden Modal kannst du das Modul, das du hinzufügen möchtest, suchen und auswählen:
Sobald du es hinzugefügt hast, kannst du das Modul mit dem Code verwenden, den du in Klaviyo schreibst.
Du solltest die Dokumentation des externen Moduls lesen, um zu erfahren, wie du es verwenden kannst.
Das Klaviyo-Modul
Alle Code-Funktionen werden mit einem eigenen Klaviyo-Paket geliefert, das in deiner Code-Umgebung vorinstalliert ist. Mit diesem Modul können deine Funktionen auf die Daten in deinem Klaviyo-Konto zugreifen, ohne dass du Zugangsdaten wie einen API-Schlüssel angeben musst.
Die API des Klaviyo-Moduls hängt davon ab, ob dein Code in Python oder Javascript geschrieben ist.
Python Klaviyo ModulPython Klaviyo Modul
Die API des vorinstallierten Klaviyo-Moduls ist das gleiche wie das Klaviyo SDK-Objekt, das du normalerweise mit dem Klaviyo-API Python-Modul instanziieren würdest. Du kannst dir das Klaviyo-Modul als einen vorinstallierten Klaviyo SDK-Client vorstellen.
In einem traditionellen Workflow würdest du zum Beispiel zuerst einen neuen Klaviyo SDK-Client instanziieren, indem du dem Konstruktor einen API-Schlüssel übergibst, und dann das resultierende SDK-Objekt verwenden.
from klaviyo_api importieren KlaviyoAPI
importieren os
def handler(event, context):
Klaviyo = KlaviyoAPI(api_key=os.getenv("API"))
print(Klaviyo.Metrik.get_metrics())
Mit Code brauchst du nur das Klaviyo-Objekt zu importieren und die Authentifizierung wird für dich erledigt.
Klaviyo importieren
def handler(event, context):
print(Klaviyo.Metrik.get_metrics())
Sieh dir die verfügbaren Klaviyo-Objekte und ihre Methoden an.
Javascript Klaviyo ModulJavascript Klaviyo Modul
Wenn du das vorinstallierte Klaviyo-Modul in deinen Javascript-Funktionen verwendest, importiere die spezifischen Klaviyo Funktionen, auf die du zugreifen möchtest, mit der geschweiften Klammer-Syntax aus dem Klaviyo-Modul. Dann verwende sie wie ein API Objekt mit dem Klaviyo-API Javascript Modul.
importiere { Metrics } von 'Klaviyo';
export default async (event, context) => {
console.log(await Metrics.getMetrics())
}
Sieh dir die verfügbaren Klaviyo-Objekte und ihre Methoden an.
Umgebungsvariablen
Auf der Registerkarte Umgebungsvariablen kannst du Schlüssel-Wert-Paare festlegen, auf die dein Code in Klaviyo verweisen kann, wenn er ausgeführt wird. Diese können verwendet werden, um Informationen wie Anmeldedaten und geheime Schlüssel zu laden, damit deine Funktionen darauf zugreifen können, wenn sie ausgeführt werden.
Um eine Umgebungsvariable hinzuzufügen, wähle die Schaltfläche Variable hinzufügen:
In dem erscheinenden Modal kannst du ein Schlüssel-Wert-Paar für deine Umgebungsvariable festlegen.
Sobald sie erstellt sind, werden die Umgebungsvariablen auf der Seite aufgelistet und können in deinem Code verwendet werden.
Um in deinem Code auf deine Umgebungsvariablen zuzugreifen, benutze os.getenv("Key") für Python oder process.env.KEY für Node.js.
Um den Wert einer bestehenden Umgebungsvariablen zu aktualisieren, musst du eine neue Variable mit demselben Schlüssel erstellen, für den du den Wert aktualisieren möchtest.
Test Ausgang
Auf der Registerkarte Testausgabe in Code kannst du deinen Code mit aktuellen Ereignissen testen, um sicherzustellen, dass sich die Ausgabe wie erwartet verhält.
Um deine Funktion zu testen:
- Wähle die Schaltfläche Test ausführen:
- Wähle in dem erscheinenden Modal ein Ereignis aus, das du testen möchtest. Du kannst aus den 10 letzten Ereignissen auswählen, die in Klaviyo erfasst wurden.
- Nachdem du ein Ereignis zum Testen ausgewählt hast, wird die Testausgabe angezeigt:
Logs
Die Registerkarte Protokolle zeigt den Zustand deiner laufenden Code-Funktionen an. Du wirst sehen:
-
Status
Der Fortschritt bei der Ausführung einer Funktion. -
Reaktionszeit
Die Zeit, die dein Code braucht, um als Reaktion auf ein Ereignis ausgeführt zu werden. -
Datum
Ein Zeitstempel, wann die Funktion ausgeführt wurde.
Tarifgrenzen
Für den Klaviyo-Code gelten die folgenden Tarifgrenzen:
-
Funktions-Timeout
Funktionen im Code können bis zu 15 Sekunden lang ausgeführt werden, bevor sie eine Zeitüberschreitung verursachen. -
Funktionsratenbegrenzung
Die Funktionen im Code erlauben bis zu 25 gleichzeitige Ausführungen pro Funktion.
Code bereitstellen
Um den Code, den du im Editor schreibst, einzusetzen, schalte das Status-Dropdown auf Live um.
Sobald du den Code auf "live" gestellt hast, wird er jedes Mal ausgeführt, wenn das Themenereignis in Klaviyo erfasst wird.
Wenn eine Funktion live geschaltet ist, kann es bis zu 15 Minuten dauern, bis Ereignisse die Funktion auslösen.
Beispiellösung
Im Folgenden findest du ein Beispiel für eine benutzerdefinierte Lösung, die mit Code implementiert wurde.
Im Beispiel werden die Ereignisdaten als Profileigenschaft festgelegt, damit sie in gezielten E-Mails und in der Segmentierung verwendet werden können. Das benutzerdefinierte Ereignis " Gebuchtes Shooting" wird auf Klaviyo erfasst, wenn der Kunde ein Shooting bei der Marke bucht, und die Daten über den Buchungsort und die zugehörige URL werden als Profileigenschaft auf dem jeweiligen Profil eingestellt.
Es wird auch eine Eigenschaft mit dem Namen " Letzte Buchungen" erstellt, die die Daten der letzten 5 gebuchten Shootings lädt, so dass sie in einer E-Mail-Vorlage durchgeschleift und abgerufen werden können.
CodeCode
Der Python-Code für diese Lösung wird im Code-Editor geschrieben und wird direkt von Klaviyo ausgeführt.
BeispielcodeBeispielcode
ModuleModule
In diesem Beispiel wird das integrierte Klaviyo-Modul verwendet. Das Klaviyo-Modul ist darauf angewiesen, dass das Klaviyo-API-Modul zur Funktion hinzugefügt wird. Einmal hinzugefügt, übernimmt das Klaviyo-Modul die Authentifizierung für dich, sodass kein API-Schlüssel benötigt wird.
UmgebungsvariablenUmgebungsvariablen
Umgebungsvariablen können verwendet werden, um Informationen wie Anmeldeinformationen und geheime Schlüssel zu laden, damit deine Funktionen darauf zugreifen können, wenn sie ausgeführt werden. Für dieses Beispiel wird das folgende Schlüssel-Wert-Paar festgelegt:
-
MAX_PROPERTIES_TO_STORE
Eine Umgebungsvariable, mit der du die maximale Anzahl der zu ladenden Eigenschaften für die Beispielfunktion festlegen kannst.
Testen
Beim Erstellen der Funktion zum Festlegen von Ereignisdaten als Profileigenschaften wird die Registerkarte Testausgabe verwendet, um die erwartete Ausgabe zu überprüfen.
LogsLogs
Sobald die Funktion erstellt und getestet wurde, zeigt die Registerkarte " Protokolle" den Status der Funktion an, während sie als Reaktion auf gebuchte Schießereignisse ausgeführt wird.
ErgebnisErgebnis
Wenn der Kunde sich für ein Shooting anmeldet und das Ereignis " Gebuchtes Shooting" auslöst, werden die Ereignisdaten in das Kunden-Profiling geladen und für die Segmentierung und gezielte Kampagne verwendet.
Rezepte implementierenRezepte implementieren
Mit Recipes in Code kannst du vorgefertigte Lösungen implementieren, ohne dass du sie selbst entwickeln musst.
So implementierst du ein Rezept in deinem Klaviyo-Konto:
- Wähle die Schaltfläche Funktion erstellen auf der Seite Code.
- Wähle das Rezept aus, das du in deinem Konto implementieren möchtest. Du gelangst zum Editor, in dem du den Code für das ausgewählte Rezept und eine Beschreibung der Funktion sehen kannst.
- Klicke auf die Schaltfläche Auswählen, um fortzufahren.
- Wähle einen Namen für die Funktion und den Auslöser, der sie ausführen soll. Die Laufzeit wird automatisch auf der Grundlage des Codes für das Rezept festgelegt.
- Wähle die Funktionstaste Erstellen.
- Sobald die Funktion erstellt wurde, setzt du die entsprechenden Umgebungsvariablen, damit die Funktion die Daten hat, die sie zum Ausführen braucht.
- Das Rezept kann nun getestet und auf Live gestellt werden.
In den Rezepten musst du möglicherweise bestimmte Felder aktualisieren, damit sie mit deinen Namensvorlieben und den Daten in deinen Veranstaltungen übereinstimmen. Welche Felder umbenannt und bearbeitet werden können, kannst du in der Anleitung des Rezepts nachlesen.
Zusätzliche Ressourcen
Erste Schritte mit der Klaviyo's Kundendatenplattform
Verstehe die verschiedenen Webhooks, die in Klaviyo