학습 내용

Code에 대해 알아보고, Klaviyo에서 직접 실행되는 사용자 정의 함수를 만드는 방법을 알아보세요.

코드에는 맞춤 개발이 필요하며 Klaviyo 지원팀은 실무적인 지원을 제공할 수 없어요. 팀에 개발자가 없고 직접 코드를 작성하는 데 익숙하지 않은 경우, Klaviyo 파트너에게 도움을 요청하는 것을 고려해 보세요.

시작하기 전에 알아야 할 것

Klaviyo 고급 데이터 플랫폼은 Klaviyo의 표준 마케팅 애플리케이션에 포함되어 있지 않으며, 관련 기능에 액세스하려면 구독이 필요합니다. 이 요금제를 구매하는 방법을 알아보려면 결제 가이드로 이동해 주세요.

코드란 무엇인가요?

코드를 사용하면 Klaviyo에서 캡처한 이벤트에 대한 응답으로 사용자 지정 함수를 실행할 수 있어요. 코드 편집기에서 직접 Javascript 또는 Python 함수를 작성하면, 플랫폼에서 바로 실행됩니다.

코드를 사용하면 웹후크를 수신하기 위해 공개 HTTP 엔드포인트를 설정하지 않고도 외부 시스템으로 데이터를 전송하고 이벤트 발생에 응답하여 트리거되는 사용자 지정 기능을 생성할 수 있습니다. 또한 많이 사용되는 여러 사전 작성된 모듈에 액세스하여 사용자 지정 솔루션을 쉽게 만들 수도 있습니다.

주제

코드를 사용하면 Get Events API를 통해 쿼리할 수 있는 모든 이벤트에 대한 응답으로 사용자 지정 함수를 실행할 수 있어요.

이러한 이벤트에는 다음이 포함됩니다.

  • 이메일 이벤트(예: 이메일 클릭, 이메일을 스팸으로 표시 )
  • SMS 이벤트(예: Sent SMS, Received SMS)
  • 푸시 알림 이벤트(예: 푸시 수신, 푸시 반송)
  • 연동의 이벤트(예: Klaviyo에서 만든 자사 연동의 이벤트)
  • API 이벤트(즉, Klaviyo의 API를 통해 동기화된 이벤트)

Klaviyo Code는 다음 이벤트를 토픽으로 지원하지 않아요:

  1. 이메일 열람
  2. 이메일 수신

코드 인터페이스

코드에 액세스하려면 Klaviyo 고급 데이터 플랫폼 > 데이터 관리 > 코드 아래의 코드 탭으로 이동합니다.

사용자 지정 함수를 생성하려면 함수 생성 버튼을 선택하세요:

Create a function button
Create a function button

레시피 페이지로 이동되며, 실행할 사전 구축된 솔루션을 선택하거나 빈 Python 또는 Node.js 함수를 선택할 수 있어요.

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

기존 레시피를 선택하면 솔루션의 코드와 기능 설명이 함께 표시되는 코드 편집기가 나타나요.

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

직접 맞춤 솔루션을 만들 수 있도록 빈 함수를 선택하면 세부 정보 모달이 표시되며, 다음을 할 수 있어요:

  • 함수 이름을 지정하세요
    함수를 식별하기 위한 이름이에요.
  • 함수의 주제를 선택하세요
    코드 실행을 트리거하는 이벤트.
  • 런타임 선택
    코드가 실행되는 런타임 환경(예: Python 또는 Node.js)입니다.
3.11.jpg
3.11.jpg

필수 선택 항목을 선택하고 함수 생성 버튼을 선택하면 다음 탭이 있는 인터페이스로 이동해요:

  • 편집기
  • 테스트 출력
  • 로그

권한 부여

Code를 통해 함수를 처음 만들면 Code OAuth 애플리케이션을 인증하라는 메시지가 표시돼요. 이 작업은 Code 함수가 Klaviyo 계정의 데이터에 액세스할 수 있도록 하기 위해 필요해요.

액세스를 부여하면 코드 편집기로 이동돼요.

편집기

Code의 Editor 페이지에서 페이지가 3개의 탭으로 분할되어 있는 것을 확인할 수 있어요:

  • 코드
    코드 탭에는 Python 또는 Javascript 함수를 작성할 수 있는 편집기가 있어요.
  • 모듈
    모듈은 함수에 기능을 추가하는 타사 패키지입니다.
  • 환경 변수
    환경 변수는 함수가 실행될 때 액세스하는 키-값 쌍입니다.

코드

코드 탭에서 선택한 주제에 대한 응답으로 실행되는 Python 또는 Javascript 함수를 작성할 수 있는 편집기를 확인할 수 있어요.

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

핸들러 함수 매개변수

Klaviyo가 작성한 코드를 실행하려면 2개의 매개변수를 받는 “handler”라는 이름의 함수로 코드를 래핑해야 해요:

  • 이벤트
    JSON:API 형식으로 트리거 이벤트와 연결된 이벤트 데이터로 구성됩니다. 트리거가 이벤트 기반이 아닌 경우(예: 목록에 추가됨), 이 매개변수의 값은 언어에 따라 None 또는 Null이 됩니다.
  • 컨텍스트
    함수 실행과 관련된 프로필을 포함해, 함수 실행에 대한 추가 메타데이터를 포함해요. Javascript에서는 context.profile을, Python에서는 context["profile"]을 통해 프로필 객체에 액세스할 수 있어요.

아래는 핸들러 함수로 전달되는 이벤트 및 컨텍스트 매개변수의 예시입니다.

이벤트 형식 예시

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/"
    }
  }
}

예시 컨텍스트 형식

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

모듈

Modules 탭에서 가장 인기 있는 사전 구축 모듈(즉, 함수에 기능을 추가하는 서드파티 패키지)을 선택할 수 있어요.

코드에서 사용할 외부 모듈을 추가하려면 모듈 추가 버튼을 선택하세요:

Add module button
Add module button

표시되는 모달에서 추가하려는 모듈을 검색하고 선택할 수 있어요:

Add module modal
Add module modal

추가한 후에는 Klaviyo에서 작성한 코드와 함께 모듈을 사용할 수 있어요.

사용 방법에 대한 정보는 외부 모듈의 기본 문서를 참고해 주세요.

Added modules
Added modules
Klaviyo 모듈

모든 Code 함수에는 Code 환경에 미리 설치된 사용자 지정 Klaviyo 패키지가 포함돼요. 이 모듈을 사용하면 API 키 같은 자격 증명을 제공하지 않고도 함수에서 Klaviyo 계정의 데이터에 액세스할 수 있어요.

Klaviyo 모듈의 API는 코드가 Python으로 작성되었는지, Javascript로 작성되었는지에 따라 달라요.

Python Klaviyo module

사전 설치된 Klaviyo 모듈의 API는 일반적으로 klaviyo-api Python 모듈로 인스턴스화하는 Klaviyo SDK(소프트웨어 개발 키트) 객체와 동일해요. Klaviyo 모듈을 미리 인스턴스화된 Klaviyo SDK(소프트웨어 개발 키트) 클라이언트라고 생각하면 돼요.

예를 들어, 기존 워크플로우에서는 먼저 생성자에 API 키를 전달해 새 Klaviyo SDK(소프트웨어 개발 키트) 클라이언트를 인스턴스화한 다음, 생성된 SDK(소프트웨어 개발 키트) 객체를 사용해요.

text
from klaviyo_api import KlaviyoAPIimport osdef handler(event, context):  klaviyo = KlaviyoAPI(api_key=os.getenv("KLAVIYO_API_KEY"))  print(klaviyo.Metrics.get_metrics())

Code를 사용하면 Klaviyo 객체만 가져오면 되고, 인증은 자동으로 처리돼요.

text
import klaviyodef handler(event, context):  print(klaviyo.Metrics.get_metrics())

사용 가능한 Klaviyo 객체와 해당 메서드를 확인하세요.

Javascript Klaviyo module

Javascript 함수에서 사전 설치된 klaviyo 모듈을 사용할 때는 klaviyo 모듈에서 중괄호 문법을 사용해 액세스하려는 특정 Klaviyo 기능을 가져오세요. 그런 다음 klaviyo-api Javascript 모듈을 사용해 평소처럼 API 객체로 사용하세요.

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

사용 가능한 Klaviyo 오브젝트 및 해당 메서드를 확인하세요.

환경 변수

환경 변수 탭에서 Klaviyo에서 코드가 실행될 때 참조할 수 있는 키-값 쌍을 설정할 수 있어요. 이 기능을 사용하면 자격 증명 및 비밀 키 같은 정보를 저장할 수 있으므로, 함수가 실행되는 동안 해당 정보에 액세스할 수 있어요.

환경 변수를 추가하려면 변수 추가 버튼을 선택해 주세요:

Add environment variables button
Add environment variables button

표시되는 모달에서 환경 변수에 대한 키-값 쌍을 설정할 수 있습니다.

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

생성되면 환경 변수는 페이지에 목록으로 표시되며 코드에서 사용할 수 있어요.

코드에서 환경 변수를 사용하려면 Python은 os.getenv("Key")를, Node.js는 process.env.KEY를 사용하세요.

Created environment variables
Created environment variables

기존 환경 변수의 값을 업데이트하려면 업데이트할 값과 동일한 키로 새 변수를 만들어야 해요.

테스트 출력

Code의 테스트 출력 탭에서는 최근 이벤트로 코드를 테스트해 출력이 예상대로 동작하는지 확인할 수 있어요.

함수를 테스트하려면:

  1. 테스트 실행 버튼을 선택합니다:
Run test button
Run test button
  1. 표시되는 모달에서 테스트할 이벤트를 선택하세요. Klaviyo에서 캡처된 가장 최근 10개의 이벤트 중에서 선택할 수 있어요.
Recent events to test with
Recent events to test with
  1. 테스트할 이벤트를 선택하면 테스트 출력이 표시돼요:
Test output
Test output

로그

로그 탭에는 진행 중인 코드 기능의 상태가 표시돼요. 다음이 표시돼요:

  • 상태
    함수 실행의 진행 상황입니다.
  • 응답 시간
    이벤트에 대한 응답으로 코드가 실행되는 데 걸리는 시간입니다.
  • 날짜
    함수가 실행된 시점의 타임스탬프입니다.

요율 제한

Klaviyo 코드에는 다음과 같은 속도 제한이 있습니다:

  • 함수 시간 초과
    Code의 함수는 시간 초과되기 전까지 최대 15초 동안 실행될 수 있어요.
  • 함수 속도 제한
    Code의 함수는 함수당 최대 25개의 동시 실행을 허용해요.

코드 배포

편집기에서 작성한 코드를 배포하려면 상태 드롭다운을 라이브로 전환해 주세요.

Toggle to deploy code
Toggle to deploy code

라이브로 설정하면 작성한 코드는 Klaviyo에서 해당 주제 이벤트가 캡처될 때마다 실행됩니다.

함수가 라이브로 설정되면 이벤트가 함수를 트리거하기 시작하기까지 최대 15분까지 지연될 수 있어요.

솔루션 예시

아래는 코드로 맞춤 솔루션을 구현하는 예시입니다.

예시에서는 이벤트 데이터가 프로필 속성으로 설정되어 타겟팅된 이메일과 세분화에 사용할 수 있어요. Booked shoot 사용자 지정 이벤트는 고객이 브랜드와 촬영을 예약할 때 Klaviyo에서 캡처되며, 예약 도시 및 연결된 URL에 대한 데이터는 해당 프로필의 프로필 속성으로 설정됩니다.

최근 예약 이라는 속성도 생성되며, 이 속성은 가장 최근의 촬영 예약됨 이벤트 5개의 데이터를 저장해 이메일 템플릿에서 반복 처리하고 액세스할 수 있도록 해요.

코드

이 솔루션의 Python 코드는 코드 편집기에 작성되며 Klaviyo에서 직접 실행돼요.

Code_updates.jpg
Code_updates.jpg

예시 코드

모듈

이 예시에서는 기본 제공 Klaviyo 모듈을 사용해요. Klaviyo 모듈은 함수에 klaviyo-api 모듈이 추가되어 있어야 해요. 추가되면 Klaviyo 모듈이 인증을 처리하므로 API 키가 필요하지 않아요.

환경 변수

환경 변수는 자격 증명 및 비밀 키 같은 정보를 저장하는 데 사용할 수 있어, 함수가 실행되는 동안 해당 정보에 액세스할 수 있어요. 이 예시에서는 다음 키-값 쌍이 설정돼요:

  • MAX_PROPERTIES_TO_STORE
    예시 함수에 저장할 최대 속성 수를 정의하는 데 사용되는 환경 변수입니다.

테스트

이벤트 데이터를 프로필 속성으로 설정하는 함수를 만드는 동안, 테스트 출력 탭을 사용해 예상되는 출력을 확인해요.

test_output.jpg
test_output.jpg

로그

함수를 생성하고 테스트한 후에는 로그 탭에서 Booked shoot 이벤트에 대한 응답으로 실행될 때 함수의 상태(정상 여부)를 확인할 수 있어요.

Logs.jpg
Logs.jpg

결과

이 Code 함수를 설정하면 고객이 촬영을 신청하고 맞춤 Booked shoot 이벤트가 트리거될 때, 이벤트 데이터가 고객 프로필에 저장되어 세분화 및 타겟팅된 캠페인에 사용할 수 있어요.

레시피 구현 

Code의 레시피를 사용하면 맞춤 개발 없이도 사전 구축된 솔루션을 구현할 수 있어요.

Klaviyo 계정에서 레시피를 구현하려면:

  1. 코드 페이지에서 함수 만들기 버튼을 선택해 주세요.
  2. 계정에 구현하려는 Recipe를 선택하세요. 선택한 Recipe의 코드와 기능 설명을 확인할 수 있는 편집기로 이동돼요.
  3. 계속하려면 선택 버튼을 클릭하세요.
Currency converter recipe in Klaviyo
Currency converter recipe in Klaviyo
  1. 함수의 이름과 실행되도록 하는 트리거의 이름을 선택해 주세요. 런타임은 레시피 코드에 따라 자동으로 설정됩니다.
  2. 함수 만들기 버튼을 선택하세요.
  3. 기능을 만든 후에는 기능이 실행하는 데 필요한 데이터를 사용할 수 있도록 관련 환경 변수를 설정해 주세요.
  4. 이제 Recipe를 테스트하고 라이브로 설정할 수 있어요.

레시피에서는 원하는 이름 지정 방식과 이벤트 데이터에 맞추기 위해 특정 필드를 업데이트해야 할 수 있어요. 레시피의 안내를 확인해 이름을 변경하거나 편집할 수 있는 필드를 확인하세요.

이 도움말 문서가 유용했나요?
이 형식은 도움말 문서 피드백 용도로만 사용하세요. 지원 팀에 문의하는 방법.

Klaviyo에서 자세히 살펴보기

커뮤니티
동료, 파트너, Klaviyo 전문가와 연결되어 영감을 받고 인사이트를 공유하며, 모든 궁금한 사항에 대해 답을 얻으세요.
파트너
특정 작업을 도와주거나 지속적인 마케팅 관리를 위해 Klaviyo 인증 전문가를 고용하세요.
지원

계정을 통해 지원에 액세스하세요.

이메일 지원 (무료 체험 및 유료 계정) 연중무휴 24시간 사용 가능

채팅/가상 비서
사용 가능 여부는 위치 및 요금제 유형에 따라 다름