Du kommer att lära dig

Du kommer att lära dig

Lär dig mer om kod och hur du skapar anpassade funktioner som körs direkt av Klaviyo.

Koden kräver anpassad utveckling och Klaviyo:s supportteam kan inte erbjuda praktisk hjälp. Om du inte har en utvecklare i ditt team och inte är bekväm med att skriva kod själv, överväg att kontakta en Klaviyo-partner för hjälp.

Innan du börjar

Innan du börjar

Advanced Klaviyo Data Platform ingår inte i Klaviyo:s standardmarknadsföringsapplikation, och en prenumeration krävs för att få tillgång till tillhörande funktionalitet. Gå till vår fakturering guide för att lära dig hur du köper detta abonnemang.

Vad är kod?

Vad är kod?

Med kod kan du utföra anpassade funktioner som svar på händelser samla 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 publik 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

Ämnen

Med Code kan du köra anpassade funktioner som svar på alla händelser som kan efterfrågas via API:et Get Events.

Dessa inkluderar:

  • e-posthändelser (t.ex. klickad e-post, markerad e-post som skräppost )
  • sms-händelser (t.ex. skickade sms, mottagna sms)
  • pushnotis-händelser (t.ex. Mottagen pushnotis, Studsad pushnotis)
  • Händelser från integrerare (dvs. händelser från förstapartsintegrerare som skapats av Klaviyo)
  • API händelser (dvs. händelser som synkroniserats via Klaviyo:s API)

Klaviyo Koden innehåller inte support följande händelser som ämnen:

  1. E-post öppnades
  2. Mottagen e-post
Kodgränssnitt

Kodgränssnitt

För att komma åt koden, navigera till fliken Kod under Avancerad Klaviyo Data Platform > data Management > Kod

Om du vill skapa en anpassad funktion väljer du knappen Skapa en funktion:

Skapa en funktionsknapp

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.

bild (9).jpg

Om du väljer ett befintligt recept visas kodredigeraren med koden för lösningen, tillsammans med en beskrivning av funktionaliteten. 

bild (10).jpg

Om du väljer en tom funktion så att du kan skapa dina egna anpassade lösningar visas Details-modalen där du kan göra det:

  • Namnge din funktion
    Ett namn för att identifiera din funktion.
  • Välj ett ämne för din funktion
    Den händelse som kommer att utlösa din kods exekvering .
  • Välj en runtime
    Den runtime-miljö som koden exekveras i (t.ex. Python eller Node.js).

3.11.jpg

När du har gjort de nödvändiga valen och valt funktionsknappen Create kommer du till ett gränssnitt med följande flikar: 

  • Redaktör 
  • Testutgång 
  • Loggar
Tilldela behörigheter

Tilldela behörigheter

Första gången du skapar en funktion via Code uppmanas du att autentisera Code OAuth-applikationen. Detta är nödvändigt för att dina kodfunktioner ska kunna komma åt data på ditt Klaviyo Konto.

När du har beviljat åtkomst kommer du till kodredigeraren.

Redigerare

Redigerare

På sidan Editor i Code delas sidan in i tre flikar:

  • Kod
    Kodfliken har en editor där du kan skriva Python- eller Javascript-funktioner.
  • Moduler
    Moduler är tredjepartspaket som lägger till funktionalitet i dina funktioner.
  • Miljövariabler
    Miljövariabler är de nyckel-värdepar som din funktion kommer åt när den körs. 
Kod

Kod

På fliken Code ser du en editor som du kan använda för att skriva Python- eller Javascript-funktioner som körs som svar på det valda ämnet.

3.11(2).jpgjs.jpg

Parametrar för hanterarfunktionen

Parametrar för hanterarfunktionen

För att Klaviyo ska kunna utföra den kod du skriver måste den förpackas i en funktion som heter "handler" och som accepterar 2 parametrar:

  • Händelse
    Består av händelsen data som är kopplad till den utlösande händelsen i JSON:API -format. Om utlösaren inte är händelsebaserad (t.ex. Added to lista) kommer värdet på denna parameter att vara None eller Null beroende på språk.
  • Sammanhang
    Innehåller ytterligare metadata om funktionsutförandet, inklusive den profil som är kopplad till funktionsinkallningen. Du kan komma åt profilobjektet via context. profil i Javascript eller context["profil" ] i Python.

Nedan visas exempel på de händelse- och kontextparametrar som skickas till hanterarfunktionen.

Exempel på händelseformat

{
 {
 "data" : {
 " type": "event",
 " id": "7S2q9haejYG",
 " attributes": {
 " tidsstämpel": 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": {
 profildata" : {
          "type": "profile",
          "id": "123456"
        },
 " länkar": {
          "self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/profile/",
          "related": "https://a.klaviyo.com/api/events/7S2q9haejYG/profile/"
        }
      },
 " mättal": {
 "data" : {
          "type": "metric",
          "id": "4Tdup6"
        },
 " länkar": {
          "self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/metric/",
          "related": "https://a.klaviyo.com/api/events/7S2q9haejYG/metric/"
        }
      }
    },
 " länkar": {
      "self": "https://a.klaviyo.com/api/events/7S2q9haejYG/"
    }
  }
}

Exempel på format för sammanhang 

{
 " company_id": "XXXXX",
 " trigger": {"type": "event", "uid": "123456"},
 " function_id": "123456",
}
Moduler

Moduler

På fliken Modules kan du välja bland de mest populära förbyggda modulerna (dvs. tredjepartspaket som lägger till funktioner i dina funktioner). 

Om du vill lägga till en extern modul som ska användas i din kod väljer du knappen Add module:

Knapp för att lägga till modul

I modalrutan som visas kan du söka och välja den modul du vill lägga till: 

Lägg till modal modul

När du har lagt till modulen kan du använda den med den kod du skriver i Klaviyo.

Du bör läsa den externa modulens egen dokumentation för information om hur du använder den.

Tillagda moduler

Klaviyo-modulen

Alla Code-funktioner levereras med ett anpassat Klaviyo paket som är förinstallerat i din Code-miljö. Denna modul gör det möjligt för dina funktioner att få tillgång till data i ditt Klaviyo Konto utan att behöva tillhandahålla några referenser, till exempel en API-nyckel.

API för modulen Klaviyo modulen beror på om din kod är skriven i Python eller Javascript.

Python Klaviyo modul

Python Klaviyo modul

Den förinstallerade modulens API Klaviyo modulen är densamma som Klaviyo SDK-objektet som du normalt skulle instansiera med Klaviyo-API Python-modulen. Du kan tänka på Klaviyo modulen som en förinställd Klaviyo SDK-klient.

I ett traditionellt arbetsflöde skulle du till exempel först instansiera en ny Klaviyo SDK-klient genom att skicka en API-nyckel till konstruktören och sedan använda det resulterande SDK-objektet.

från klaviyo_api importera KlaviyoAPI
importera os
def handler(händelse, sammanhang):
Klaviyo = KlaviyoAPI(api_key=os.getenv("KLAVIYO_API_KEY"))
print(Klaviyo.mättal.get_metrics())

Med Code behöver du bara importera Klaviyo -objektet så sköts autentiseringen åt dig.

importör Klaviyo

def handler(händelse, sammanhang):
print(Klaviyo.mättal.get_metrics())

Visa tillgängliga Klaviyo-objekt och deras metoder.

Javascript Klaviyo modul

Javascript Klaviyo modul

När du använder den förinstallerade Klaviyo modulen i dina Javascript-funktioner, importera den specifika Klaviyo funktioner som du vill komma åt med hjälp av curly brace syntax från Klaviyo modulen. Använd dem sedan som du normalt skulle API göra med ett -objekt med hjälp av Klaviyo-API Javascript-modulen.

importera { Metrics } från 'Klaviyo';
export default async (event, context) => {
console.log(await Metrics.getMetrics())
}

Visa tillgängliga Klaviyo-objekt och deras metoder. 

 

Miljövariabler 

Miljövariabler 

På fliken Miljövariabler kan du ställa in nyckelvärdepar som din kod i Klaviyo kan referera till när den körs. Dessa kan användas för att lagra information som inloggningsuppgifter och hemliga nycklar så att dina funktioner kan komma åt dem när de körs. 

Om du vill lägga till en miljövariabel klickar du på knappen Lägg till en variabel: 

Knappen Lägg till miljövariabler

I modalrutan som visas kan du ange ett nyckelvärdepar för din miljövariabel. 

Nyckel-värde-par för miljövariabel

När miljövariablerna har skapats visas de på sidan och kan användas i din kod. 

Om du vill komma åt dina miljövariabler i koden använder du os.getenv("Key") för Python eller process.env.KEY för Node.js.

Skapade miljövariabler

Om du vill 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

Testutdata

På fliken Test output i Code kan du testa din kod med aktuella händelser för att bekräfta att utdata beter sig som förväntat. 

För att testa din funktion:

  1. Välj knappen Kör test:
    Knappen Kör test
  2. I modalrutan som visas väljer du en händelse att testa med. Du kan välja bland de 10 senaste händelserna samla in i Klaviyo.
    Aktuella händelser att testa med
  3. När du har valt en händelse att testa med visas testresultatet:Testutdata
Loggar

Loggar

Fliken Loggar visar hur det går för dina pågående kodfunktioner. Du kommer att få se:

  • Status
    Hur långt en funktion har kommit i sitt utförande. 
  • Svarstid
    Den tid det tar för din kod att exekvera som svar på en händelse.
  • Datum
    En tidsstämpel för när funktionen utfördes. 
Gränsvärden för priser

Gränsvärden för priser

Klaviyo-koden har följande hastighetsgränser:

  • Timeout för funktioner
    Funktioner i kod kan utföras i upp till 15 sekunder innan de timeoutas.
  • Begränsning av funktionens hastighet
    Funktioner i Code tillåter upp till 25 samtidiga körningar per funktion.
Distribuera kod 

Distribuera kod 

För att distribuera koden som du skriver i redigeraren, växla statusrullgardinsmenyn till Live

Växla för att distribuera kod

När du har satt igång kommer koden du skriver att exekveras varje gång ämneshändelsen samlas in i Klaviyo.

När en funktion är aktiverad kan det dröja upp till 15 minuter innan händelser börjar utlösa funktionen.

Exempel på lösning

Exempel på lösning

Nedan visas ett exempel på en anpassad lösning som implementerats med Code.

I exemplet är eventet data inställt som profilegenskaper så att det kan användas i riktad e-post och i segmentering. Den anpassade händelsen Booked shoot samlas in i Klaviyo när kund bokar en fotografering med varumärket, och data om bokningsstaden och tillhörande URL anges som profilegenskaper på respektive profil.

En egenskap som heter Recent bookings skapas också, som butik data från de 5 senaste Booked shoot-händelserna så att den kan loopas igenom och nås i en e-postmallar.

Kod

Kod

Python-koden för den här lösningen skrivs i kodredigeraren och körs direkt av Klaviyo.

Kod_uppdateringar.jpg

Exempel på kod

Exempel på kod

Moduler

Moduler

I detta exempel används den inbyggda Klaviyo modul används. Modulen Klaviyo är beroende av att modulen Klaviyo-API läggs till i funktionen. När du har lagt till modulen Klaviyo kommer modulen att hantera autentisering åt dig, så ingen API-nyckel behövs.

Miljövariabler

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 när de körs. I det här exemplet anges följande nyckel-värdepar:

  • MAX_EGENSKAPER_ATT_LAGRA
    En miljövariabel som används för att definiera det maximala antalet egenskaper som ska lagras för exempelfunktionen.
Testning

Testning

När du skapar funktionen för att ställa in händelsen data som profilegenskaper används fliken Testutdata för att verifiera den förväntade utdata.

test_output.jpg

Loggar

Loggar

När funktionen har skapats och testats visar fliken Loggar funktionens hälsostatus när den körs som svar på händelser i samband med bokad skjutning

Timmerstockar.jpg

Utfall

Utfall

Med denna kodfunktion på plats, när kund Registrera gräver efter fotograferingar och utlöser den anpassade händelsen Bokad fotografering, kommer händelsen data att butik på kundprofilen för användning i segmentering och riktade kampanjer. 

Implementering av recept  

Implementering av recept  

Recept i kod gör att du kan implementera färdiga lösningar utan behov av anpassad utveckling.

För att implementera ett recept i din Klaviyo Konto:

  1. Välj knappen Skapa funktion på kodsidan.
  2. Välj det recept som du vill implementera i ditt Konto. Du kommer till redigeraren där du kan se koden för det valda receptet, tillsammans med en beskrivning av vad funktionen gör.
  3. Klicka på knappen Välj för att fortsätta.
    Valutaomvandlare recept i Klaviyo
  4. Välj ett namn för funktionen och den trigger som ska få den att exekvera. Körtiden ställs in automatiskt baserat på koden för receptet.
  5. Välj funktionsknappen Skapa.
  6. När funktionen har skapats ställer du in de relevanta miljövariablerna så att funktionen har de data den behöver för att köras.
  7. 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 namnpreferenser och data i dina evenemang. Se instruktionerna för receptet för att se vilka fält som kan bytas namn på och redigeras.

Ytterligare resurser 

Ytterligare resurser 

Komma igång med avancerad Klaviyo Data Platform
Förstå de olika webhook som finns tillgängliga i Klaviyo

Var den här artikeln till hjälp?
Använd endast detta formulär för feedback på artiklar. Lär dig hur du kontaktar support.

Utforska mer från Klaviyo

Community
Få kontakt med kollegor, partner och Klaviyo-experter för att hitta inspiration, dela insikter och få svar på alla dina frågor.
Live-utbildning
Delta i en livesession med Klaviyo-experter för att lära dig om bästa praxis, hur man konfigurerar viktiga funktioner och mer.
Support

Få tillgång till support via ditt konto.

E-postsupport (gratis provperiod och betalkonton) Tillgänglig dygnet runt, alla dagar i veckan

Chatt/virtuell hjälp
Tillgängligheten varierar beroende på plats och abonnemangstyp