Webhook이란 무엇인가요?
Webhook은 특정 이벤트가 발생할 때 애플리케이션이나 웹 서비스에 "콜백"을 제공하는 것입니다. 특정 업데이트, 변경 또는 작업이 발생할 때, Webhook을 사용하여 외부 애플리케이션에 데이터를 푸시할 수 있습니다.
워크플로우 자동화기를 사용하여 특정 이벤트가 발생할 때 Webhook을 트리거하는 워크플로우를 생성할 수 있습니다.
Webhook 호출로 무엇을 할 수 있나요?
자동화기를 사용하여 티켓에서 특정 이벤트가 발생할 때 특정 작업을 실행하는 워크플로우를 생성할 수 있습니다. 자동화기를 사용하여 Freshservice 내에서 업데이트, 수정, 알림 전송 및 작업 실행을 할 수 있습니다. 예를 들어, 티켓 우선순위를 업데이트하거나 에스컬레이션 이메일을 보낼 수 있습니다.
Webhook은 외부 애플리케이션이나 도구에서 작업을 트리거하려고 할 때 유용합니다. Webhook을 사용하고자 할 때의 예시 시나리오는 다음과 같습니다:
하고 싶은 일 | 찾아야 할 조건 | Webhook이 호출해야 할 것 |
고객이 티켓에 답장할 때 SMS/문자 메시지 보내기 | 고객이 티켓에 답장하거나 댓글 추가 | 댓글 내용을 3자 SMS 도구로 전송 |
제품 반품 요청이 업데이트될 때 재고 업데이트 | 티켓 카테고리(사용자 정의 필드)가 "제품 반품"으로 업데이트됨 | 스토어 재고에서 제품 정보 업데이트 |
기능 요청의 상태를 내부 제품 관리 도구와 동기화 | "기능 요청" 유형의 티켓 상태가 업데이트됨 | 티켓 정보를 제품 관리 도구에 업데이트 |
고객 만족도 평가가 나쁠 때 경보음 및 사이렌 울리기 | 고객 피드백이 접수되고 평가가 "좋지 않음" | 이 Webhook에 의해 트리거된 스마트 전구(예: 이것 또는 이것) 및 사이렌 사운드 보드를 맞춤 설정 |
Automator를 사용하여 Webhook 요청 설정 방법:
다음 사용 사례를 고려해 봅시다:
티켓이 변경 요청일 때 자동으로 변경 생성
워크플로우 자동화기를 사용하여 새 워크플로우를 생성합니다. Webhook을 트리거할 이벤트와 조건을 드래그 앤 드롭합니다.
작업에서 드롭다운 메뉴에서 "Webhook 트리거" 옵션을 선택합니다.

콜백 요청 유형을 선택합니다.
각 3자 앱이 요청 유형을 다르게 사용할 수 있지만, 대부분의 애플리케이션은 표준 방법을 따릅니다:
GET 요청은 일반적으로 하나 또는 모든 리소스를 검색하는 데 사용됩니다.
POST 요청은 일반적으로 새 리소스를 생성합니다.
PUT 및 PATCH 요청은 리소스를 업데이트하는 데 사용됩니다.
DELETE 요청은 일반적으로 리소스를 삭제하는 데 사용됩니다.
이 예에서는 변경 모듈에서 새 변경을 생성해야 하므로 POST 요청을 생성합니다.
타겟 애플리케이션의 콜백 URL(웹훅에 구성된)을 지정합니다. URL을 플레이스홀더를 사용하여 동적으로 만들 수 있습니다.
예를 들어, 콜백 URL을 다음과 같은 형식으로 전달하려는 경우: http://yourapp.com/yourInfo?email=[user email], 사용자 이메일 부분을 {{requestor.email}} 플레이스홀더로 대체할 수 있습니다.

Webhook 테스트
복잡한 Webhook 호출이 포함된 대규모 워크플로우의 경우, 테스트가 필수적입니다. Webhook을 테스트하기 위해 워크플로우를 활성화하는 것은 최적의 방법이 아닙니다. 대신, 워크플로우 자동화기 내에서 Webhook을 직접 테스트할 수 있습니다.
예를 들어, 변경 모듈에서 변경 티켓을 생성하도록 Webhook을 설정하고 테스트 Webhook 버튼을 누르면, 테스트가 성공하면 변경 모듈에 테스트 티켓이 생성됩니다.
오류가 발생한 API 요청은 오류 유형을 식별하는 데 도움이 되는 적절한 HTTP 상태 코드를 반환합니다. 이 표를 사용하여 각 코드의 의미를 이해할 수 있습니다.
참고: Webhook 테스트에는 플레이스홀더가 지원되지 않습니다.

인증이 필요한 경우, 인증 필요 체크박스를 활성화할 수 있습니다. 인증을 위해 사용자 이름/비밀번호 또는 API 키를 사용할 수 있습니다. 이 사용 사례에서는 구성된 Freshservice 계정의 API 키를 사용합니다.
리소스 애플리케이션이 지원하는 요청 인코딩(JSON, XML 또는 XML-Encoded)을 선택합니다.

이 Webhook에서 원하는 티켓 속성 목록을 간단히 보내려면, 간단한 콘텐츠 옵션을 선택합니다.
보내는 콘텐츠를 맞춤 설정하려면, 고급 옵션을 선택합니다.
고급 옵션을 사용하면 사용자 정의 API 요청을 작성할 수 있습니다. 이러한 요청은 이전 단계에서 선택한 형식으로 인코딩되어야 합니다.
API 테스트를 위해 requestb.in 또는 postman - REST 클라이언트(구글 크롬 확장 프로그램)를 사용할 수 있습니다.
{{Triggered event}} 플레이스홀더는 Webhook에서만 사용 가능하며 규칙을 트리거한 이벤트의 이름을 반환합니다.

Webhook 콜백 요청 제한: 1시간 내에 사용할 수 있는 Webhook 요청 수는 최대 1000회로 제한됩니다. 상태 코드가 200에서 299 사이인 경우 콜백이 성공하며, 300-399 사이의 상태 코드는 콜백 리디렉션으로 간주됩니다.
콜백이 실패(2xx 및 3xx 이외의 상태 코드)하거나 15초 내에 응답을 받지 못하면, Webhook은 3, 5, 9, 17분 간격으로 최대 4회 자동으로 재시도됩니다.
위의 자동화가 활성화되면, "변경 요청" 유형의 티켓이 들어오면 변경 모듈에서 자동으로 변경이 생성됩니다.