본문으로 건너뛰기
버전: 0.68.0

Agent Board 메시지 상태 업데이트 API (PATCH)

개요​

Agent Board 메시지 상태 업데이트 API는 여러 개의 에이전트 보드 메시지의 상태를 한번에 일괄 업데이트하는 기능을 제공합니다. 이 API는 사용자가 메시지를 읽거나 상호작용할 때 메시지의 상태를 효율적으로 관리하며, 대량의 메시지 상태 변경을 최적화된 방식으로 처리합니다.

주요 특징​

  • 일괄 업데이트: 여러 메시지의 상태를 한번의 요청으로 동시 처리
  • 성능 최적화: Bulk update를 통한 데이터베이스 효율성 향상
  • 상태 추적: 메시지 읽음, 상호작용, 만료 등 다양한 상태 관리
  • 실시간 반영: 업데이트된 상태가 즉시 시스템에 반영

데이터 활용​

업데이트된 메시지 상태 데이터는 다음과 같은 용도로 활용됩니다:

  • 사용자 경험 개선: 읽은 메시지와 읽지 않은 메시지 구분 표시
  • 상호작용 분석: 사용자의 메시지 참여도 및 반응 패턴 분석
  • 알림 관리: 읽지 않은 메시지 수 계산 및 알림 배지 표시
  • 워크플로우 최적화: 사용자 행동 기반 메시지 전략 개선
  • 데이터 분석: 메시지 효과성 및 사용자 참여도 측정

제약사항​

  • 유효한 액세스 토큰 필요 (JWT 인증)
  • 인증된 사용자만 해당 사용자의 메시지 상태 업데이트 가능
  • 메시지 ID 배열은 최소 1개 이상 필요 (빈 배열이나 null 값은 오류 반환)
  • status는 MessageStatus enum 값 중 하나여야 함 (유효하지 않은 값은 오류 반환)
  • 존재하지 않는 메시지 ID에 대해서는 무시되며 오류 발생하지 않음
  • 상태 변경은 비가역적 (되돌릴 수 없음)

메시지 상태 업데이트​

여러 에이전트 보드 메시지의 상태를 한번에 업데이트합니다.

  • HTTP Method: PATCH
  • Path: /v1/agent-board/messages/status
  • 인증: 액세스 토큰 (accessToken) 필요

Headers​

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰입니다.Yes
Content-Typeapplication/jsonJSON 형식의 요청 본문을 전송합니다.Yes
Acceptapplication/jsonJSON 형식의 응답을 요청합니다.Yes
Accept-Languagede-DE, en-US, ko-KR오류 메시지의 언어를 지정합니다. 지역 코드를 포함한 형식(예: de-DE, en-US, ko-KR)만 지원합니다.No

Request Body​

Request Schema

{
"messageIds": ["string"],
"status": "string"
}

Request Fields

필드타입설명예시값필수
messageIdsstring[]상태를 업데이트할 메시지 ID 배열 (최소 1개 이상 필요)["msg-123", "msg-456", "msg-789"]Yes
statusstring새로운 메시지 상태 - MessageStatus enum 값 중 하나여야 함"VIEWED"Yes

Responses​

HTTP Status Code설명Error Code(s)
200메시지 상태 업데이트 성공-
400잘못된 요청 파라미터BAD_REQUEST, MESSAGE_IDS_REQUIRED, INVALID_MESSAGE_STATUS
401인증되지 않은 액세스UNAUTHORIZED
500내부 서버 오류INTERNAL_ERROR

200 OK​

메시지 상태가 성공적으로 업데이트되었습니다.

Response Schema

{
"success": "boolean",
"updatedCount": "number",
"updatedMessageIds": ["string"],
"status": "string",
"message": "string"
}

Response Fields

필드타입설명예시값필수
successboolean업데이트 성공 여부trueYes
updatedCountnumber실제로 업데이트된 메시지 수3Yes
updatedMessageIdsstring[]업데이트된 메시지 ID 배열["msg-123", "msg-456", "msg-789"]Yes
statusstring업데이트된 상태 값 - MessageStatus 참조"VIEWED"Yes
messagestring업데이트 결과 메시지"Successfully updated 3 message(s) to VIEWED"Yes

데이터 타입 정의​

MessageStatus​

메시지의 현재 상태를 나타내는 상태 값입니다.

값설명사용 시점읽음 여부클라이언트 업데이트 가능 여부
QUEUED전달 대기메시지가 생성되었지만 아직 사용자에게 전달되지 않은 상태N❌
DELIVERED전달됨메시지가 사용자에게 성공적으로 전달된 상태N✅
VIEWED조회됨사용자가 메시지를 화면에서 확인한 상태Y✅
INTERACTED상호작용 발생사용자가 메시지의 액션 버튼을 클릭하거나 상호작용한 상태Y✅
EXTERNALLY_COMPLETED외부 완료다른 곳에서 관련 인터랙션 발생으로 완료 처리된 상태Y❌
EXPIRED만료됨메시지의 유효 기간이 지나 더 이상 표시되지 않는 상태Y✅
ARCHIVED아카이빙됨시스템에 의해 보관 처리되었거나, 사용자가 보관 처리한 상태Y✅

상태 변경 시나리오​

일반적인 메시지 상태 변경 흐름은 다음과 같습니다:

  1. QUEUED → DELIVERED: 메시지가 사용자에게 전달됨
  2. DELIVERED → VIEWED: 사용자가 메시지를 읽음
  3. VIEWED → INTERACTED: 사용자가 액션 버튼을 클릭함
  4. DELIVERED 또는 VIEWED → EXPIRED: 메시지 유효 기간 만료
  5. EXPIRED → ARCHIVED: 시스템에 의한 아카이빙
  6. DELIVERED -> EXTERNALLY_COMPLETED: 인터랙션 발생으로 완료 처리

Success Response Example

{
"success": true,
"updatedCount": 3,
"updatedMessageIds": ["msg-123", "msg-456", "msg-789"],
"status": "VIEWED",
"message": "Successfully updated 3 message(s) to VIEWED"
}

Request Example

{
"messageIds": ["msg-123", "msg-456", "msg-789"],
"status": "VIEWED"
}

400 Bad Request​

messageIds가 빈 배열이거나 누락된 경우:

{
"statusCode": 400,
"message": "메시지 ID 목록이 필요합니다.",
"error": "MESSAGE_IDS_REQUIRED",
"errorCode": 12059
}

status가 유효하지 않은 enum 값인 경우:

{
"statusCode": 400,
"message": "유효하지 않은 메시지 상태입니다.",
"error": "INVALID_MESSAGE_STATUS",
"errorCode": 12060
}

401 Unauthorized​

인증되지 않은 요청입니다.

{
"statusCode": 401,
"message": "Unauthorized access",
"error": "Unauthorized"
}

500 Internal Server Error​

서버 내부 오류가 발생했습니다.

{
"statusCode": 500,
"message": "Internal server error",
"error": "Internal Server Error"
}

사용 예시​

단일 메시지 읽음 처리​

curl -X PATCH "https://api.example.com/v1/agent-board/messages/status" \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"messageIds": ["msg-123"],
"status": "VIEWED"
}'

여러 메시지 일괄 상호작용 처리​

curl -X PATCH "https://api.example.com/v1/agent-board/messages/status" \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"messageIds": ["msg-123", "msg-456", "msg-789"],
"status": "INTERACTED"
}'

만료된 메시지 아카이빙​

curl -X PATCH "https://api.example.com/v1/agent-board/messages/status" \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"messageIds": ["msg-expired-1", "msg-expired-2"],
"status": "ARCHIVED"
}'

관련 API​