본문으로 건너뛰기
문서 메뉴오픈이노베이션 피드백 API

서버베타

오픈이노베이션 피드백 API

고객이 남긴 의견을 오픈이노베이션 대시보드에 올리고, 이슈와 이어서 진행 상황을 추적해요. 반영되면 고객에게 다시 알려 피드백 고리를 닫아요.

피드백 흐름

  1. 고객이 메신저에서 kind: "feedback" 대화를 시작하거나, 우리 서버가 POST /v1/feedback으로 의견을 올려요.
  2. 피드백은 오픈이노베이션 대시보드에 모이고, 팀은 비슷한 의견을 묶어 우선순위를 정해요.
  3. 팀이 대화를 이슈로 만들면(POST …/conversations/:id/issue) 둘이 연결돼요.
  4. 이슈 상태가 바뀌면 웹훅 feedback.status_changed가 가고, 고객에게 반영 소식을 전해요.

피드백 올리기

서버에서 시크릿 키(Authorization: Bearer ent_sk_…)로 호출해요.

cURL
curl -X POST https://entropy.ly/api/v1/feedback \
  -H "Authorization: Bearer $ENTROPY_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contactId": "ct_01J…",
    "title": "다크 모드에서 버튼 대비가 낮아요",
    "body": "설정 화면의 보조 버튼이 배경과 잘 구분되지 않아요.",
    "tags": ["디자인"]
  }'
POST /v1/feedback 요청 필드
필드타입설명
titlestring (필수)한 줄 요약
bodystring (필수)내용. 일반 텍스트로 저장하고 HTML로 렌더링하지 않아요.
contactIdstring의견을 남긴 연락처. 있으면 상태가 바뀔 때 그 고객에게 알릴 수 있어요.
conversationIdstring피드백이 나온 대화. 대화와 피드백을 함께 보여 줘요.
tagsstring[]분류 태그
응답 201
{
  "id": "cv_01J8Z7…",
  "channelId": "ch_01J…",
  "contactId": "ct_01J…",
  "kind": "feedback",
  "state": "open",
  "tags": [
    "디자인"
  ],
  "linkedIssueId": null,
  "createdAt": "2026-10-27T10:12:00Z"
}

피드백은 kind: "feedback" 대화로 저장돼요. 그래서 서버 API의 대화 API로 그대로 조회하고, 답하고, 태그를 바꿀 수 있어요.

요청
POST /v1/channels/:channelId/conversations/cv_01J8Z7…/issue
Content-Type: application/json

{
  "title": "다크 모드 보조 버튼 대비 개선"
}

projectId를 넣으면 그 프로젝트에 이슈가 생겨요.

고객에게 반영 소식 전하기

연결된 이슈가 진행되거나 완료되면 웹훅 feedback.status_changed가 와요. 받은 뒤 그 대화에 운영자 메시지로 소식을 남기면, 고객이 보고 있지 않을 때 알림으로 전해져요.