Zendesk Support Ticket 데이터를 Redshift에 로드

이번 가이드에서는 Xplenty의 Rest API 컴포넌트를 사용하여 Zendesk의 Support API에 액세스 후에 티켓 데이터를 Incremental로 로드하는 절차에 대해 설명합니다.

Zendesk쪽에서 설정

관리 메뉴에서 'API'를 선택합니다.

thumbnail image

패스워드 액세스를 유효로 설정합니다.

thumbnail image

Xplenty 측 설정

Step1: Rest API Component 설정

Rest API 컴포넌트에서 Basic 인증을 선택하고 사용자 이름과 암호를 입력합니다.

thumbnail image

이번에는 Support API의 Incremental Export를 사용하므로 API 사양서에 따른 URL을 입력합니다.

thumbnail image

URL : https://sub_domain_name.zendesk.com/api/v2/incremental/tickets.json?start_time=1601768082&include=metric_sets
start_time : UnixTime의 숫자 지정

Response에서 JSON Path 입력

thumbnail image

데이터 미리보기에서 결과를 올바르게 가져 올수 있는지 확인한 후 필요한 열을 선택하고 저장 버튼을 클릭합니다.

thumbnail image

Step2: Select 컴포넌트로 중첩되어 있는 JSON 값을 취득하는 함수를 설정

thumbnail image

Step3: 로드 할 곳의 DB 혹은 DWH를 설정(여기서는 Redshift로 로드)

Redshift 커넥션을 설정하고 테이블 이름 입력 및 오퍼레이션(여기서는 Merge with existing data using delete and insert)을 선택합니다.

thumbnail image

이번에 작성한 데이터 플로우는 이런 느낌이 됩니다.

thumbnail image

Step4: 자동으로 차분 갱신을 위한 변수 설정

첫 설정에서는, URL의 파라미터「start_time」에 고정값을 넣었지만, 이후에 자동적으로 이전 취득분으로부터의 차분을 취득할 수 있도록 변수를 이용한 리퀘스트 URL을 생성할 수 있도록 설정합니다.

thumbnail image

1. 차분갱신을 위해 마지막 실행 시간을 얻는 변수를 설정합니다.

thumbnail image

  • 변수 이름 : start_date
  • 함수식ToUnixTime(CASE WHEN $_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP == '' THEN ToDate('2000-01-01T00:00:00.000Z' ) ELSE ToDate($_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP) END)

식에서 사용하고 있는 시스템 변수 「$_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP」에는 자동적으로 마지막 성공 작업 실행 일시가 설정 된다.

2. URL의 start_time 값에 변수를 설정합니다. (굵게 부분은 변수)

URL : https://sub_domain_name.zendesk.com/api/v2/incremental/tickets.json?start_time=$start_date&include=metric_sets

thumbnail image

이제 손쉽게 차분을 업데이트하는 Dataflow 패키지의 완성입니다.

자사에서 SaaS 서비스를 클라우드에 연결하고 얻고 싶다면 Xplenty의 무료체험판을 신청해 보세요.