문의 접수

문의 접수 기능을 자체적으로 구현하기 위해서는 아래와 같은 형태로 구현해야 합니다.

  1. 접수유형 리스트 조회

    1. Contiple에 등록된 접수유형을 조회합니다.

    2. 조회된 접수유형은 사용자가 직접 선택할 수 있도록 UI를 구현합니다.

    3. 만약 특정 접수유형을 고정하고자 할 경우, [서비스관리 > 티켓 > 카테고리 관리] 화면으로 이동하여 카테고리 ID를 확인하고 category 변수를고정 값으로 지정합니다.

  2. 필드 리스트 조회

    1. 사용자가 선택한 접수유형을 변수로 하여 필드 목록을 조회합니다.

    2. 반환된 필드 목록의 Type에 따라 텍스트필드, 드롭다운, 체크박스 등의 UI를 구현합니다.

  3. 첨부파일 업로드

    1. 파일 첨부 기능을 구현할 경우, 파일 업로드 API를 호출하여 첨부 기능을 구현합니다.

    2. 업로드에 성공하면 시스템에서는 첨부파일 ID 값을 반환하며, 티켓 생성 시 해당 ID를 변수로제공해야 합니다.

  4. 티켓 생성

    1. 문의 제출 시 사용자가 필드에 입력한 값을 변수로 티켓 생성 API를 호출합니다.

➊ 접수유형 리스트

(1) 인터페이스 설명

  • URL: https://{domain}.oc.nhncloud.com/{serviceId}/api/v2/ticket/categories.json

인터페이스 명
프로토콜
호출방향
인코딩
결과 형식
인터페이스 설명
접근제한 여부

접수유형 리스트

HTTPS

GET

UTF-8

JSON

서비스 내 접수유형 리스트 조회

필요 없음


(2) 요청 파라미터 정의

명칭
변수
데이터 타입
변수 유형
필수
설명

서비스 ID

serviceId

String

path

O

서비스 ID,URL PATH 중{serviceId}에 설정

상위 카테고리 ID

parent

Integer

query

X

상위 카테고리에 소속된 하위 카테고리 리스트

하위 카테고리 ID

child

Integer

query

X

하위 카테고리에 소속된 상위 카테고리 리스트

언어 코드

language

String

query

X

서비스 헬프센터 기본 언어 코드


(3) 결과 데이터

명칭
변수
데이터 타입
설명

result.contents

categoryId

Integer

접수유형 ID

parent

Integer

상위 접수유형 ID

name

String

접수유형 명

level

Integer

접수유형 레벨

  • 1, 2, 3, 4, 5

path

String

접수유형 경로

  • \\로 각 뎁스 카테고리 ID 연결

orderNo

Integer

표시 순서

languages

Object

카테고리 다국어 명


(4) Response Body


➋ 접수유형 필드 리스트

(1) 인터페이스 설명

  • URL: https://{domain}.oc.nhncloud.com/{serviceId}/api/v2/ticket/field/user/{categoryId}.json

인터페이스 명
프로토콜
호출방향
인코딩
결과 형식
인터페이스 설명
접근제한 여부

접수유형 필드 리스트

HTTPS

GET

UTF-8

JSON

접수유형을 통하여 대응되는 필드 리스트 확인

공통 인증


(2) 요청 파라미터 정의

명칭
변수
데이터 타입
변수 유형
필수
설명

서비스 ID

serviceId

String

path

O

서비스 ID, URL PATH 내에 설정한 {serviceId}

접수유형 ID

categoryId

Integer

path

O

접수유형 ID, URL PATH 내에 설정한 {categoryId}

언어 코드

language

String

query

X

서비스 헬프센터 기본 언어 코드


(3) 결과 데이터

명칭
변수
데이터 타입
설명

result.contents

fieldId

Integer

고객 필드 ID

code

String

항목 코드

type

String

항목 유형

title

String

항목 명

description

String

안내 문구

placeholder

String

제시어

length

Integer

최대 길이

  • 0: 길이 제한 없음

required

Boolean

필수 항목 여부

  • true: yes

  • false: no

encrypt

Boolean

저장 시 암호화 여부

  • true: yes

  • false: no

holdingText

Boolean

클릭 시 삭제 여부

  • true: yes

  • false: no

options

Array

텍스트 박스, 체크박스, 드롭박스

  • 예: [구분1,구분2,...]

value

String

사용자 입력 값


(4) Response Body


➌ 티켓 첨부파일 업로드

(1) 인터페이스 설명

  • URL: https://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1/ticket/attachments/upload.json

인터페이스 명
프로토콜
호출방향
인코딩
결과 형식
인터페이스 설명
접근제한 여부

티켓 첨부파일 업로드

HTTPS

POST

UTF-8

JSON

서버에 파일 업로드

공통 인증


(2) 요청 파라미터 정의

명칭
변수
데이터 타입
변수 유형
필수
설명

서비스 ID

serviceId

String

path

O

URL PATH 내에 설정한 {serviceId}

업로드 파일

file

File

formData

O

파일을 form로 제출. 파일 지원 형식

  • jpg, png, gif, bmp, jpeg, tif, tiff, pdf, txt, hwp, xls, xlsx, doc, docx, ppt, pptx, mp3, wav, zip

  • 파일 사이즈<10MB

  • 파일명 길이<100


(3) 결과 데이터 (성공)

명칭
변수
데이터 타입
설명

result.content

attachmentId

String

첨부파일 ID

fileName

String

첨부파일 명

contentType

String

첨부파일 유형

disposition

String

파일 처리 방식

  • attachment: 첨부파일

size

Long

첨부파일 사이즈(byte)

createdDt

Long

파일 첨부 시간


(4) Response Body (성공)


(5) 결과 데이터 (실패)

명칭
변수
데이터 타입
설명

result.content

exception

String

고정 값: OcException

message

String

오류 메시지

  • 하기 실패 케이스 참조

실패 케이스

400

  • 파일 크기 10MB 초과

    • 10MB 이내 크기의 파일만 첨부 가능합니다.

  • 파일 제목 100자 초과

    • 파일명이 100자 이내의 파일만 첨부 가능합니다.

  • 허용되지 않은 확장자

    • 허용되지 않는 첨부파일 형식입니다.

9017

  • 파일의 확장자와 MIME type 불일치

    • 허용하는 값: "image", "application/pdf", "application/vnd", "text/plain", "application/zip", "application/x-tika-ooxml", "application/x-hwp", "application/x-tika-msoffice", "image/tiff", "audio/mpeg", "audio/wav", "audio/vnd.wave", "audio/x-wav"

    • The file is corrupted or unrecognized.


(6) Response Body (실패)


➍ 티켓 생성

(1) 인터페이스 설명

  • URL : https://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1/ticket.json

인터페이스 명
프로토콜
호출방향
인코딩
결과 형식
인터페이스 설명
접근제한 여부

티켓 생성

HTTPS

POST

UTF-8

JSON

신규 티켓 생성

공통 인증


(2) 요청 파라미터 정의

명칭
변수
데이터 타입
변수 유형
필수
설명

서비스 ID

serviceId

String

path

O

서비스 ID,URL PATH 내에 설정한 {serviceId}

티켓 정보

request body

Object

body

O

티켓 정보(JSON)

카테고리

categoryId

Integer

O

카테고리(접수유형) ID

제목

subject

String

O

제목(max=255)

설명

content

String

O

원칙 상 단순 텍스트만 허용. Base64 내용으로 제출할 경우 티켓 확인시 내용이 많아 문제될 수 있음. 이미지는 첨부파일 형식으로 업로드하거나, 파일 업로드 후 html의 img src=""/{serviceId}/api/v2/ticket/attachments/{attachmentId}""/ 로 불러와서 사용

고객 정보

endUser

Object

O

고객 정보

아이디

endUser.usercode

String

X

ID(회원 고유 ID). 회원 연동 기능을 사용할 경우, 플랫폼 측의 사용자 고유 ID를 usercode로 사용할 수 있으며, 해당 usercode를 통해 회원의 문의 내역을 조회할수 있음. 비회원 문의일 경우 값을 전송할 필요 없음

메일

endUser.email

String

O

메일(서비스 관리 → 티켓 → 이메일 설정 메뉴에서 메일 정보를 설정하였을 경우, 티켓 처리 시 해당 메일 주소로 고객에게 메일 발송)

이름

endUser.username

String

O

이름(메일 파라미터 입력 시, 필수 입력 필요. 입력하지 않을 경우 메일 발송 불가)

전화

endUser.phone

String

X

전화

첨부파일

attachments

Array

X

첨부파일(max 5건)

첨부파일 ID

attachments.attachmentId

String

O

첨부파일 ID

구분1

typeOne

String

X

구분1(확장 시스템 필드1)

구분2

typeTwo

String

X

구분2(확장 시스템 필드2)

언어

language

String

X

언어

채널

source

String

X

티켓 채널

  • web: 웹

  • spweb: 모바일 웹

  • api: API

  • 기본 값: web

사용자 필드

userFields

Array

O

사용자 필드 사용 시 필드별로 코드(code)와 값(value)으로 구성된 object를 array 형태로 제공 단, 사용자 필드를 사용하지 않을 경우에도 빈 array로 제공해야 함 → "userFields":[]

사용자필드 코드

userFields.code

String

O

사용자 필드, 항목 코드

사용자필드 입력 값

userFields.value

String

O

사용자 필드의 사용자 입력 값


(3) Request Body


(4) 결과 데이터 (성공)

명칭
변수
데이터 타입
설명

result.content

ticketId

String

티켓 ID

categoryId

int

접수유형 ID

subject

String

티켓 제목

content

String

티켓 내용

status

String

티켓 상태

  • 고정값: new(미할당)

  • open(처리중)

  • closed(완료)

createdDt

Long

티켓 생성 시간

updatedDt

Long

티켓 업데이트 시간

attachments

Array

첨부파일

attachments.attachmentId

String

첨부파일 ID

attachments.fileName

String

첨부파일 명

attachments.contentType

String

첨부파일 유형

attachments.disposition

String

파일 처리방식

  • attachment: 첨부파일

attachments.size

String

첨부파일 사이즈(byte)

attachments.createdDt

String

티켓 업데이트 시간


(5) Response Body (성공)


(6) 결과 데이터 (실패)

명칭
변수
데이터 타입
설명

result.contents

objectName

String

사용자 필드: 항목 코드

field

String

사용자 필드: 항목 ID

validate

String

invalid: 무효한 값, length: 최대 길이 초과, required: 항목을 입력하세요

key

String

"validate.ticket." + objectName + "." + validate

message

String

"validate.ticket." + objectName + "." + validate


(7-1) Response Body (실패)

(7-2) Response Body (실패)

  • 스팸 정책 적용으로 인한 실패

    • resultCode : 1001

      • 동일 IP로 1분 내에 3번 이상 문의 생성 시도 시, 24시간 동안 티켓 생성 차단

    • resultCode : 1002

      • 동일 IP로 24시간 내에 10번 이상 문의 생성 시도 시, 24시간 동안 티켓 생성 차단

Last updated