학습 내용
코드와 클라비요가 직접 실행하는 사용자 지정 함수를 만드는 방법에 대해 알아보세요.
코드에는 사용자 지정 개발이 필요하며 클라비요의 지원팀은 실무적인 지원을 제공할 수 없습니다. 팀에 개발자가 없고 직접 코드를 작성하는 데 익숙하지 않다면 클라비요 파트너에게 도움을 요청하세요.
시작하기 전 안내 사항시작하기 전 안내 사항
코드는 클라비요의 고객 데이터 플랫폼(CDP)의 일부입니다.
클라비요 CDP는 클라비요의 표준 마케팅 애플리케이션에 포함되어 있지 않으며, 관련 기능에 액세스하려면 CDP 구독이 필요합니다. 요금제에 이 기능을 추가하는 방법에 대해 자세히 알아보거나 신규 고객인 경우 시작하려면 청구 가이드로 이동하세요.
코드란 무엇인가요?
코드를 사용하면 클라비요에서 캡처한 이벤트에 대한 응답으로 사용자 지정 함수를 실행할 수 있습니다. 코드 에디터에서 직접 Javascript 또는 Python 함수를 작성하면 플랫폼에서 바로 실행할 수 있습니다.
코드를 사용하면 웹후크를 수신하기 위해 공개 HTTP 엔드포인트를 설정하지 않고도 외부 시스템으로 데이터를 전송하고 이벤트 발생에 응답하여 트리거되는 사용자 지정 기능을 생성할 수 있습니다. 또한 많이 사용되는 여 러 사전 작성된 모듈에 액세스하여 사용자 지정 솔루션을 쉽게 만들 수도 있습니다.
코드를 사용하여 사용자 지정 함수를 작성하는 방법을 알아보십시오.
주제
코드를 사용하면 이벤트 가져오기 API를 통해 쿼리할 수 있는 모든 이벤트에 대한 응답으로 사용자 지정 함수를 실행할 수 있습니다.
이는 다음을 포함합니다.
- 이메일 이벤 트(예: 클릭한 이메일, 스팸으로 표시된 이메일 )
- SMS 이벤트(예: 보낸 SMS, 받은 SMS)
- 푸시 알림 이벤트(예: 푸시 수신, 푸시 반송)
- 연동 이벤트(즉, 클라비요에서 생성한 퍼스트 파티 연동 이벤트)
- API 이벤트(즉, KlaviyoAPI를 통해 동기화된 이벤트)
클라비요 코드는 다음 이벤트를 토픽으로 지원하지 않습니다:
- 이메일 열기
- 이메일 수신
코드 인터페이스
코드에 액세스하려면 고객 데이터 플랫폼 > 데이터 관리 > 코드아래의 코드 탭으로 이동합니다.
사용자 지정 함수를 만들려면 함수 만들기 버튼을 선택합니다:
레시피 페이지로 이동하여 실행할 미리 빌드된 솔루션을 선택하거나 빈 Python 또는 Node.js 함수를 선택할 수 있습니다.
기존 레시피를 선택하면 기능에 대한 설명과 함께 솔루션의 코드가 포함된 코드 편집기가 표시됩니다.
나만의 사용자 지정 솔루션을 만들 수 있도록 빈 기능을 선택하면 세부 정보 모달이 표시됩니다:
-
함수 이름 지정
함수를 식별할 이름입니다. -
함수에 대한 주제를 선택합니다.
코드 실행을 트리거할 이벤트를 선택합니다. -
런타임 선택
코드가 실행되는 런타임 환경(예: Python 또는 Node.js)입니다.
필요한 항목을 선택하고 만들기 기능 버튼을 선택하면 다음 탭이 있는 인터페이스로 이동합니다:
- 편집기
- 테스트 출력
- 로그
편집기
코드의 편집기 페이지에서 페이지가 3개의 탭으로 나뉩니다:
-
코드
코드 탭에는 파이썬 또는 자바스크립트 함수를 작성할 수 있는 편집기가 있습니다. -
모듈
모듈은 기능에 기능을 추가하는 타사 패키지입니다. -
환경 변수
환경 변수는 함수가 실행될 때 액세스하는 키-값 쌍입니다.
코드
코드 탭에는 선택한 주제에 대한 응답으로 실행되는 파이썬 또는 자바스크립트 함수를 작성하는 데 사용할 수 있는 편집기가 표시됩니다.
핸들러 함수 매개변수핸들러 함수 매개변수
다음은 핸들러 함수에 전달되는 이벤트 및 컨텍스트 매개변수의 예시입니다.
이벤트 형식 예시
{
{
"데이터": {
"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"
},
"관계": {
"profile": {
"데이터": {
"type": "profile",
"id": "123456"
},
"링크": {
"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"
},
"링크": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/relationships/metric/",
"related": "https://a.klaviyo.com/api/events/7S2q9haejYG/metric/"
}
}
},
"링크": {
"self": "https://a.klaviyo.com/api/events/7S2q9haejYG/"
}
}
}
컨텍스트 형식 예시
{
"company_id": "XXXXX",
"트리거": {"type": "event", "uid": "123456"},
"function_id": "123456",
}
모듈모듈
모듈 탭에서 가장 인기 있는 사전 구축된 모듈(즉, 기능에 기능을 추가하는 타사 패키지)을 선택할 수 있습니다.
코드에 사용할 외부 모듈을 추가하려면 모듈 추가 버튼을 선택합니다:
표시되는 모달에서 추가하려는 모듈을 검색하고 선택할 수 있습니다:
모듈이 추가되면 클라비요에서 작성한 코드와 함께 모듈을 사용할 수 있습니다.
사용 방법에 대한 자세한 내용은 외부 모듈의 기본 설명서를 참조하세요.
환경 변수
환경 변수 탭에서는 클라비요의 코드가 실행될 때 참조할 수 있는 키-값 쌍을 설정할 수 있습니다. 자격 증명 및 비밀 키와 같은 정보를 저장하여 함수가 실행될 때 액세스할 수 있도록 하는 데 사용할 수 있습니다.
환경 변수를 추가하려면 변수 추가 버튼을 선택합니다:
표시되는 모달에서 환경 변수에 대한 키-값 쌍을 설정할 수 있습니다.
환경 변수가 생성되면 페이지에 나열되며 코드에서 사용할 수 있습니다.
코드에서 환경 변수에 액세스하려면 os.getenv("키")를 사용하거나 Python의 경우 process.env("키")를 사용하세요. 의 경우
기존 환경 변수의 값을 업데이트하려면 값을 업데이트하려는 키와 동일한 키를 사용하여 새 변수를 만들어야 합니다.
테스트 출력
코드의 출력 테스트 탭에서는 최근 이벤트로 코드를 테스트하여 출력이 예상대로 작동하는지 확인할 수 있습니다.
기능을 테스트합니다:
-
테스트 실행 버튼을 선택합니다:
- 표시되는 모달에서 테스트할 이벤트를 선택합니다. 클라비요에서 가장 최근에 캡처한 10개의 이벤트 중에서 선택할 수 있습니다.
- 테스트할 이벤트를 선택하면 테스트 출력이 표시됩니다:
로그
로그 탭에는 진행 중인 코드 함수의 상태가 표시됩니다. 곧 알게 되실 겁니다:
-
상태
함수 실행의 진행 상황입니다. -
응답 시간
이벤트에 대한 응답으로 코드가 실행되는 데 걸리는 시간입니다. -
날짜
함수가 실행된 시점의 타임스탬프입니다.
코드 배포
편집기에서 작성한 코드를 배포하려면 상태 드롭다운을 라이브 상태로 전환합니다.
라이브 설정이 완료되면 작성하는 코드는 클라비요에서 토픽 이벤트가 캡처될 때마다 실행됩니다.
기능을 라이브로 설정하면 이벤트가 트리거되기 전까지 최대 15분까지 지연될 수 있습니다.
솔루션 예시
아래는 코드로 구현된 사용자 지정 솔루션의 예시입니다.
이 예에서는 이벤트 데이터를 프로필 속성으로 설정하여 타겟팅 이메일과 세분화에 사용할 수 있도록 했습니다. 고객이 브랜드와 촬영을 예약하면 예약된 촬영 맞춤 이벤트가 클라비요에 캡처되고, 예약 도시 및 관련 URL에 대한 데이터가 각 프로필의 프로필 속성으로 설정됩니다.
최근 예약 이라는 속성도 생성되어 가장 최근에 예약된 5개 촬영 이벤트의 데이터를 저장하여 이메일 템플릿에서 반복하여 액세스할 수 있습니다.
코드코드
이 솔루션의 Python 코드는 코드 에디터에서 작성되며 클라비요가 직접 실행합니다.
코드 예시코드 예시
모듈모듈
이 예에서는 미리 빌드된 메소드를 통해 사용자가 Klaviyo API를 보다 쉽게 사용할 수 있도록 klaviyo-api 모듈을 사용했습니다.
환경 변수환경 변수
환경 변수를 사용하여 자격 증명 및 비밀 키와 같은 정보를 저장하여 함수가 실행될 때 액세스할 수 있도록 할 수 있습니다. 이 예제에서는 다음과 같은 키-값 쌍이 설정되어 있습니다:
-
클라비요_개인키
API 요청을 하는 클라비요 계정과 관련된 개인 키를 저장하는 환경 변수입니다. -
MAX_PROPERTIES_TO_STORE
예제 함수에 저장할 최대 프로퍼티 수를 정의하는 데 사용되는 환경 변수입니다.
테스트
이벤트 데이터를 프로필 속성으로 설정하는 함수를 만드는 동안 테스트 출력 탭을 사용하여 예상 출력을 확인합니다.
로그로그
함수가 생성되고 테스트되면 로그 탭에 예약된 촬영 이벤트에 대한 응답으로 실행되는 함수의 상태 상태가 표시됩니다.
결과결과
이 코드 기능을 사용하면 고객이 촬영을 신청하고 사용자 지정 촬영 예약 이벤트를 트리거하면 이벤트 데이터가 고객 프로필에 저장되어 세분화 및 타겟팅 캠페인에 사용할 수 있습니다.
레시피 구현하기레시피 구현하기
코드의 레시피를 사용하면 사용자 지정 개발 없이도 미리 빌드된 솔루션을 구현할 수 있습니다.
클라비요 계정에서 레시피를 구현하려면 다음과 같이 하세요:
- 코드 페이지에서 함수 만들기 버튼을 선택합니다.
- 계정에서 구현하려는 레시피를 선택합니다. 선택한 레시피의 코드와 해당 기능에 대한 설명을 볼 수 있는 편집기로 이동합니다.
- 계속하려면 선택 버튼을 클릭합니다.
- 함수의 이름과 함수를 실행할 트리거를 선택합니다. 런타임은 레시피의 코드에 따라 자동으로 설정됩니다.
- 기능 만들기 버튼을 선택합니다.
- 함수가 생성되면 함수가 실행하는 데 필요한 데이터를 갖도록 관련 환경 변수를 설정합니다.
- 이제 레시피를 테스트하고 라이브로 설정할 수 있습니다.
레시피를 사용하려면 원하는 이름 지정 기본 설정과 이벤트의 데이터에 맞게 특정 필드를 업데이트해야 할 수 있습니다. 이름을 변경하고 편집할 수 있는 필드를 보려면 레시피의 지침을 참조하세요.