이번 가이드에서는 Xplenty의 Rest API 컴포넌트를 사용하여 Zendesk의 Support API에 액세스 후에 티켓 데이터를 Incremental로 로드하는 절차에 대해 설명합니다.
Zendesk쪽에서 설정
관리 메뉴에서 'API'를 선택합니다.
패스워드 액세스를 유효로 설정합니다.
Xplenty 측 설정
Step1: Rest API Component 설정
Rest API 컴포넌트에서 Basic 인증을 선택하고 사용자 이름과 암호를 입력합니다.
이번에는 Support API의 Incremental Export를 사용하므로 API 사양서에 따른 URL을 입력합니다.
URL : https://sub_domain_name.zendesk.com/api/v2/incremental/tickets.json?start_time=1601768082&include=metric_sets
start_time : UnixTime의 숫자 지정
Response에서 JSON Path 입력
데이터 미리보기에서 결과를 올바르게 가져 올수 있는지 확인한 후 필요한 열을 선택하고 저장 버튼을 클릭합니다.
Step2: Select 컴포넌트로 중첩되어 있는 JSON 값을 취득하는 함수를 설정
Step3: 로드 할 곳의 DB 혹은 DWH를 설정(여기서는 Redshift로 로드)
Redshift 커넥션을 설정하고 테이블 이름 입력 및 오퍼레이션(여기서는 Merge with existing data using delete and insert)을 선택합니다.
이번에 작성한 데이터 플로우는 이런 느낌이 됩니다.
Step4: 자동으로 차분 갱신을 위한 변수 설정
첫 설정에서는, URL의 파라미터「start_time」에 고정값을 넣었지만, 이후에 자동적으로 이전 취득분으로부터의 차분을 취득할 수 있도록 변수를 이용한 리퀘스트 URL을 생성할 수 있도록 설정합니다.
1. 차분갱신을 위해 마지막 실행 시간을 얻는 변수를 설정합니다.
- 변수 이름 : 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
이제 손쉽게 차분을 업데이트하는 Dataflow 패키지의 완성입니다.
자사에서 SaaS 서비스를 클라우드에 연결하고 얻고 싶다면 Xplenty의 무료체험판을 신청해 보세요.