thumbnail

웹훅 (Webhook)

웹훅 사용 방법 및 웹훅 페이로드에 대해 안내합니다.

리캐치2024-09-05

웹훅 데이터를 받을 API 서버가 구성 되어 있어야 합니다.

  • 왼쪽 하단의 프로필 버튼을 클릭 후 설정 페이지로 진입합니다.

  • 왼쪽 메뉴 패널에서 웹훅 메뉴를 클릭합니다.

[웹훅 설정 화면]

  • 웹훅 추가 버튼을 클릭합니다.

  • 나타난 모달 창에서 필드에 해당 하는 값을 추가 합니다.

[웹훅 추가 모달 창]

URL: 웹훅을 받을 API 주소를 작성 합니다. (POST 요청을 받을 수 있는 핸들러로 지정)

전송할 이벤트: 하단의 [웹훅 이벤트]설명을 참조하여 필요한 웹훅 이벤트를 선택 합니다. (다중 선택 가능)

  • 추가한 웹훅은 바로 활성화 되지 않습니다.

  • 따라서 활성 토글 버튼을 클릭하여 웹훅 이벤트를 활성화 해야합니다.

  • 활성화 이후 이벤트 발생시 입력한 URL로 웹훅 이벤트 정보가 전송됩니다.

[웹훅 활성화 전]

[웹훅 활성화 후]

  • 실제 이벤트 정보를 받기 전 테스트를 위해 테스트용 웹훅 이벤트를 받을 수 있습니다.

  • 테스트 발송 버튼을 클릭하여 입력 필드를 채운 후 전송 버튼을 클릭하면 테스트용 웹훅 이벤트 정보를 받을 수 있습니다.

[웹훅 테스트 발송 모달 창]

URL: 테스트용 웹훅 이벤트를 받을 API 주소를 작성합니다. (POST 요청을 받을 수 있는 핸들러로 지정)

전송할 이벤트: 하단의 [웹훅 이벤트] 설명 참조하여 필요한 웹훅 이벤트를 선택 합니다. (하나만 선택 가능)

리캐치에서 제공하는 웹훅 이벤트는 다음과 같습니다.

폼 생성, 초대 생성, 미팅 취소, 미팅 생성, 미팅 재조정, 딜 관련 이벤트, 파이프라인 관련 이벤트 트리거에 대해 지원합니다.

폼 생성(Form Submitted) : 새로운 폼이 제출되었을 때 트리거됩니다.

초대 생성(Invitee Created) : 신규 고객(처음 예약하는 고객)이 회의를 예약할 때 트리거됩니다.

미팅 취소(Meeting Cancelled) : 미팅이 취소되었을 때 트리거됩니다.

미팅 생성(Meeting Created) : 새로운 미팅이 예약되면 트리거됩니다.

미팅 재조정(Meeting Rescheduled) : 회의 일정이 변경되면 트리거됩니다.

리드 관련 이벤트

  • 리드 생성 (Lead Created)

  • 리드 삭제 (Lead Deleted)

  • 리드 업데이트 (Lead Updated)

딜 관련 이벤트

  • 딜 생성 (Deal Created)

  • 딜 삭제 (Deal Deleted)

파이프라인 관련 이벤트

  • 파이프라인 할당(pipeline Allocated)

  • 파이프라인 이동(pipelineMoved)

  • 파이프라인 해제 (pipeline Deallocated)

웹훅에서 제공되는 데이터는 다음과 같은 구조를 가집니다.

JSON

wid: 웹훅을 식별 할 수 있는 UUID

event_type: 제공되는 웹훅에 대한 이벤트 타입

payload: 제공되는 각 웹훅 이벤트에 대한 페이로드

  • payload 에서 자주 사용되는 주요 필드

    • source: 이벤트가 트리거된 각 기능의 주요 데이터를 나타내는 필드 입니다.

      예) type이 logic일 경우 어떤 워크플로우에서 발생한 것인지에 대한 데이터

Form Submitted 이벤트는 워크플로우의 기능을 통해 생성한 폼에서 제출 이벤트가 발생 하였을 때 웹훅 이벤트가 트리거 됩니다.

현재 제공 되는 예시 데이터는 웹훅의 `payload` 필드에 대한 부분입니다.

다른 웹훅 예시 데이터 또한 같습니다.

웹훅으로 전달 되는 payload 는 다음과 같습니다.

JSON
  1. source

    • link_id

    • title

    • type

      • logic

  2. id: 제출된 폼 정보의 고유함을 나타내는 UUID 형식의 id 입니다.

  3. title: 폼을 생성 할 때 입력했던 폼의 제목 입니다.

  4. submitted_datetime: 폼이 제출된 시간 값 입니다. (UTC 기준 / ISO 8601 형식을 따릅니다.)

  5. qualified: 워크플로우 기능을 통해 미팅 배정이 되었다면 true, 미팅 미배정으로 메세지 혹은 링크 보내기로 되었을 경우 false로 표기됩니다.

  6. question_and_answers: 폼 제출 시 입력했던 질문과 답변에 대한 값입니다.

    • `<form_label> : <form_answer>` 이와 같은 형태로 폼에 대한 질문과 답변을 나타냅니다.

Invitee Created 이벤트는 워크플로우, 예약 페이지 기능에서 email 기준으로 첫 미팅이 수립이 되었을 때 트리거 되는 웹훅 이벤트 입니다.

웹훅으로 전달 되는 payload는 다음과 같습니다.

JSON
  1. source

    • link_id

    • title

    • type

      • multi-use

      • logic

  2. id: 수립된 미팅에 대한 id 값입니다.

  3. title: 미팅 수립에 사용된 기능의 제목 입니다.

  4. created_datetime: 미팅이 수립된 시간 값 입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  5. meet: 미팅의 종류에 대한 데이터 입니다.

    • type

      • offline: 오프라인 미팅

      • phone: 전화 미팅

      • zoom: 줌 미팅

      • google-meet: 구글 미팅

      • custom: 커스텀 미팅

    • [Optional] value

      Optional 예시) 전화 미팅 일 때 폼 질문에 휴대전화 항목이 없을 경우

      • zoom, google-meet: 온라인 미팅 URL 주소

      • phone: 폼 질문 목록에서 추가한 휴대전화 항목 값

      • offline: 미팅 방법 추가 시 입력한 회사 주소

      • custom: 미팅 방법 추가 시 입력한 전달 사항

  6. organizer: 미팅 주최자에 대한 데이터 입니다.

    • name: 미팅 주최자의 이름 입니다.

    • email: 미팅 주최자의 이메일 입니다.

    • timezone: 미팅 주최자의 timezone 입니다.

  7. invitee: 미팅 참여자의 정보를 나타내는 필드 입니다.

    • name: 미팅 참여자의 이름 입니다.

    • email: 미팅 참여자의 이메일 입니다.

    • timezone: 미팅 참여자의 timezone 입니다.

    • [Optional] company: 미팅 참여자의 회사 정보 입니다.

    • [Optional] phone: 미팅 참여자의 전화번호 입니다.

    • [Optional] note: 미팅 참여자가 작성한 전달 사항 정보 입니다.

  8. question_and_answers: 미팅 수립시 입력한 폼의 질문 답변에 대한 값입니다.

    • `<form_name> : <form_answer>`와 같은 형태로 출력되어 보여집니다.

Meeting Created 이벤트는 워크플로우, 예약 페이지 기능을 이용하여 미팅이 수립 되었을 때 트리거 되는 웹훅 이벤트 입니다.

Invitee Created 이벤트와 다른 점은 첫 미팅과 상관 없이 미팅이 수립 될 때 마다 트리거 됩니다.

웹훅으로 전달 되는 payload는 다음과 같습니다.

JSON
  • source

    • link_id

    • title

    • type

      • multi-use

      • logic

  • id: 수립된 미팅에 대한 id 값입니다.

  • title: 미팅 수립에 사용된 기능의 제목 입니다.

  • created_datetime: 미팅이 수립된 시간 값 입니다. (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • meet: 미팅의 종류에 대한 데이터 입니다.

    • type

      • offline: 오프라인 미팅

      • phone: 전화 미팅

      • zoom: 줌 미팅

      • google-meet: 구글 미팅

      • custom: 커스텀 미팅

    • [Optional] value

      Optional 예시) 전화 미팅 일 때 폼 질문에 휴대전화 항목이 없을 경우

      • zoom, google-meet: 온라인 미팅 URL 주소

      • phone: 폼 질문 목록에서 추가한 휴대전화 항목 값

      • offline: 미팅 방법 추가 시 입력한 회사 주소

      • custom: 미팅 방법 추가 시 입력한 전달 사항

  • organizer: 미팅 주최자에 대한 데이터 입니다.

    • name: 미팅 주최자의 이름 입니다.

    • email: 미팅 주최자의 이메일 입니다.

    • timezone: 미팅 주최자의 timezone 입니다.

  • invitee: 미팅 참여자의 정보를 나타내는 필드 입니다.

    • name: 미팅 참여자의 이름 입니다.

    • email: 미팅 참여자의 이메일 입니다.

    • timezone: 미팅 참여자의 timezone 입니다.

    • [Optional] company: 미팅 참여자의 회사 정보 입니다.

    • [Optional] phone: 미팅 참여자의 전화번호 입니다.

    • [Optional] note: 미팅 참여자가 작성한 전달 사항 정보 입니다.

  • question_and_answers: 미팅 수립시 입력한 폼의 질문 답변에 대한 값입니다.

    • `<form_name> : <form_answer>`와 같은 형태로 출력되어 보여집니다.

Meeting Rescheduled 이벤트는 워크플로우, 예약 페이지 기능에서 수립된 미팅의 일정을 수정 할 때 트리거되는 웹훅 이벤트 입니다.

웹훅으로 전달되는 페이로드는 다음과 같습니다.

JSON
  • source

    • link_id

    • title

    • type

      • multi-use

      • logic

  • id: 수립된 미팅에 대한 id 값입니다.

  • title: 미팅 수립에 사용된 기능의 제목 입니다.

  • before_rescheduled_datetime: 미팅 일정이 수정 되기 전의 시간 값입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • after_rescheduled_datetime: 수정된 미팅 일정에 대한 시간 값입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • rescheduled_reason: 일정 수정 시 작성하는 일정 수정 사유에 대한 값입니다.

  • meet: 미팅의 종류에 대한 데이터 입니다.

    • type

      • offline: 오프라인 미팅

      • phone: 전화 미팅

      • zoom: 줌 미팅

      • google-meet: 구글 미팅

      • custom: 커스텀 미팅

    • [Optional] value

      Optional 예시) 전화 미팅 일 때 폼 질문에 휴대전화 항목이 없을 경우

      • zoom, google-mee: 온라인 미팅 URL 주소

      • phone: 폼 질문 목록에서 추가한 휴대전화 항목 값

      • offline: 미팅 방법 추가 시 입력한 회사 주소

      • custom: 미팅 방법 추가 시 입력한 전달 사항

  • organizer: 미팅 주최자에 대한 데이터 입니다.

    • name: 미팅 주최자의 이름

    • email: 미팅 주최자의 이메일

    • timezone: 미팅 주최자의 timezone

  • invitee: 미팅 참여자의 정보를 나타내는 필드 입니다.

    • name: 미팅 참여자의 이름 입니다.

    • email: 미팅 참여자의 이메일 입니다.

    • timezone: 미팅 참여자의 timezone 입니다.

    • [Optional] company: 미팅 참여자의 회사 정보 입니다.

    • [Optional] phone: 미팅 참여자의 전화번호 입니다.

    • [Optional] note: 미팅 참여자가 작성한 전달 사항 정보 입니다.

Meeting Cancelled 이벤트는 워크플로우, 예약 페이지 기능에서 수립된 미팅이 취소되었을 때 트리거되는 웹훅 이벤트 입니다.

웹훅으로 전달 되는 payload는 다음과 같습니다.

TypeScript
  • source

    • link_id

    • title

    • type

      • multi-use

      • logic

  • id: 수립된 미팅에 대한 id 값입니다.

  • title: 미팅 수립에 사용된 기능의 제목 입니다.

  • cancelled_datetime: 미팅 취소 되기 전 수립된 미팅의 일정에 대한 시간 값입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • cancelled_reason: 미팅 취소 시 작성하는 미팅 취소 사유에 대한 값입니다.

  • organizer: 미팅 주최자에 대한 데이터 입니다.

    • name: 미팅 주최자의 이름

    • email: 미팅 주최자의 이메일

    • timezone: 미팅 주최자의 timezone

  • invitee: 미팅 참여자의 정보를 나타내는 필드 입니다.

    • name: 미팅 참여자의 이름 입니다.

    • email: 미팅 참여자의 이메일 입니다.

    • timezone: 미팅 참여자의 timezone 입니다.

    • [Optional] company: 미팅 참여자의 회사 정보 입니다.

    • [Optional] phone: 미팅 참여자의 전화번호 입니다.

    • [Optional] note: 미팅 참여자가 작성한 전달 사항 정보 입니다.

Lead Created 이벤트는 리드 수동 추가 혹은 폼 제출 등을 통해 리드가 추가 되었을 때 트리거 되는 웹훅 이벤트 입니다.

웹훅으로 전달 되는 페이로드는 다음과 같습니다.

JSON
  • source: 리드가 수집된 경로에 대한 정보 값을 나타냅니다.

    ( 시간 제안 하기 기능을 통해 수집된 리드 일 경우 값은 null )

    • link_id

    • title

    • type

      • multi-use

      • logic

  • id: 리드의 고유한 id 값을 나타냅니다.

  • fields_data: 생성된 리드의 필드 정보 값을 나타냅니다.

    기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

  • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

    ( 리드를 수동으로 추가 하였을 경우 null )

  • created_datetime: 리드가 생성된 시간 값입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • assigner: 리드 담당자에 대한 정보 입니다.

    ( 리드에 담당자가 할당 되지 않았을 경우 null )

    • name: 리드 담당자 이름

    • email: 리드 담당자 이메일

Lead Deleted 이벤트는 리드가 삭제 되었을 때 트리거 되는 웹훅 이벤트 입니다.

웹훅으로 전달되는 페이로드는 다음과 같습니다.

JSON
  • source: 리드가 수집된 경로에 대한 정보 값을 나타냅니다.

    ( 시간 제안 하기 기능을 통해 수집된 리드 일 경우 값은 null )

    • link_id

    • title

    • type

      • multi-use

      • logic

  • id: 리드의 고유한 id 값을 나타냅니다.

  • fields_data: 삭제하는 대상 리드의 필드 정보 값을 나타냅니다.

    기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

  • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

    ( 리드를 수동으로 추가 하였을 경우 null )

  • deleted_datetime: 리드가 삭제된 시간 값입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

  • assigner: 리드 담당자에 대한 정보 입니다.

    ( 리드에 담당자가 할당 되지 않았을 경우 null )

    • name: 리드 담당자 이름

    • email: 리드 담당자 이메일

Lead Updated 이벤트는 리드 정보 수정, 담당자 변경 등 리드에 대한 정보가 변경 되었을 때 트리거 되는 웹훅 이벤트 입니다.

웹훅으로 전달 되는 페이로드는 다음과 같습니다.

JSON
  • id: 리드의 고유한 id 값을 나타냅니다.

  • original_data: 수정 되기 전 리드의 필드 값들을 나타냅니다.

  • updated_data: 수정 된 이후 리드의 필드 값들을 나타냅니다.

  • updated_datetime: 리드가 업데이트 된 시간 값 입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

[ 데이터 유의 사항 ]

  • 리드의 필드 데이터는 기본 name, email, phone, company 필드와 직접 생성한 커스텀 필드의 값을 가집니다.

  • 리드의 담당자가 변경 되었을 경우 assigner 필드 object 안에 변경된 담당자 정보인 email, name 값을 가지고 있습니다.

  • original_data 필드의 assigner 필드 값이 null 이고

    updated_data 필드의 assigner 필드값이 존재 할 때

    => 리드에 담당자가 새로 할당 됨을 나타냅니다.

Deal Created 이벤트는 딜이 생성 되었을 때 트리거 되는 웹훅 이벤트 입니다.

JSON
  • id: 딜의 고유 id 값 입니다.

  • record_type: 딜의 종류를 나타내는 값 입니다.

  • fields_data: 딜의 필드 정보 값을 나타냅니다. 기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

  • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

( 리드 혹은 딜을 수동으로 추가 하였을 경우 null )

  • assigner: 딜의 담당자에 대한 정보 입니다.

( 딜 담당자가 할당 되지 않았을 경우 null )

  • name: 딜 담당자 이름

  • email: 딜 담당자 이메일

  • created_datetime: 딜이 추가된 시간 값 입니다. (UTC 기준 / ISO 8601 형식을 따릅니다.)

Deal Deleted 이벤트는 딜이 삭제 되었을 때 트리거 되는 웹훅 이벤트 입니다.

JSON
  1. id: 딜의 고유 id 값 입니다.

  2. record_type: 딜의 종류를 나타내는 값 입니다.

  3. fields_data: 딜의 필드 정보 값을 나타냅니다. 기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

  4. question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

    ( 리드 혹은 딜을 수동으로 추가 하였을 경우 null )

  5. assigner: 딜의 담당자에 대한 정보 입니다.

    ( 딜 담당자가 할당 되지 않았을 경우 null )

    • name: 딜 담당자 이름

    • email: 딜 담당자 이메일

  6. deleted_datetime: 딜이 삭제 된 시간 값 입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

Pipeline Allocated 이벤트는 리드를 파이프라인에 할당 하였을 때 트리거 되는 웹훅 이벤트 입니다.

JSON
  • pipeline: 할당된 파이프라인의 정보 값을 나타냅니다.

    • id: 할당된 파이프라인의 id 값 입니다.

    • title: 할당된 파이프라인의 제목 값 입니다.

    • stage: 파이프라인 내 딜을 할당한 단계에 대한 정보 값 입니다.

      • id: 파이프라인의 단계에 대한 id 값 입니다.

        • title: 파이프라인의 단계에 대한 제목 값 입니다.

  • deal: 파이프라인에 할당된 대상 딜의 정보 값 입니다.

    • id: 딜의 고유 id 값 입니다.

    • record_type: 딜의 종류를 나타내는 값 입니다.

    • fields_data: 딜의 필드 정보 값을 나타냅니다.

    기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

    • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

      ( 리드 혹은 딜을 수동으로 추가 하였을 경우 null )

    • assigner: 딜의 담당자에 대한 정보 입니다.

      ( 딜 담당자가 할당 되지 않았을 경우 null )

      • name: 딜 담당자 이름

      • email: 딜 담당자 이메일

  • allocated_datetime: 파이프라인에 할당한 시간 값 입니다. (UTC 기준 / ISO 8601 형식을 따릅니다.)

Pipeline Moved 이벤트는 파이프라인에 할당 되어 있는 리드를 다른 단계로 이동 시 트리거 되는 웹훅 이벤트 입니다.

JSON
  • source_pipeline: 이동 전 딜이 할당 되어 있던 pipeline의 정보를 나타냅니다.

    • id: 이동 전 할당 되어있던 파이프라인의 id 값 입니다.

    • title: 이동 전 할당 되어있던 파이프라인의 제목 값 입니다.

    • stage: 이동 전 할당 되어있던 파이프라인의 단계에 대한 정보를 나타냅니다.

      • id: 이동 전 할당 되어있던 파이프라인의 단계에 대한 id 값 입니다.

      • title: 이동 전 할당 되어있던 파이프라인의 단계에 대한 제목 값 입니다.

  • target_pipeline: 이동한 pipeline의 정보를 나타냅니다.

    • id: 이동 후 할당된 파이프라인의 id 값 입니다.

    • title: 이동 후 할당된 파이프라인의 제목 값 입니다.

    • stage: 이동 후 할당된 파이프라인의 단계에 대한 정보를 나타냅니다.

      • id: 이동 후 할당된 파이프라인의 단계에 대한 id 값 입니다.

      • title: 이동 후 할당된 파이프라인의 단계에 대한 제목 값 입니다.

  • deal: 파이프라인에서 단계를 이동 한 대상 딜의 정보 값 입니다.

    • id: 딜의 고유 id 값 입니다.

    • fields_data: 딜의 필드 정보 값을 나타냅니다. 기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

    • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

      ( 리드 혹은 딜을 수동으로 추가 하였을 경우 null )

    • assigner: 딜 담당자에 대한 정보 입니다.

      ( 딜에 담당자가 할당 되지 않았을 경우 null )

      • name: 딜 담당자 이름

      • email: 딜 담당자 이메일

  • moved_datetime: 다른 파이프라인 단계로 이동한 시간 값 입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)

Pipeline Deallocated 이벤트는 파이프라인에 할당되어 있던 리드가 할당 해제가 되었거나 리드 삭제로 인해 파이프라인으로 부터 할당 해제가 되었을 때 트리거되는 웹훅 이벤트 입니다.

JSON
  • pipeline: 할당된 파이프라인의 정보 값을 나타냅니다.

    • id: 할당된 파이프라인의 id 값 입니다.

    • title: 할당된 파이프라인의 제목 값 입니다.

    • stage: 파이프라인 내 리드를 할당한 단계에 대한 정보 값 입니다.

      • id: 파이프라인의 단계에 대한 id 값 입니다.

        • title: 파이프라인의 단계에 대한 제목 값 입니다.

  • deal: 파이프라인에 할당 해제 한 대상 딜의 정보 값 입니다.

    • id: 리드의 고유 id 값 입니다.

    • fields_data: 딜의 필드 정보 값을 나타냅니다.

      기본적인 name, email, phone, company 필드 뿐만 아닌 생성한 커스텀 필드들의 값을 포함한 정보 입니다.

    • question_and_answers: 워크플로우와 같은 기능 등을 통해 리드가 생성 될 때 리드가 입력한 폼의 답변들이 모아져 있는 값입니다.

      ( 리드 혹은 딜을 수동으로 추가 하였을 경우 null )

    • assigner: 딜 담당자에 대한 정보 입니다.

      ( 딜에 담당자가 할당 되지 않았을 경우 null )

      • name: 딜 담당자 이름

      • email: 딜 담당자 이메일

  • deallocated_datetime: 파이프라인으로 부터 할당 해제된 시간 값 입니다.

    (UTC 기준 / ISO 8601 형식을 따릅니다.)