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:

  1. E-post öppnades
  2. 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 :

Create a function button
Create a function button

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.

image (9).jpg
image (9).jpg

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

image (10).jpg
image (10).jpg

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).
3.11.jpg
3.11.jpg

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.

3.11(2).jpg
3.11(2).jpg
js.jpg
js.jpg

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

text
{
    {
  "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

text
{
    "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:

Add module button
Add module button

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

Add module modal
Add module modal

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.

Added modules
Added modules
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.

text
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.

text
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 .

text
import { Metrics } from 'klaviyo';export default async (event, context) => {  console.log(await Metrics.getMetrics())}

Visa de tillgängliga Klaviyo-objekten och deras metoder.

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:

Add environment variables button
Add environment variables button

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

Key-value pairs set for environment variable
Key-value pairs set for environment variable

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.

Created environment variables
Created environment variables

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:

  1. Välj knappen Kör test:
Run test button
Run test button
  1. 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.
Recent events to test with
Recent events to test with
  1. När du har valt en händelse att testa med visas testresultatet:
Test output
Test output

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.

Toggle to deploy code
Toggle to deploy code

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.

Code_updates.jpg
Code_updates.jpg

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.

test_output.jpg
test_output.jpg

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.

Logs.jpg
Logs.jpg

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:

  1. Välj knappen Skapa funktion på sidan Kod.
  2. 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.
  3. Klicka på knappen Välj för att fortsätta.
Currency converter recipe in Klaviyo
Currency converter recipe in Klaviyo
  1. 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.
  2. Välj knappen Skapa funktion.
  3. 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.
  4. 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.

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.
Partners
Anlita en Klaviyo-certifierad expert för att hjälpa dig med en specifik uppgift eller för löpande marknadsföringshantering.
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