콘텐츠로 이동

수신 데이터 정보

Description

해당 API는 해피톡에서 웹훅 이벤트 그룹 별로 고객사 수신도메인으로 데이터를 발송하는 API 입니다.

Trigger Events

  • 신규 상담방 생성시
  • 상담방 상태 변경시 (접수 ~ 종료)
  • 상담사 변경 요청시
  • 상담사 변경 발생시
  • 상담 내용 검토 요청시
  • 상담방 분류 변경시
  • 상담방의 플래그 변경시
  • 상담방 태그 변경시

Endpoint

[POST] API URL 정보

설정된 수신도메인
설정된 수신도메인
WebHook Action Events
 - 신규 상담방 생성시
 - 상담방 상태 변경시 (접수 ~ 종료)
 - 상담사 변경 요청시
 - 상담사 변경 발생시
 - 상담 내용 검토 요청시
 - 상담방 분류 변경시
 - 상담방의 플래그 변경시
 - 상담방 태그 변경시

Response (Json)

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 카카오톡
INSTAGRAM 인스타그램