Pierwsze kroki z kodem
Czego się dowiesz
Dowiedz się więcej o kodzie i o tym, jak tworzyć niestandardowe funkcje, które są wykonywane bezpośrednio przez Klaviyo.
Kod wymaga niestandardowego rozwoju, a zespół ds. pomocy Klaviyonie jest w stanie zaoferować praktycznej pomocy. Jeśli nie masz programisty w swoim zespole i nie czujesz się komfortowo pisząc kod samodzielnie, rozważ skontaktowanie się z partnerem Klaviyo w celu uzyskania pomocy.
Kilka słów na początekKilka słów na początek
Zaawansowana platforma danych klientów Klaviyo nie jest zawarta w standardowej aplikacji marketingowej Klaviyo, a dostęp do powiązanych funkcji wymaga subskrypcji. Przejdź do naszego przewodnika po rozliczeniach, aby dowiedzieć się, jak kupić ten plan.
Czym jest kod?
Kod włącza Cię do wykonywania niestandardowych funkcji w odpowiedzi na zdarzenia zbierane w Klaviyo. Możesz pisać własne funkcje Javascript lub Python w edytorze kodu, które są następnie wykonywane bezpośrednio na platformie.
Kod umożliwia wysyłanie danych do zewnętrznych systemów bez konieczności konfigurowania publicznego punktu końcowego HTTP na potrzeby odbierania elementów webhooków oraz tworzenie niestandardowych funkcji, które są uruchamiane w reakcji na wystąpienie zdarzenia. Można również uzyskać dostęp do wielu popularnych gotowych modułów, co ułatwi tworzenie niestandardowych rozwiązań.
W tym artykule znajdziesz instrukcję tworzenia niestandardowych funkcji za pomocą kodu.
Tematy
Kod umożliwia wykonywanie niestandardowych funkcji w odpowiedzi na dowolne zdarzenie, o które można zapytać za pośrednictwem interfejsu API Get Events.
Należą do nich:
- zdarzenia e-mail (np. kliknięcie wiadomości e-mail, oznaczenie wiadomości e-mail jako spam )
- Zdarzenia SMS (np. wysłane wiadomości SMS, odebrane wiadomości SMS)
- powiadomienie o zdarzeniach push (np. Odebrane push, Odbite push)
- Zdarzenia z integracji (tj. zdarzenia z własnych integracji utworzonych przez Klaviyo)
- API zdarzenia (tj. zdarzenia zsynchronizowane za pośrednictwem interfejsu API Klaviyo)
Klaviyo Kod nie obsługuje następujących zdarzeń jako tematów:
- Otwarto e-mail
- Otrzymano wiadomość e-mail
Interfejs kodu
Aby uzyskać dostęp do Kodu, przejdź do zakładki Kod w Zaawansowana platforma danych klientów Klaviyo > dane Management > Kod.
Aby utworzyć funkcję niestandardową, wybierz przycisk Utwórz funkcję :
Zostaniesz przeniesiony na stronę Recipes , gdzie możesz wybrać gotowe rozwiązanie do wykonania lub pustą funkcję Python lub Node.js.
Jeśli wybierzesz istniejącą recepturę, zobaczysz edytor kodu z kodem rozwiązania wraz z opisem funkcjonalności.
Jeśli wybierzesz pustą funkcję, aby móc tworzyć własne niestandardowe rozwiązania, pojawi się okno dialogowe Szczegóły, w którym możesz to zrobić:
-
Nazwij swoją funkcję
Nazwa identyfikująca Twoją funkcję. -
Wybierz temat dla swojej funkcji
Zdarzenie, które uruchomi wykonanie twojego kodu. -
Wybierz środowisko uruchomieniowe
Środowisko uruchomieniowe, w którym wykonywany jest kod (np. Python lub Node.js).
Po dokonaniu wymaganych wyborów i wybraniu przycisku Utwórz funkcję , zostaniesz przeniesiony do interfejsu z następującymi zakładkami:
- Edytor
- Wyjście testowe
- Dzienniki
Przyznawanie uprawnień
Gdy po raz pierwszy utworzysz funkcję za pośrednictwem Code, zostaniesz poproszony o uwierzytelnienie aplikacji Code OAuth. Jest to wymagane, aby Twoje funkcje Code miały dostęp do danych na Twoim koncie Klaviyo.
Po przyznaniu dostępu zostaniesz przeniesiony do edytora kodu.
EdytorEdytor
Na stronie Edytora w Kodzie, podzielisz stronę na 3 zakładki:
-
Kod
Zakładka kodu zawiera edytor, w którym możesz pisać funkcje Python lub Javascript. -
Moduły
Moduły to pakiety innych firm, które dodają funkcjonalność do twoich funkcji. -
Zmienne środowiskowe
Zmienne środowiskowe to pary klucz-wartość, do których twoja funkcja uzyskuje dostęp podczas działania.
Kod
Na karcie Kod zobaczysz edytor, którego możesz użyć do napisania funkcji Python lub Javascript, które są wykonywane w odpowiedzi na wybrany temat.
Parametry funkcji obsługi
Aby Klaviyo mogło wykonać napisany przez Ciebie kod, musi on zostać opakowany w funkcję o nazwie "handler", która przyjmuje 2 parametry:
-
Zdarzenie
Zawiera dane zdarzenia powiązane ze zdarzeniem wyzwalającym w formacie JSON:API. Jeśli wyzwalacz nie jest oparty na zdarzeniach (np. Dodano do listy), wówczas wartość tego parametru będzie wynosić Brak lub Null w zależności od języka. -
Kontekst
Zawiera dodatkowe metadane dotyczące wykonania funkcji, w tym profil powiązany z wywołaniem funkcji. Możesz uzyskać dostęp do obiektu profil poprzez context.profil w Javascript lub context["profil" ] w Python.
Poniżej znajdują się przykłady parametrów zdarzenia i kontekstu, które są przekazywane do funkcji obsługi.
Przykładowy format zdarzenia
{
{
" dane": {
" 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"
},
" relacje": {
" dane profilowe": {
"type": "profile",
"id": "123456"
},
" linki": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/profile/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/profile/"
}
},
" metryka": {
" dane": {
"type": "metric",
"id": "4Tdup6"
},
" linki": {
"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/"
}
}
}
Przykładowy format kontekstu
{
" company_id": "XXXXX",
" trigger": {"type": "event", "uid": "123456"},
" function_id": "123456",
}
ModułyModuły
Na karcie Moduły możesz wybierać spośród najpopularniejszych gotowych modułów (tj. pakietów innych firm, które dodają możliwości do twoich funkcji).
Aby dodać zewnętrzny moduł do użycia w kodzie, wybierz przycisk Dodaj moduł:
W wyświetlonym oknie możesz wyszukać i wybrać moduł, który chcesz dodać:
Po dodaniu możesz używać modułu z kodem, który piszesz w Klaviyo.
Powinieneś zapoznać się z natywną dokumentacją modułu zewnętrznego, aby uzyskać informacje na temat korzystania z niego.
Moduł Klaviyo
Wszystkie funkcje Code są dostarczane z niestandardowym Klaviyo który jest preinstalowany w twoim środowisku Code. Moduł ten umożliwia Twoim funkcjom dostęp do danych na Twoim koncie Klaviyo bez konieczności podawania jakichkolwiek danych uwierzytelniających, takich jak klucz API.
Adres API modułu Klaviyo zależy od tego, czy Twój kod jest napisany w Pythonie, czy w Javascript.
Python Klaviyo modułPython Klaviyo moduł
Adres API preinstalowanego modułu Klaviyo jest taki sam jak obiekt Klaviyo SDK, który normalnie utworzyłbyś za pomocą modułu Klaviyo-API Python. Możesz myśleć o Klaviyo jako o wstępnie zdefiniowanym Klaviyo SDK.
Na przykład w tradycyjnej organizacji pracy najpierw utworzysz instancję nowego klienta Klaviyo SDK, przekazując klucz API do konstruktora, a następnie użyjesz wynikowego obiektu SDK.
from klaviyo_api importuj importuj KlaviyoAPI
importuj importuj os
def handler(event, context):
Klaviyo = KlaviyoAPI(api_key=os.getenv("KLAVIYO_API_KEY"))
print(Klaviyo.metryka.get_metrics())
Dzięki Code wystarczy zaimportować zaimportować obiekt Klaviyo, a uwierzytelnienie zostanie wykonane za Ciebie.
importuj import Klaviyo
def handler(event, context):
print(Klaviyo.metryka.get_metrics())
Wyświetl dostępne obiekty Klaviyo i ich metody.
Javascript Klaviyo modułJavascript Klaviyo moduł
Podczas korzystania z preinstalowanego modułu Klaviyo w swoich funkcjach Javascript, zaimportuj konkretne Klaviyo funkcje, do których chcesz uzyskać dostęp, używając składni nawiasów klamrowych z modułu Klaviyo modułu. Następnie użyj ich tak, jak normalnie używałbyś API obiektu za pomocą modułuKlaviyo-API Javascript.
importuj importuj { Metrics } z 'Klaviyo';
export default async (event, context) => {
console.log(await Metrics.getMetrics())
}
Wyświetl dostępne obiekty Klaviyo i ich metody.
Zmienne środowiskowe
Zakładka Zmienne środowiskowe umożliwia ustawienie par klucz-wartość, do których Twój kod w Klaviyo może się odwoływać podczas działania. Mogą one być używane do przechowywania informacji, takich jak dane uwierzytelniające i tajne klucze, dzięki czemu twoje funkcje mogą uzyskać do nich dostęp podczas ich działania.
Aby dodać zmienną środowiskową, wybierz przycisk Dodaj zmienną:
W wyświetlonym oknie możesz ustawić parę klucz-wartość dla zmiennej środowiskowej.
Po utworzeniu zmienne środowiskowe zostaną wyświetlone na stronie i mogą być używane w twoim kodzie.
Aby uzyskać dostęp do zmiennych środowiskowych w kodzie, użyj os.getenv("Key") dla Pythona lub process.env.KEY dla Node.js.
Aby zaktualizować wartość istniejącej zmiennej środowiskowej, musisz utworzyć nową zmienną z tym samym kluczem, dla którego chcesz zaktualizować wartość.
Wyniki testu
Zakładka Testuj dane wyjściowe w Kodzie pozwala na przetestowanie twojego kodu z ostatnimi zdarzeniami, aby potwierdzić, że dane wyjściowe zachowują się zgodnie z oczekiwaniami.
Aby przetestować swoją funkcję:
- Wybierz przycisk Uruchom test:
- W wyświetlonym oknie wybierz zdarzenie do przetestowania. Możesz wybierać spośród 10 ostatnich wydarzeń zbierać w Klaviyo.
- Po wybraniu zdarzenia do przetestowania wyświetlony zostanie wynik testu:
Dzienniki
Zakładka Logi pokazuje kondycję twoich bieżących funkcji Code. Zobaczysz:
-
Status
Postęp wykonywania funkcji. -
Czas reakcji
Czas potrzebny na wykonanie kodu w odpowiedzi na zdarzenie. -
Data
Znacznik czasu wykonania funkcji.
Limity stawek
Kod Klaviyo ma następujące limity stawek:
-
Limit czasu funkcji
Funkcje w Kodzie mogą być wykonywane przez maksymalnie 15 sekund przed upływem limitu czasu. -
Limit szybkości funkcji
Funkcje w Code pozwalają na maksymalnie 25 jednoczesnych wykonań na funkcję.
Wdrażanie kodu
Aby wdrożyć kod napisany w edytorze, przełącz menu rozwijane statusu na pozycję Live.
Po ustawieniu na żywo, napisany przez Ciebie kod będzie wykonywany za każdym razem, gdy zdarzenie tematyczne zostanie zebrane w Klaviyo.
Gdy funkcja jest ustawiona jako aktywna, może wystąpić do 15 minut opóźnienia, zanim zdarzenia zaczną uruchamiać funkcję.
Przykładowe rozwiązanie
Poniżej znajduje się przykład niestandardowego rozwiązania zaimplementowanego za pomocą Code.
W przykładzie dane zdarzenia są ustawione jako właściwości profilu, dzięki czemu mogą być używane w ukierunkowanych wiadomościach e-mail i segmentacji. Zdarzenie niestandardowe Zarezerwowana sesja jest zbierane w witrynie Klaviyo, gdy klient zarezerwuje sesję z marką, a dane o mieście rezerwacji i powiązanym adresie URL są ustawiane jako właściwości profilu na odpowiednim profilu.
Tworzona jest również właściwość o nazwie Ostatnie rezerwacje , która sklep dane z 5 ostatnich zarezerwowanych sesji, dzięki czemu można ją zapętlić i uzyskać do niej dostęp w szablonie e-mailowym.
KodKod
Kod Python dla tego rozwiązania jest napisany w edytorze Code i jest wykonywany bezpośrednio przez Klaviyo.
Przykładowy kod
ModułyModuły
W tym przykładzie użyto wbudowanego modułu Klaviyo moduł jest używany. Moduł Klaviyo polega na dodaniu do funkcji modułu Klaviyo-API. Po dodaniu, moduł Klaviyo moduł obsłuży uwierzytelnienie za Ciebie, więc klucz API nie jest potrzebny.
Zmienne środowiskoweZmienne środowiskowe
Zmienne środowiskowe mogą być używane do przechowywania informacji, takich jak dane uwierzytelniające i tajne klucze, dzięki czemu twoje funkcje mogą uzyskać do nich dostęp podczas ich uruchamiania. W tym przykładzie ustawiona jest następująca para klucz-wartość:
-
MAX_PROPERTIES_TO_STORE
Zmienna środowiskowa używana do definiowania maksymalnej liczby właściwości do przechowywania dla przykładowej funkcji.
Testowanie
Podczas tworzenia funkcji ustawiającej dane zdarzenia jako właściwości profilu, zakładka Test output służy do weryfikacji oczekiwanych wyników.
Dzienniki
Po utworzeniu i przetestowaniu funkcji na karcie Dzienniki wyświetlany jest stan zdrowia funkcji wykonywanej w odpowiedzi na zdarzenia zarezerwowanych sesji .
Rezultat
Dzięki tej funkcji kodu, gdy klient zarejestruje się na sesje i uruchomi niestandardowe zdarzenie Zarezerwowana sesja, dane zdarzenie zostanie zapisane w profilu klienta do wykorzystania w segmentacji i ukierunkowanym kampanie.
Wdrażanie przepisówWdrażanie przepisów
Receptury w kodzie umożliwiają wdrażanie gotowych rozwiązań bez konieczności tworzenia własnych.
Aby zaimplementować przepis na koncie Klaviyo:
- Wybierz przycisk Utwórz funkcję na stronie Kod.
- Wybierz Przepis, który chcesz zaimplementować na swoim koncie. Zostaniesz przeniesiony do edytora, w którym możesz zobaczyć kod wybranego przepisu wraz z opisem działania funkcji.
- Kliknij przycisk Wybierz, aby kontynuować.
- Wybierz nazwę funkcji i wyzwalacz, który spowoduje jej wykonanie. Czas działania jest ustawiany automatycznie na podstawie kodu receptury.
- Wybierz przycisk funkcji Utwórz.
- Po utworzeniu funkcji ustaw odpowiednie zmienne środowiskowe, aby funkcja miała dane potrzebne do jej uruchomienia.
- Przepis można teraz przetestować i ustawić jako aktywny.
Przepisy mogą wymagać aktualizacji niektórych pól, aby dopasować je do preferencji nazewnictwa i danych w Twoich wydarzeniach. Zapoznaj się z instrukcjami dotyczącymi przepisu, aby sprawdzić, które pola można zmieniać i edytować.
Dodatkowe źródła
Pierwsze kroki z Zaawansowaną platformą danych klientów Klaviyo
Poznaj różne webhooki dostępne w Klaviyo