Aan de slag met Code
Wat je leert
Leer meer over Code en hoe je aangepaste functies kunt maken die direct door Klaviyo worden uitgevoerd.
Code vereist aangepaste ontwikkeling en Klaviyo's supportteam kan geen hands-on assistentie bieden. Als je geen ontwikkelaar in je team hebt en het niet prettig vindt om zelf code te schrijven, overweeg dan om een Klaviyo partner om hulp te vragen.
Voordat je van start gaatVoordat je van start gaat
Advanced Klaviyo Data Platform is niet inbegrepen in Klaviyo's standaard marketingapplicatie en er is een abonnement nodig om toegang te krijgen tot de bijbehorende functionaliteit. Ga naar onze factureringgids om te leren hoe je dit abonnement kunt kopen.
Wat is code?
Code inschakelen om aangepaste functies uit te voeren als reactie op gebeurtenissen verzamelen in Klaviyo. Je kunt je eigen Javascript- of Python-functies schrijven in de Code-editor, waarna ze direct in het platform worden uitgevoerd.
Met Code kun je gegevens naar je externe systemen sturen zonder dat je een openbaar HTTP eindpunt hoeft in te stellen om webhooks te ontvangen, en kun je aangepaste functionaliteit bouwen die wordt geactiveerd als reactie op het optreden van een gebeurtenis. Je hebt ook toegang tot veel populaire kant-en-klare modules om het maken van aangepaste oplossingen te vergemakkelijken.
OnderwerpenOnderwerpen
Met Code kun je aangepaste functies uitvoeren als reactie op elke gebeurtenis die kan worden opgevraagd via de Get Events API.
Deze omvatten:
- Email gebeurtenissen (bijv. geklikte e-mail, e-mail gemarkeerd als spam )
- sms-gebeurtenissen (bijv. Verzonden sms, Ontvangen sms)
- pushmeldingsgebeurtenissen (bijv. Ontvangen push, Afgeslagen push)
- Gebeurtenissen van integraties (d.w.z. gebeurtenissen van integraties van de eerste partij die door Klaviyo zijn gemaakt)
- API gebeurtenissen (d.w.z. gebeurtenissen gesynchroniseerd via Klaviyo's API)
Klaviyo Code support de volgende gebeurtenissen niet als onderwerpen:
- E-mail geopend
- Email ontvangen
Code-interface
Om toegang te krijgen tot Code, navigeer je naar het tabblad Code onder Geavanceerd Klaviyo Data Platform > gegevens Beheer > Code.
Om een aangepaste functie te maken, selecteer je de knop Functie maken :
Je komt op de pagina Recepten , waar je een kant-en-klare oplossing kunt kiezen om uit te voeren, of een lege Python of Node.js functie.
Als je een bestaand recept selecteert, zie je de code-editor met de code voor de oplossing, samen met een beschrijving van de functionaliteit.
Als je een lege functie selecteert zodat je je eigen aangepaste oplossingen kunt maken, dan verschijnt het detailscherm waarin je dat kunt doen:
-
Geef je functie een naam
Een naam om je functie te identificeren. -
Selecteer een onderwerp voor je functie
De gebeurtenis die de uitvoering van je code triggert . -
Selecteer een runtime
De runtime-omgeving waarin de code wordt uitgevoerd (bijv. Python of Node.js).
Nadat je de vereiste selecties hebt gemaakt en de knop Functie maken hebt geselecteerd, kom je in een interface met de volgende tabbladen:
- Redacteur
- Testuitgang
- Logboeken
Machtigingen verlenen
De eerste keer dat je een functie aanmaakt via Code, wordt je gevraagd om de OAuth-toepassing van Code te verifiëren. Dit is nodig zodat je Codefuncties toegang hebben tot gegevens in je Klaviyo account.
Zodra je toegang hebt verleend, kom je in de Code editor terecht.
EditorEditor
Op de Editor-pagina in Code splitst de pagina zich op in 3 tabbladen:
-
Code
Het code tabblad heeft een editor waar je Python of Javascript functies kunt schrijven. -
Modules
Modules zijn pakketten van derden die functionaliteit toevoegen aan je functies. -
Omgevingsvariabelen
Omgevingsvariabelen zijn de sleutel-waarde paren die je functie benadert wanneer deze draait.
Code
Op het tabblad Code zie je een editor die je kunt gebruiken om Python of Javascript functies te schrijven die worden uitgevoerd als reactie op het geselecteerde onderwerp.
Parameters van de afhandelingsfunctie
Om Klaviyo de code die u schrijft te laten uitvoeren, moet deze verpakt zijn in een functie met de naam "handler" die 2 parameters accepteert:
-
Gebeurtenis
Bestaat uit de gebeurtenisgegevens die bij de gebeurtenis horen die de gebeurtenis teweegbrengt in JSON:API formaat. Als de trigger niet op een gebeurtenis is gebaseerd (bijv. Toegevoegd aan lijst), dan is de waarde van deze parameter Geen of Nul, afhankelijk van de taal. -
Context
Bevat aanvullende metagegevens over de uitvoering van de functie, inclusief het profiel dat bij de aanroep van de functie hoort. Je hebt toegang tot het profielobject via context.profiel in Javascript of context["profiel" ] in Python.
Hieronder staan voorbeelden van de gebeurtenis- en contextparameters die worden doorgegeven aan de handlerfunctie.
Voorbeeld formaat gebeurtenis
{
{
" gegevens": {
" type": "gebeurtenis",
"id" : "7S2q9haejYG",
" attributen": {
" 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"
},
" relaties": { profielgegevens":, {
"type": "profile",
"id": "123456"
} " links":, {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/profile/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/profile/"
}
} " meetwaarde": {
" gegevens":, {
"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/"
}
}
}
Voorbeeld context formaat
{
" company_id": "XXXXX",
" trigger": {"type": "event", "uid": "123456"},
" function_id": "123456",
}
ModulesModules
Op het tabblad Modules kun je kiezen uit de populairste voorgebouwde modules (d.w.z. pakketten van derden die mogelijkheden toevoegen aan je functies).
Om een externe module toe te voegen voor gebruik in je code, selecteer je de knop Module toevoegen:
In het venster dat verschijnt kun je de module zoeken en selecteren die je wilt toevoegen:
Eenmaal toegevoegd, kun je de module gebruiken met de code die je in Klaviyo schrijft.
Raadpleeg de eigen documentatie van de externe module voor informatie over het gebruik ervan.
De module Klaviyo
Alle Code-functies worden geleverd met een aangepast Klaviyo pakket dat vooraf is geïnstalleerd in je Code-omgeving. Met deze module kunnen je functies toegang krijgen tot de gegevens in je Klaviyo account zonder dat je referenties hoeft op te geven, zoals een API-sleutel.
De API van de Klaviyo module hangt af van of je code in Python of Javascript is geschreven.
Python Klaviyo modulePython Klaviyo module
De API van de vooraf geïnstalleerde Klaviyo module is hetzelfde als het Klaviyo SDK-object dat je normaal zou instantiëren met de Klaviyo-API Python-module. Je kunt de Klaviyo module zien als een vooraf ingestelde Klaviyo SDK-client.
In een traditionele workflow zou je bijvoorbeeld eerst een nieuwe Klaviyo SDK-client instantiëren door een API-sleutel door te geven aan de constructor, en vervolgens het resulterende SDK-object gebruiken.
van klaviyo_api importeer KlaviyoAPI
os importeren
def handler(event, context):
Klaviyo = KlaviyoAPI(api_key=os.getenv("KLAVIYO_API_KEY"))
print(Klaviyo.meetwaarde.get_metrics())
Met Code hoef je alleen maar het Klaviyo object te importeren en de verificatie wordt voor je uitgevoerd.
importeren Klaviyo
def handler(gebeurtenis, context):
print(Klaviyo.meetwaarde.get_metrics())
Bekijk de beschikbare Klaviyo objecten en hun methoden.
Javascript Klaviyo moduleJavascript Klaviyo module
Als je de vooraf geïnstalleerde Klaviyo module in je Javascript functies, importeer dan de specifieke Klaviyo functies die je wilt gebruiken met de accoladesyntaxis van de Klaviyo module. Gebruik ze dan zoals je normaal een object API zou gebruiken met de Klaviyo-API Javascript module.
importeer { Metrics } van 'Klaviyo';
export standaard async (gebeurtenis, context) => {
console.log(await Metrics.getMetrics())
}
Bekijk de beschikbare Klaviyo objecten en hun methoden.
Omgevingsvariabelen
Op het tabblad Omgevingsvariabelen kunt u sleutelwaardeparen instellen waarnaar uw code in Klaviyo kan verwijzen wanneer deze wordt uitgevoerd. Deze kunnen worden gebruikt om informatie zoals referenties en geheime sleutels op te slaan, zodat je functies er tijdens het uitvoeren toegang toe hebben.
Om een omgevingsvariabele toe te voegen, selecteer je de knop Een variabele toevoegen:
In het venster dat verschijnt, kun je een sleutelwaardepaar instellen voor je omgevingsvariabele.
Eenmaal gemaakt, worden de omgevingsvariabelen op de pagina weergegeven en kunnen ze worden gebruikt in je code.
Om toegang te krijgen tot je omgevingsvariabelen in je code, gebruik je os.getenv("Key") voor Python, of process.env.KEY voor Node.js.
Om update de waarde voor een bestaande omgevingsvariabele te wijzigen, moet je een nieuwe variabele maken met dezelfde sleutel als waarvoor je update de waarde wilt wijzigen.
Uitvoer testen
Op het tabblad Testuitvoer in Code kun je je code testen met recente gebeurtenissen om te bevestigen dat de uitvoer zich gedraagt zoals verwacht.
Om je functie te testen:
- Selecteer de knop Test uitvoeren:
- Selecteer in het venster dat verschijnt een gebeurtenis om mee te testen. Je kunt kiezen uit de 10 meest recente gebeurtenissen verzamelen in Klaviyo.
- Nadat je een gebeurtenis hebt geselecteerd om mee te testen, wordt de testuitvoer getoond:
Logboeken
Het tabblad Logs toont de gezondheid van je lopende Codefuncties. Je zult het zien:
-
Status
De voortgang van de uitvoering van een functie. -
Reactietijd
De tijd die je code nodig heeft om uit te voeren als reactie op een gebeurtenis. -
Datum
Een tijdstempel voor wanneer de functie werd uitgevoerd.
Tariefgrenzen
Klaviyo code heeft de volgende tarieflimieten:
-
Functie time-out
Functies in Code kunnen maximaal 15 seconden worden uitgevoerd voordat ze een time-out krijgen. -
Limiet functiesnelheid
Functies in Code staan maximaal 25 gelijktijdige uitvoeringen per functie toe.
Code uitrollen
Om de code die je in de editor schrijft te implementeren, zet je de status dropdown op Live.
Eenmaal ingesteld op live, zal de code die je schrijft elke keer worden uitgevoerd wanneer het topic event wordt verzameld in Klaviyo.
Wanneer een functie live wordt gezet, kan er tot 15 minuten vertraging zijn voordat gebeurtenissen de functie activeren.
Voorbeeldoplossing
Hieronder zie je een voorbeeld van een aangepaste oplossing die wordt geïmplementeerd met Code.
In het voorbeeld worden gebeurtenisgegevens ingesteld als profieleigenschappen, zodat ze kunnen worden gebruikt in gerichte e-mail en in segmentatie. De aangepaste gebeurtenis Geboekte shoot wordt verzameld in Klaviyo wanneer een klant een shoot boekt bij het merk en gegevens over de boekingsstad en bijbehorende URL worden ingesteld als profieleigenschappen op het betreffende profiel.
Er wordt ook een eigenschap gemaakt met de naam Recent boekingen , die gegevens bevat van de 5 meest recente geboekte shootgebeurtenissen, zodat je er doorheen kunt lopen en ze kunt openen in een e-mailtemplate.
CodeCode
De Python code voor deze oplossing is geschreven in de Code editor en wordt direct uitgevoerd door Klaviyo.
Voorbeeldcode
ModulesModules
In dit voorbeeld wordt de ingebouwde Klaviyo module gebruikt. De module Klaviyo module is afhankelijk van de toevoeging van de Klaviyo-API module aan de functie. Eenmaal toegevoegd zal de Klaviyo module de verificatie voor je af, dus er is geen API-sleutel nodig.
OmgevingsvariabelenOmgevingsvariabelen
Omgevingsvariabelen kunnen gebruikt worden om informatie zoals referenties en geheime sleutels op te slaan, zodat je functies er toegang toe hebben tijdens het uitvoeren. Voor dit voorbeeld wordt het volgende sleutelwaardepaar ingesteld:
-
MAX_EIGENSCHAPPEN_OPSLAAN
Een omgevingsvariabele die wordt gebruikt om het maximum aantal eigenschappen te definiëren dat moet worden opgeslagen voor de voorbeeldfunctie.
Testen
Tijdens het maken van de functie om gebeurtenisgegevens als profieleigenschappen in te stellen, wordt het tabblad Testuitvoer gebruikt om de verwachte uitvoer te controleren.
Logboeken
Nadat de functie is gemaakt en getest, toont het tabblad Logboeken de gezondheidsstatus van de functie terwijl deze wordt uitgevoerd als reactie op Geboekte opnamegebeurtenissen .
Resultaat
Met deze Code-functie als klant Aanmelden voor shoots en de aangepaste gebeurtenis Geboekte shoot activeren, worden de gebeurtenisgegevens op het klantprofiel geplaatst voor gebruik in segmentatie en gerichte campagnes.
Recepten implementerenRecepten implementeren
Met Recepten in Code kun je kant-en-klare oplossingen implementeren zonder dat aangepaste ontwikkeling nodig is.
Om een Recept te implementeren in je Klaviyo account:
- Selecteer de knop Functie maken op de Codepagina.
- Kies het Recept dat je wilt implementeren in je account. Je komt in de editor waar je de code voor het geselecteerde Recept kunt zien, samen met een beschrijving van wat de functie doet.
- Klik op de knop Selecteren om verder te gaan.
- Kies een naam voor de functie en de trigger die ervoor zorgt dat hij wordt uitgevoerd. De runtime wordt automatisch ingesteld op basis van de code voor het Recept.
- Selecteer de knop Functie maken.
- Zodra de functie is gemaakt, stel je de relevante omgevingsvariabelen in zodat de functie de gegevens heeft die hij nodig heeft om te draaien.
- Het Recept kan nu worden getest en ingesteld op Live.
Voor recepten moet je mogelijk bepaalde velden update aanpassen aan je gewenste naamvoorkeuren en de gegevens in je gebeurtenissen. Zie de instructies bij het Recept om te zien welke velden je kunt hernoemen en bewerken.
Extra hulpbronnen
Aan de slag met Advanced Klaviyo Data Platform
Begrijp de verschillende webhooks die beschikbaar zijn in Klaviyo