Zendesk API란 무엇인가요?
API(Application Programming Interface)는 소프트웨어 애플리케이션을 위한 도구입니다. 고급 레스토랑을 예로 들어 종업원이 주방에서 테이블로 손님이 주문한 요리를 가져다 줍니다. API는 이와 비슷한 방식으로 한 곳에서 다른 곳으로 데이터를 가져다 줍니다. API에서 요리를 리소스라고 하며 요리를 가져다 주는 종업원을 엔드포인트라고 합니다. 메인 요리를 마치고 디저트를 주문한다고 생각해 보세요. 종업원이 여러 디저트의 샘플을 담은 트레이를 가져와 보여 주듯이 일부 엔드포인트는 여러 항목들의 모음을 다시 가져다 줍니다. API에서 이에 대한 예는 List Users 엔드포인트로 Zendesk Support 계정의 모든 사용자 목록을 리턴합니다. Show User 엔드포인트와 같은 일부 엔드포인트는 좀 더 집중적이어서 사용자 한 명만 리턴합니다.
API를 사용하여 Zendesk에서 여러 가지를 변경할 수도 있습니다. 종업원에게 원하는 스테이크 굽기 정도를 말한다고 생각해 보세요. 주방에서 요리하는 셰프는 실제로 손님이 요구한 대로 스테이크를 굽습니다. 강력한 리소스인 API를 많은 고객들이 리소스 일괄 가져오기, 앱 만들기, 외부 소스로 데이터 가져가기 등의 작업에 사용하고 있습니다.
Zendesk 개발자 포털의 API 참고자료 섹션에서 Zendesk API의 참조 문서 대부분을 제공합니다. 참조 문서에서 사용 가능한 모든 엔드포인트에 대해 설명합니다. Zendesk 개발자 가이드를 사용하여 시작할 수도 있습니다. 참조 문서에서 전체적인 내용을 다루지만 특히 이 문서를 통해 API 디코딩 및 사용 방법에 대해 살펴봅니다.
API를 사용하는 이유는 무엇인가요?
지금까지 API가 무엇인지 이해하셨으면 이제 API를 사용해야 하는 이유가 무엇인지 궁금하실 수 있습니다. 간단히 말하면, API를 사용하여 기본적으로든 해당 플랜에서든 UI에서 제공되지 않는 기능을 직접 시도하는 것보다 훨씬 빠르게 추가할 수 있습니다.
현재 Essential 또는 Team 플랜에 가입된 계정의 경우 API를 사용하면 자동화된 데이터 내보내기를 허용하는 Professional로 업그레이드하지 않아도 직접 데이터를 내보낼 수 있습니다. 마찬가지로 API를 사용하여 리포팅 용도로 티켓 데이터를 받을 수도 있습니다. API는 티켓과 관련된 모든 정보를 리턴할 수 있으므로 API 출력을 사용하여 타사 리포팅 애플리케이션으로 데이터를 전달할 수도 있습니다.
많은 레코드를 신속하게 업데이트하는 기능은 API 사용의 또 다른 이점입니다. 예를 들어 상담원 인터페이스에서는 한 번에 하나의 조직을 만들 수 있지만 API를 사용하면 한 번에 최대 100개까지 조직을 만들 수 있습니다. 같은 맥락에서 한 번에 업데이트할 수 있는 항목 수에 대한 제한도 API를 사용할 때가 더 높습니다. 인터페이스에서는 한 번에 60개의 티켓을 편집할 수 있지만 API를 사용하면 최대 100개까지의 티켓을 편집할 수 있습니다.
다른 일반적인 작업에는 다음이 포함됩니다.
- 티켓 만들기
- 다른 시스템에서 Zendesk로 티켓 데이터 마이그레이션하기
- 대량으로 사용자 편집하기
- 레코드 검색하기
- 그 외 다수
이제 API를 사용하려는 이유를 설명했으므로 API 요청을 하는 방법을 살펴보겠습니다.
형식
Zendesk API는 JSON이라는 가벼운 형식으로 데이터를 리턴합니다. Zendesk 헬프 센터에서 JSON 작업하기를 참조하세요. Chrome 또는 Firefox용 JSON 뷰어 확장 기능을 설치하여 웹 브라우저에서 서식화된 데이터를 볼 수 있습니다.
JSON은 다음과 같습니다.
{
"posts": [
{
"id": 35467,
"title": "How do I open the safe"
},
{
"id": 35468,
"title": "How do I reset the combination?"
},
]
}
전형적인 엔드포인트는 다음과 같습니다.
subdomain.zendesk.com/api/v2/users/me.json
엔드포인트는 다음과 같은 작업을 수행할 수 있습니다.
- GET - 항목 검색
- POST - 전에 없었던 항목 만들기
- PUT - 기존 항목 업데이트
- DELETE - 항목 제거
브라우저에서는 GET 요청만 할 수 있고 cURL 또는 Postman과 같은 도구를 사용하여 다른 작업을 수행할 수 있습니다.
cURL
참조 문서에서는 모든 엔드포인트 예에서 cURL을 사용합니다. cURL은 브라우저 없이 API 명령을 사용할 수 있는 명령줄 도구입니다. 자세한 내용은 Zendesk 헬프 센터에서 cURL 설치 및 사용하기를 참조하세요. 4가지 유형의 호출 어느 것에든 cURL을 사용할 수 있습니다. Mac의 경우 cURL이 미리 설치되어 제공되지만 Windows에서는 직접 설치해야 합니다. 자세한 안내는 Zendesk 헬프 센터에서 cURL 설치하기를 참조하세요.
요청의 상태
모든 API 요청에 대해 성공 여부에 대한 응답을 받습니다. 그렇지 않은 경우 응답에서 요청이 성공하지 못한 이유에 대한 단서를 제공합니다. 이러한 응답을 상태 코드라고 하며 몇 가지 기본적인 상태 코드에는 다음과 같은 것들이 있습니다.
- 200 - 요청이 성공했습니다.
- 400 - 요청이 실패했습니다.
- 409 - 병합 또는 제약으로 인한 오류로 호출을 다시 시도합니다.
- 422 - 처리할 수 없는 엔터티입니다.
- 429 - 호출 빈도 제한을 초과했습니다.
- 500 - 경고 또는 일시적인 상태입니다. 이 상태가 지속되면 지원팀에 문의하세요.
상태 코드에 대한 자세한 내용은 API 문서에서 응답 형식을 참조하세요.
연습
이제 API의 기본 사항을 모두 익혔으니 실제로 API를 사용하여 티켓을 검색해 보겠습니다.
Team 레벨 플랜의 사용자이며 태그를 사용하여 티켓이 언제 다른 지원 레벨로 에스컬레이션되는지 추적해 왔다고 가정해 보세요. 추가하는 태그는 escalation_one 및 escalation_two입니다.
이제 시스템에서 두 가지 에스컬레이션을 모두 기록한 모든 티켓의 보고서를 생성하고자 합니다. 이러한 티켓을 리턴하는 보기를 만들려고 시도했지만 보관된 티켓이 표시되지 않았으므로 요구를 만족시키지 못했습니다. 이제 어떻게 해야 할까요?
답변: API를 사용하여 티켓을 가져오면 됩니다.
API 엔드포인트 검색을 확인해 보세요. 이 엔드포인트는 보관된 티켓을 필터링하지 않으므로 이 두 가지 태그를 포함하는 모든 티켓의 목록을 리턴하는 데 사용할 수 있습니다. 마찬가지로 검색 API는 단순 GET 호출이므로 브라우저의 다른 탭에서 Zendesk Support에 로그인한 경우 브라우저에서 직접 사용할 수 있습니다. 검색 엔드포인트의 형식은 다음과 같습니다.
subdomain.zendesk.com/api/v2/search.json?query={search_string}
중요: “subdomain”을 해당 계정의 하위 도메인으로 바꾸세요.
검색 API는 매우 유연하며 쿼리에서는 Zendesk 검색 참고자료에 설명된 모든 것을 사용할 수 있습니다. 이 예에서는 단순히 태그를 찾고 있으므로 검색 문자열에서 사용할 매개변수는 “tags”뿐입니다. 여러 태그를 검색하려면 “tags” 매개변수 다음의 태그들 사이에 쉼표를 추가하세요. 호출은 다음과 같습니다.
https://subdomain.zendesk.com/api/v2/search.json?query=tags:escalation_one,escalation_two
요청을 인증하려면 상담원이나 관리자가 브라우저의 다른 탭에서 Zendesk Support에 로그인해야 합니다.
브라우저에서 이 호출을 실행하면 이러한 태그 둘 다가 있는 티켓 목록을 리턴합니다. 그런 다음 나중에 사용할 수 있도록 JSON 출력을 저장할 수 있습니다.
축하합니다! 이제 모든 과정을 끝마치셨습니다. API는 많은 용도로 사용되는 강력한 도구입니다. 참조 문서 및 Zendesk 개발자 문서를 통해 더 자세히 살펴보실 수 있습니다.