수신 데이터 정보
Description
해당 API는 해피톡에서 웹훅 이벤트 그룹 별로 고객사 수신도메인으로 데이터를 발송하는 API 입니다.
Trigger Events
- 신규 상담방 생성시
- 상담방 상태 변경시 (접수 ~ 종료)
- 상담사 변경 요청시
- 상담사 변경 발생시
- 상담 내용 검토 요청시
- 상담방 분류 변경시
- 상담방의 플래그 변경시
- 상담방 태그 변경시
Endpoint
WebHook Action Events
- 신규 상담방 생성시
- 상담방 상태 변경시 (접수 ~ 종료)
- 상담사 변경 요청시
- 상담사 변경 발생시
- 상담 내용 검토 요청시
- 상담방 분류 변경시
- 상담방의 플래그 변경시
- 상담방 태그 변경시
Response (Json)
Header
Field Name | Type | Required | Description |
---|---|---|---|
Content-type | String | Y | application/json |
x-mbi-app-signature | String | Y | App Credential을 사용하여 생성 (인증키 사용 방법 샘플) |
Body
Field Name | Type | Description | ||
---|---|---|---|---|
eventType | EventType! | 이벤트 유형 / EventType 정의서 | ||
issuedAt | Timestamp! | 이벤트 발생시간 | ||
appCredential | CredentialData! | 앱 인증정보 | ||
key | String! | 앱 키 | ||
expireAt | Timestamp! | 유효시간 | ||
data | EventData! | 상담방 이벤트 | ||
roomId | String | 상담방 ID | ||
siteId | BigInt! | 사이트 ID | ||
status | RoomStatus! | 상담방 상태 / RoomStatus 정의서 | ||
title | String! | 상담방 제목 | ||
managerId | BigInt! | 매니저 ID | ||
counselorId | BigInt! | 상담사 ID | ||
customer | Customer! | 고객 정보 | ||
id | BigInt! | 고객 ID | ||
uid | String | 고객 UID | ||
uuid | String! | 고객 UUID | ||
categoryId | Int! | 대분류 ID | ||
categoryName | String! | 대분류 이름 | ||
subCategoryId | Int! | 중분류 ID | ||
subCategoryName | String! | 중분류 이름 | ||
extraCategoryName | String | 소분류 이름 | ||
roomEndType | RoomEndType | 상담방 종료 처리자 / RoomEndType 정의서 | ||
roomEndOption | RoomEndOption | 상담방 종료 옵션 / RoomEndOption 정의서 | ||
isCloseRoom | Boolean! | 상담방 종료 여부 (status = FINISHED_BY_COUNSELOR / DELETED_BY_CUSTOMER / FINISHED_BY_CHATBOT) | ||
createdAt | Timestamp! | 상담방 생성 시간 | ||
closedAt | Timestamp | 상담방 종료 시간 | ||
deletedAt | Timestamp | 상담방 삭제 시간 | ||
channelType | ChannelType! | 상담 채널 / ChannelType 정의서 | ||
tags | [RoomTag!]! | 상담방에 등록된 태그 정보 | ||
id | Int! | 태그 ID | ||
name | String! | 태그 이름 |
Example
Success
{
"eventType": "ROOM",
"issuedAt": 1688606050.0775621,
"appCredential": {
"key": "TEST_APP_KEY",
"expireAt": 1688606113
},
"data": {
"roomId": "btYhiv7WkwfOSLoN164a61561f3665",
"siteId": 900001,
"status": "CHATBOT_IN_PROGRESS",
"title": "테스트 상담방",
"managerId": 5152,
"counselorId": 5154,
"customer": {
"id": 511513,
"uid": "test_user_01",
"uuid": "900001_byqvB20230314022956"
},
"categoryId": 15516,
"categoryName": "대분류 1",
"subCategoryId": 151615,
"subCategoryName": "중분류 1-2",
"extraCategoryName": '',
"roomEndType": null,
"roomEndOption": null,
"isCloseRoom": false,
"createdAt": 1688606049,
"closedAt": null,
"deletedAt": null,
"channelType": "HAPPYTALK",
"tags": [
{
"id": 5015,
"name": "태그1"
},
{
"id": 5625,
"name": "태그6"
}
]
}
}
Data Dictionary
Data Dictionary
None
type WebHookEvent {
# 이벤트 유형 (EventType.ROOM)
eventType: EventType!
# 이벤트 발생시간
issuedAt: Timestamp!
# 앱 인증정보
appCredential: CredentialData!
# 이벤트 데이터
data: EventData!
}
# 이벤트 데이터
union EventData = RoomEventData
# 상담방 이벤트
type RoomEventData {
# 상담방 ID
roomId: String!
# 사이트 ID
siteId: BigInt!
# 상담방 상태
status: RoomStatus!
# 상담방 제목
title: String!
# 매니저 ID
managerId: BigInt!
# 상담사 ID
counselorId: BigInt!
# 고객 정보
customer: Customer!
# 대분류 ID
categoryId: Int!
# 대분류 이름
categoryName: String!
# 중분류 ID
subCategoryId: Int!
# 중분류 이름
subCategoryName: String!
# 소분류 이름
extraCategoryName: String
# 상담방 종료 처리자
roomEndType: RoomEndType
# 상담방 종료 옵션
roomEndOption: RoomEndOption
# 상담방 종료 여부 (status = FINISHED_BY_COUNSELOR | DELETED_BY_CUSTOMER | FINISHED_BY_CHATBOT)
isCloseRoom: Boolean!
# 상담방 생성 시간
createdAt: Timestamp!
# 상담방 종료 시간
closedAt: Timestamp
# 상담방 삭제 시간
deletedAt: Timestamp
# 상담 채널
channelType: ChannelType!
# 상담방에 등록된 태그 정보
tags: [RoomTag!]!
}
# 이벤트 유형
enum EventType {
# 상담방 이벤트
ROOM
}
# 상담방 상태 (defined)
enum RoomStatus {
# 상담 대기
WAIT_COUNSEL
# 챗봇 진행중 (챗봇 처리중)
CHATBOT_IN_PROGRESS
# 접수 (상담사에게 상담 접수됨)
RECEIPT_COUNSEL
# 진행중 (상담사가 상담중)
COUNSELOR_IN_PROGRESS
# 상담 종료 (상담사/고객 상담 종료)
FINISHED_BY_COUNSELOR
# 삭제 (고객에 의해 삭제됨)
DELETED_BY_CUSTOMER
# 챗봇 종료 (챗봇 상담 종료)
FINISHED_BY_CHATBOT
}
# 상담방 종료 처리자 (defined)
enum RoomEndType {
# 상담사
COUNSELOR
# 고객
CUSTOMER
# 매니저
MANAGER
}
# 상담방 종료 옵션 (defined)
enum RoomEndOption {
# 상담방 자동 종료 안함
NOT_AUTO_END
# 상담방 자동 종료
AUTO_END
# 최종 대화일 30일 경과 후 자동 종료
AUTO_END_AFTER_THIRTY_DAYS
}
# 상담 채널 (defined)
enum ChannelType {
# 해피톡
HAPPYTALK
# 네이버
NAVER
# 카카오톡
KAKAOTALK
# 페이스북
FACEBOOK
# 이메일
EMAIL
# SMS
SMS
# 네이버 라인
NAVER_LINE
# 인스타그램
INSTAGRAM
}
# 상담방 태그 (defined)
type RoomTag {
# 태그 ID
id: Int!
# 태그 이름
name: String!
}
# 고객 정보
type Customer {
# 고객 ID
id: BigInt!
# 고객 UID
uid: String
# 고객 UUID
uuid: String!
}
# 인증 정보
type CredentialData {
# 앱 키
key: String!
# 유효시간
expireAt: Timestamp!
}
Field Name | Description |
---|---|
ROOM | 상담방 이벤트 |
Field Name | Description |
---|---|
WAIT_COUNSEL | 상담 대기 |
CHATBOT_IN_PROGRESS | 챗봇 진행중 (챗봇 처리중) |
RECEIPT_COUNSEL | 접수 (상담사에게 상담 접수됨) |
COUNSELOR_IN_PROGRESS | 진행중 (상담사가 상담중) |
FINISHED_BY_COUNSELOR | 상담 종료 (상담사/고객 상담 종료) |
DELETED_BY_CUSTOMER | 삭제 (고객에 의해 삭제됨) |
FINISHED_BY_CHATBOT | 챗봇 종료 (챗봇 상담 종료) |
Field Name | Description |
---|---|
COUNSELOR | 상담사 |
CUSTOMER | 고객 |
MANAGER | 매니저 |
Field Name | Description |
---|---|
NOT_AUTO_END | 상담방 자동 종료 안함 |
AUTO_END | 상담방 자동 종료 |
AUTO_END_AFTER_THIRTY_DAYS | 최종 대화일 30일 경과 후 자동 종료 |
Field Name | Description |
---|---|
HAPPYTALK | 해피톡 |
NAVER | 네이버 톡톡 |
KAKAOTALK | 카카오톡 |
인스타그램 |