Komma igång med kod
Du kommer att lära dig
Lär dig om Code och hur du skapar anpassade funktioner som körs direkt av Klaviyo.
Kod kräver anpassad utveckling och Klaviyos supportteam kan inte erbjuda praktisk hjälp. Om du inte har en utvecklare i ditt team och inte känner dig bekväm med att skriva kod själv kan du överväga att kontakta en Klaviyo-partner för hjälp.
Innan du börjar
Advanced Klaviyo Data Platform ingår inte i Klaviyos standardmarknadsföringsapplikation och en prenumeration krävs för att få tillgång till den tillhörande funktionaliteten. Gå till vår faktureringsguide för att läsa om hur du köper den här planen.
Vad är kod?
Kod gör att du kan köra anpassade funktioner som svar på händelser som samlats in i Klaviyo. Du kan skriva dina egna Javascript- eller Python-funktioner i kodredigeraren, och de körs sedan direkt i plattformen.
Med kod kan du skicka data till dina externa system utan att behöva konfigurera en offentlig HTTP-slutpunkt för att ta emot webhooks, och bygga anpassad funktionalitet som utlöses som svar på en händelses inträffande. Du kan också få tillgång till många populära förbyggda moduler som gör det lättare att skapa anpassade lösningar.
Ämnen
Koden gör att du kan köra anpassade funktioner som svar på alla händelser som du kan hämta via API:t Get Events.
Dessa inkluderar:
- E-posthändelser (t.ex. Klickade på e-post, Markerade e-post som skräppost )
- Sms-händelser (t.ex. Skickat sms, Mottaget sms)
- Händelser för pushnotis (t.ex. Tog emot pushnotis, Pushnotis studsade)
- Händelser från integrationer (dvs. händelser från förstapartintegrationer som skapats av Klaviyo)
- API-händelser (dvs. händelser som synkas via Klaviyo’s API:er)
Klaviyo Code har inte stöd för följande händelser som ämnen:
- E-post öppnades
- E-post mottagen
Kodgränssnitt
För att komma åt kod går du till fliken Kod under Advanced Klaviyo Data Platform > Data Management > Code.
För att skapa en anpassad funktion väljer du knappen Skapa en funktion :
Du kommer till sidan Recipes , där du antingen kan välja en förbyggd lösning att köra eller en tom Python- eller Node.js-funktion.
Om du väljer ett befintligt recept ser du kodredigeraren med koden för lösningen, tillsammans med en beskrivning av funktionaliteten.
Om du väljer en tom funktion så att du kan skapa dina egna anpassade lösningar visas modalen Detaljer där du kan:
- Namnge din funktion
Ett namn för att identifiera din funktion. - Välj ett ämne för din funktion
Händelsen som utlöser körningen av din kod. - Välj en körmiljö
Den körmiljö där koden körs (dvs. Python eller Node.js).
När du har gjort de obligatoriska valen och valt knappen Create function kommer du till ett gränssnitt med följande flikar:
- Redigerare
- Testutdata
- Loggar
Bevilja behörigheter
Första gången du skapar en funktion via Code uppmanas du att autentisera Code OAuth-programmet. Detta krävs för att dina Code-funktioner ska kunna få åtkomst till data i ditt Klaviyo-konto.
När du har beviljat åtkomst kommer du till kodredigeraren.
Redigerare
På sidan Editor i Code ser du sidan i en delning i 3 flikar:
- Kod
Fliken Kod har en redigerare där du kan skriva Python- eller Javascript-funktioner. - Moduler
Moduler är paket från tredje part som lägger till funktionalitet i dina funktioner. - Miljövariabler
Miljövariabler är de nyckel-/värdepar som din funktion använder när den körs.
Kod
På fliken Kod ser du en redigerare som du kan använda för att skriva Python- eller Javascript-funktioner som körs som svar på det valda ämnet.
Parametrar för hanterarfunktionen
För att Klaviyo ska kunna köra koden du skriver måste den omslutas av en funktion som heter ”handler” och som accepterar 2 parametrar:
- Händelse
Består av händelsedata som är kopplade till den utlösande händelsen i JSON:API-format. Om utlösaren inte är händelsebaserad (t.ex. Lades till i lista) blir värdet för den här parametern Inget eller Null beroende på språket. - Kontext
Innehåller ytterligare metadata om funktionskörningen, inklusive profilen som är associerad med funktionsanropet. Du kan komma åt profilobjektet via context.profile i Javascript eller context["profile"] i Python.
Nedan finns exempel på händelse- och kontextparametrar som skickas till hanterarfunktionen.
Exempel på händelseformat
{
{
"data": {
"type": "event",
"id": "7S2q9haejYG",
"attributes": {
"timestamp": 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"
},
"relationships": {
"profile": {
"data": {
"type": "profile",
"id": "123456"
},
"links": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/profile/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/profile/"
}
},
"metric": {
"data": {
"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/"
}
}
} Exempel på kontextformat
{
"company_id": "XXXXX",
"trigger": {"type": "event", "uid": "123456"},
"function_id": "123456",
} Moduler
På fliken Moduler kan du välja bland de mest populära färdiga modulerna (dvs. tredjepartspaket som lägger till funktioner i dina funktioner).
Om du vill lägga till en extern modul att använda i din kod väljer du knappen Lägg till modul:
I modalfönstret som visas kan du söka efter och välja den modul du vill lägga till:
När den har lagts till kan du använda modulen med koden som du skriver i Klaviyo.
Du bör hänvisa till den externa modulens egna dokumentation för information om hur du använder den.
Klaviyo-modulen
Alla Code-funktioner levereras med ett anpassat Klaviyo -paket som är förinstallerat i din Code-miljö. Den här modulen gör att dina funktioner kan komma åt data i ditt Klaviyo-Konto utan att du behöver ange några autentiseringsuppgifter, som en API-nyckel.
API:et för modulen klaviyo beror på om din kod är skriven i Python eller Javascript.
Python Klaviyo module
API:t för den förinstallerade klaviyo -modulen är samma som objektet Klaviyo software development kit (SDK) som du vanligtvis skulle instansiera med Python-modulen klaviyo-api. Du kan se klaviyo -modulen som en förinstansierad klaviyo SDK-klient.
I ett traditionellt arbetsflöde skulle du till exempel först instansiera en ny Klaviyo software development kit (SDK)-klient genom att skicka en API-nyckel till konstruktorn och sedan använda det resulterande SDK-objektet.
from klaviyo_api import KlaviyoAPIimport osdef handler(event, context): klaviyo = KlaviyoAPI(api_key=os.getenv("KLAVIYO_API_KEY")) print(klaviyo.Metrics.get_metrics()) Med Code behöver du bara importera Klaviyo-objektet och autentiseringen hanteras åt dig.
import klaviyodef handler(event, context): print(klaviyo.Metrics.get_metrics()) Visa de tillgängliga Klaviyo-objekten och deras metoder.
Javascript Klaviyo module
När du använder den förinstallerade klaviyo -modulen i dina Javascript-funktioner importerar du de specifika Klaviyo-funktioner som du vill komma åt med hjälp av klammerparentessyntax från klaviyo -modulen. Använd dem sedan som du normalt skulle använda ett API-objekt med Javascript-modulen klaviyo-api .
import { Metrics } from 'klaviyo';export default async (event, context) => { console.log(await Metrics.getMetrics())} Miljövariabler
Fliken Miljövariabler låter dig ställa in nyckel-/värdepar som din kod i Klaviyo kan referera till när den körs. Dessa kan användas för att lagra information som autentiseringsuppgifter och hemliga nycklar så att dina funktioner kan komma åt dem medan de körs.
Om du vill lägga till en miljövariabel väljer du knappen Lägg till en variabel:
I modalfönstret som visas kan du ange ett nyckelvärdepar för din miljövariabel.
När de har skapats listas miljövariablerna på sidan och kan användas i din kod.
För att komma åt dina miljövariabler i din kod använder du os.getenv("Key") för Python eller process.env.KEY för Node.js.
För att uppdatera värdet för en befintlig miljövariabel måste du skapa en ny variabel med samma nyckel som du vill uppdatera värdet för.
Testutdata
Fliken Testutdata i Code gör att du kan testa din kod med senaste händelser för att bekräfta att utdatan fungerar som förväntat.
Så här testar du din funktion:
- Välj knappen Kör test:
- I modalrutan som visas väljer du en händelse att testa med. Du kan välja bland de 10 senaste händelserna som har registrerats i Klaviyo.
- När du har valt en händelse att testa med visas testresultatet:
Loggar
Fliken Loggar visar hälsan för dina pågående kodfunktioner. Du ser:
- Status
Förloppet för körningen av en funktion. - Svarstid
Den tid det tar för din kod att köras som svar på en händelse. - Datum
En tidsstämpel för när funktionen kördes.
Frekvensgränser
Klaviyo-kod har följande hastighetsbegränsningar:
- Funktions-timeout
Funktioner i Code kan köras i upp till 15 sekunder innan de time out. - Funktionshastighetsbegränsning
Funktioner i Code möjliggör upp till 25 samtidiga körningar per funktion.
Driftsättning av kod
För att driftsätta koden som du skriver i redigeraren växlar du statusrullgardinsmenyn till Live.
När den har publicerats kommer koden du skriver att köras varje gång ämneshändelsen registreras i Klaviyo.
När en funktion är live kan det vara upp till 15 minuters fördröjning innan händelser börjar trigga funktionen.
Exempellösning
Nedan är ett exempel på en anpassad lösning som implementeras med kod.
I exemplet ställs händelsedata in som en profilegenskaper så att den kan användas i riktade e-postmeddelanden och i segmentering. Den anpassade händelsen Booked shoot registreras i Klaviyo när kunder bokar en fotografering hos varumärket, och data om bokningsstaden och tillhörande URL anges som en profilegenskaper på respektive profil.
En egenskap som heter Recent bookings skapas också, som lagrar data från de 5 senaste Booked shoot -händelserna så att den kan loopas igenom och nås i en e-postmall.
Kod
Python-koden för den här lösningen skrivs i kodredigeraren och körs direkt av Klaviyo.
Exempelkod
Moduler
I det här exemplet används den inbyggda modulen klaviyo. Modulen klaviyo förutsätter att modulen klaviyo-api läggs till i funktionen. När den har lagts till hanterar modulen klaviyo autentisering åt dig, så ingen API-nyckel behövs.
Miljövariabler
Miljövariabler kan användas för att lagra information som autentiseringsuppgifter och hemliga nycklar så att dina funktioner kan komma åt dem medan de körs. I det här exemplet ställs följande nyckel/värde-par in:
- MAX_PROPERTIES_TO_STORE
En miljövariabel som används för att definiera det maximala antalet egenskaper som ska lagras för exempelfunktionen.
Testning
När du skapar funktionen för att ange händelsedata som profilegenskaper används fliken Test output för att verifiera den förväntade utdata.
Loggar
När funktionen har skapats och testats visar fliken Loggar funktionshälsan när den körs som svar på Booked shoot -händelser.
Utfall
Med den här Code-funktionen på plats lagras händelsedata på kundprofilen när kunder registrerar sig för fotograferingar och utlöser den anpassade händelsen Bokad fotografering, så att den kan användas för segmentering och riktade kampanjer.
Implementera recept
Recept i Kod gör att du kan implementera färdiga lösningar utan behov av anpassad utveckling.
Så här implementerar du ett recept i ditt Klaviyo-konto:
- Välj knappen Skapa funktion på sidan Kod.
- Välj den Recipe som du vill implementera i ditt Konto. Du kommer att tas till redigeraren där du kan se koden för den valda Recipe samt en beskrivning av vad funktionen gör.
- Klicka på knappen Välj för att fortsätta.
- Välj ett namn för funktionen och den utlösare som gör att den körs. Körtiden ställs in automatiskt baserat på koden för Recipe.
- Välj knappen Skapa funktion.
- När funktionen har skapats ställer du in relevanta miljövariabler så att funktionen har de data den behöver för att köras.
- Receptet kan nu testas och ställas in på Live.
Recept kan kräva att du uppdaterar vissa fält för att matcha dina önskade namngivningspreferenser och data i dina händelser. Se instruktionerna för receptet för att se vilka fält som kan byta namn och redigeras.
Ytterligare resurser
- Komma igång med Klaviyo Advanced KDP
Läs mer om hur du använder Advanced KDP (Klaviyos dataplattform) för att samla in robusta kundinsikter över alla dina marknadsföringsinitiativ. Klaviyo Advanced KDP möjliggör mer avancerad datahantering, -manipulation och -analys. Den ger också handlingsinriktade strategier som kan användas för varje enskild målgrupp och för företaget som helhet.
- Förstå de olika webhookar som är tillgängliga i Klaviyo
Lär dig mer om skillnaderna mellan webhook-lösningarna som finns i Klaviyo och när du bör använda var och en.