본문으로 건너뛰기
색인되지 않은 문서
이 문서는 색인되지 않습니다. 검색 엔진이 이 문서를 색인하지 않으며, 주소를 알고 있는 사용자만 접근할 수 있습니다.

게시판 답변 변경 (Board Answer Changes)

GET /board/answer-changes — 게시판 문의 대화(게시판 연동으로 들어온 상담) 중 마지막으로 호출한 이후 답변이 생성·수정·삭제된 대화를 돌려주고, 각 대화의 현재 답변 전부를 함께 담습니다. 웹훅(message.created·message.updated·message.deleted)을 놓쳤을 때 상태를 다시 맞추는 용도입니다.

  • Scope: channels:read + messages:read. 채널 메시지 목록과 같은 데이터라서 두 scope가 모두 필요합니다.
  • 쿼리: cursor(이전 응답의 next_cursor, 생략하면 처음부터), limit(한 페이지의 대화 수, 기본 50, 최대 100)
  • 한도: 전역 PAT 한도와 별개로, 이 엔드포인트에만 적용되는 워크스페이스 한도 분당 60회가 있습니다. 넘기면 429 RATE_LIMIT_EXCEEDED와 Retry-After를 반환합니다.

아래 명령은 변경된 대화를 50개까지 조회합니다.

curl "https://api.talk.zeroworks.ai/api/public/v1/board/answer-changes?limit=50" \
-H "Authorization: Bearer ztpat_..."

응답

{
"success": true,
"data": [
{
"channel_id": "c1d2e3f4-...",
"conversation_key": "brand:smartstore:product_inquiry:1234",
"changed_at": "2026-09-11T02:00:00.123456Z",
"answers": [
{
"id": "msg-1a2b-...",
"sender_type": "agent",
"content_type": "text",
"content": "안녕하세요, 확인 후 답변드립니다.",
"content_revision": 2,
"content_modified_at": "2026-09-11T01:59:58.5Z",
"deleted": false,
"created_at": "2026-09-11T01:50:00Z",
"attachments": []
}
]
}
],
"meta": { "has_more": false, "next_cursor": "..." }
}

응답 필드

필드타입설명
channel_idstring대화(채널) UUID
conversation_keystring게시판 연동이 이 대화를 만들 때 보낸 conversation_key 원문
changed_atstring이 대화의 답변이 마지막으로 바뀐 서버 시각(RFC3339)
answers[]array대화의 답변 전부, 오래된 순. 답변은 상담원·봇·워크플로·연동이 보낸 메시지이며 시스템 메시지는 제외합니다. 고객 메시지는 없습니다.
answers[].idstring답변(메시지) ID
answers[].sender_typestringagent(사람 상담원) 또는 ai(그 밖 전부). 게시판 연동이 답변을 발신할 때 쓰는 payload와 같은 규칙이며, 메시지 조회 API의 원시 sender_type(member·bot 등)과는 다릅니다.
answers[].content_typestring답변 본문의 형식(예: text)
answers[].contentstring답변 본문. 삭제된 답변이면 빈 문자열입니다.
answers[].content_revisioninteger본문의 수정 번호. 메시지 조회와 같은 뜻이며, 수정된 적이 없으면 0이고 키는 항상 있습니다.
answers[].content_modified_atstring본문을 마지막으로 수정한 시각(RFC3339). 한 번도 수정하지 않았으면 키가 생략됩니다.
answers[].deletedboolean삭제된 답변이면 true
answers[].created_atstring답변 생성 시각(RFC3339)
answers[].attachmentsarray답변에 붙은 첨부 파일. 항목은 id, type, url, name, size, mime_type이고, 썸네일이 있으면 thumbnail_url이 더해집니다. 첨부가 없으면 빈 배열입니다.

동작 규칙​

  • 재대조 목록이지 변경 이력이 아닙니다. 한 대화에서 여러 번 바뀌어도 그 대화는 페이지에 한 번만 나오고, answers는 지금 상태입니다. 중간 개정본은 나오지 않습니다.
  • 정렬과 cursor: changed_at 오름차순으로 반환하고, 같으면 channel_id 순입니다. next_cursor는 마지막 항목의 위치이고 만료되지 않습니다. 목록이 비면 받은 cursor를 그대로 되돌려 주며, 받은 것도 없으면 키가 생략됩니다. 같은 변경이 두 번 나올 수 있으니(at-least-once) 반영은 덮어쓰기(upsert)로 하세요.
  • 지연 창: 서버가 변경을 기록한 뒤 10초 동안은 목록에 나오지 않습니다. 이벤트를 받자마자 호출하면 그 변경이 아직 안 보일 수 있고, 다음 호출에 나옵니다.
  • 범위: 이 기능이 배포된 시점 이후의 변경만 나옵니다. 그 전 상태는 웹훅과 단건 조회로 이미 갖고 있는 값을 쓰세요.
  • 보장 수준: 변경 기록은 답변을 저장하기 전과 후에 두 번 남깁니다. 저장이 지연 창보다 오래 걸린 상태에서 두 번째 기록까지 실패한 경우에만 변경이 누락될 수 있습니다.

오류​

HTTPcode발생 조건
400INVALID_QUERYlimit이 1~100 범위를 벗어남, 또는 cursor가 서버가 준 형식이 아님
429RATE_LIMIT_EXCEEDED이 엔드포인트의 워크스페이스 한도(분당 60회)를 넘김

공통 오류는 에러 문서를 참고하세요.