> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/kr/webhooks/webhook-events.md).

# 웹훅 이벤트

## 1. **플레이어 제재**

플레이어에게 제재가 부과되고 해당 플레이어의 `user_status` 업데이트되었습니다.&#x20;

*이벤트 유형:* `player-sanctioned`

*적용 대상:* 채팅, 음성, 게임 및 Discord

*트리거:* 플레이어가 다음 중 하나를 통해 제재될 때

* GGWP의 automod
* 대시보드를 통해 직접

*참고:* 다음 경우에는 이벤트가 트리거되지 않습니다 [상태 업데이트 API](/kr/api-6/player-status.md) 플레이어의 상태를 변경하는 데 사용됩니다.

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `player-sanctioned` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **세션 ID**: 해당되는 경우 제재가 시작된 세션의 식별자입니다.
  * **사건 ID**: 해당되는 경우 플레이어 제재를 유발한 사건의 식별자입니다.
  * **사용자 ID**: 제재된 플레이어의 식별자입니다.
  * **사용자 이름**: 제재된 플레이어의 표시 이름입니다.
  * **평판 점수**: 플레이어 평판 점수(150\~850 사이)입니다.
  * **타임스탬프**: 제재가 발생한 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
  * **채널**: 제재가 적용된 위치를 나타냅니다. 지원되는 채널은 `chat`, `voice`, `game` 및 `discord`.
  * **사건 유형**: 해당되는 경우 플레이어 제재를 유발한 사건과 관련된 사건 유형 목록입니다.
  * **심각도**: 해당되는 경우 플레이어 제재를 유발한 사건의 심각도입니다. 가능한 값은 `낮음`, `중간`, `높음`.
  * **신뢰도**: 해당되는 경우 플레이어 제재를 유발한 사건에 대한 신뢰도입니다. 가능한 값은 `낮음`, `중간`, `높음`, `매우 높음`.
  * **메시지들**: 해당되는 경우 사건과 관련된 메시지 세부 정보를 포함하는 딕셔너리 목록입니다. 다음을 포함합니다:
    * **메시지 ID**: 사건 생성을 유발한 메시지의 식별자입니다.
    * **오디오 ID**: 해당되는 경우 사건 생성을 유발한 오디오 클립의 식별자입니다.
    * **메시지**: 사건 생성을 유발한 메시지입니다.
    * **필터링된 메시지**: 채팅 API에서 반환된, 부적절한 내용이 마스킹된 메시지 버전입니다.
    * **타임스탬프**: 메시지가 전송된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
    * **언어**: 메시지의 언어입니다. 지원되는 언어의 전체 목록은 다음을 참조하세요. <https://docs.ggwp.com/api-docs-chat#language-support>.
    * **메타데이터**: 해당되는 경우 사건과 관련된 메시지의 메타데이터입니다.
  * **플레이어 제재**: 적용된 제재를 설명하는 딕셔너리입니다. 다음을 포함합니다:
    * **상태**: 업데이트된 플레이어 상태입니다. 가능한 값은 `session-muted` 및 `muted`.
    * **기간**: 제재 기간(초)입니다. 제재가 무기한 적용되는 경우 이 값은 `null`.
    * **만료 시각**: 제재가 만료되는 시각입니다. 트리거 타임스탬프에 제재 기간을 더한 결과여야 합니다. 제재가 무기한 적용되는 경우 이 값은 `null`.
  * **신고자:** 최근 2주 동안 제재된 플레이어를 신고한 플레이어 목록입니다. 다음을 포함하는 JSON 객체 배열입니다: `사용자 ID` 및 `사용자 이름`.
  * **제재한 주체:** 플레이어에게 제재를 부과한 주체를 설명하는 딕셔너리입니다. 다음을 포함합니다:
    * **유형:** 다음 중 하나일 수 있습니다 `humanmod` (모더레이터가 수동으로 제재한 경우) 또는 `automod` (Automod 서비스에 의해 자동으로 제재된 경우).
    * **이메일:** 플레이어에게 제재를 부과한 모더레이터의 이메일입니다. *참고: 키 `email` 는 다음 경우 존재하지 않습니다: `type == automod` .*
    * **이름:** 플레이어에게 제재를 부과한 모더레이터의 이름입니다. 다음일 수 있습니다 `null` name을 사용할 수 없는 경우입니다. *참고: 키 `name` 는 다음 경우 존재하지 않습니다: `type == automod` .*
  * **래더 레벨 변경:** 플레이어가 제재되었을 때 래더 레벨 변경 정보가 담긴 딕셔너리입니다. ladder\_level\_change의 값은 `ladder_level_change` 다음일 수 있습니다 `null` 게임이 Automod 서비스에 구독되어 있지 않은 경우입니다.

    * **현재 래더 레벨:** 제재 적용 시의 래더 레벨을 나타내는 정수입니다.&#x20;
    * **이전 래더 레벨:** 제재 적용 직전의 래더 레벨을 나타내는 정수입니다.

    *참고:*

    * 값 0은 플레이어가 아직 래더에 속해 있지 않음을 의미합니다.
    * 제재로 인해 래더 레벨 변경이 없었다면 두 값은 같을 수 있습니다.
  * **사건 수:** 최근 30일 동안 플레이어의 모든 부정적인 non-zero 사건 수를 소스별로(예: `chat`, `player_reports`, `voice`, 등) 및 incident\_type별(예: `profanity`, `verbal_abuse`, 등)로 묶어 담은 딕셔너리입니다.&#x20;

    *참고:*&#x20;

    * 하나의 사건은 여러 사건 범주와 연관될 수 있습니다. count는 해당 범주에 속하는 사건 수를 나타냅니다.
    * 키 `incident_count` **r**사건이 기록되지 않은 경우 빈 딕셔너리를 반환합니다
  * **소스***(선택 사항)***:** 사건의 소스를 나타냅니다. *참고: 이는 다음 경우에만 전송되는 선택적 키입니다. `사건 ID` 가 존재할 때입니다.*

#### 샘플 페이로드&#x20;

{% code overflow="wrap" %}

```json
{
  "type": "player-sanctioned",
  "event_id": "edce24d3-bf56-46b4-b5ea-40266mnaa5a84",
  "created_at": "2022-06-02 16:49:00",
  "data": {
    "session_id": "freeforallsession_o34u2",
    "incident_id": "20230629051500.000000-1aaf864e-1cdc-4c10-b1f2-ec90bfd4b244",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "timestamp": "2022-06-02 16:49:00",
    "channel": "chat",
    "incident_types": ["identity_hate", "chat_verbal_abuse"],
    "severity": "high",
    "confidence": "high",
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ],
    "player_sanction": {
      "status": "muted",
      "duration": 86400,
      "expiry_at": "2022-06-03 16:49:00"
    },
    "reporters": [
      {
        "username": "satish0521",
        "user_id": "101628273075088104"
      },
      {
        "username": "krishnan_ggwp_001",
        "user_id": "100730037617480092"
      },
      {
        "username": "sunandaisro",
        "user_id": "100901564882486072"
      }
    ],
    "sanctioned_by": {
      "type": "humanmod",
      "email": "sahil@fakeaccount.com",
      "name": "sahil"
    },
    "ladder_level_change": {
      "current_ladder_level": 1,
      "previous_ladder_level": 0
    },
    "incident_count": {
      "chat": {
        "chat_severe_verbal_abuse": 2,
        "identity_hate": 2,
        "threat": 2,
        "verbally_abusive_language": 2
      },
      "player_reports": {
        "cheating": 1,
        "exploiting": 1,
        "griefing": 1
      },
      "voice": {
        "sexual_reference": 2,
        "threat": 2,
        "verbally_abusive_language": 2
      }
    },
    "source": "chat"
  }
}
```

{% endcode %}

## **2. 플레이어 재활성화**

이전에 제재를 받았던 플레이어가 현재 활성 상태입니다.

*이벤트 유형:* `player-reinstated`

*적용 대상:* 채팅, 음성, 게임 및 Discord

*트리거:* 플레이어의 상태가 다시 활성으로 변경될 때. 이는 다음 때문일 수 있습니다.

* 모더레이터가 플레이어를 재활성화함
* 플레이어가 제재 기간을 완료함

*참고:* 다음 경우에는 이벤트가 트리거되지 않습니다 [상태 업데이트 API](/kr/api-6/player-status.md) 플레이어의 상태를 변경하는 데 사용됩니다.

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `player-reinstated` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **사용자 ID**: 재활성화된 플레이어의 식별자입니다.
  * **사용자 이름**: 재활성화된 플레이어의 표시 이름입니다.
  * **평판 점수**: 플레이어 평판 점수(150\~850 사이)입니다.
  * **타임스탬프**: 재활성화가 발생한 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
  * **채널**: 재활성화가 발생한 위치를 나타냅니다. 지원되는 채널은 `chat`, `voice`, `game` 및 `discord`.
  * **상태**: 업데이트된 플레이어 상태입니다. 기본값은 `active` 이 이벤트의 경우 다음과 같습니다.
  * **재활성화한 주체:** 플레이어를 재활성화한 주체를 설명하는 딕셔너리입니다. 다음을 포함합니다:
    * **유형:** 다음 중 하나일 수 있습니다 `humanmod` (모더레이터가 수동으로 재활성화한 경우) 또는 `automod` (제재 완료 시 Automod 서비스에 의해 자동으로 재활성화된 경우).
    * **이메일:** 플레이어를 재활성화한 모더레이터의 이메일입니다. *참고: 키 `email` 는 다음 경우 존재하지 않습니다: `type == automod` .*
    * **이름:** 플레이어를 재활성화한 모더레이터의 이름입니다. 다음일 수 있습니다 `null` name을 사용할 수 없는 경우입니다. *참고: 키 `name` 는 다음 경우 존재하지 않습니다: `type == automod` .*

#### 샘플 페이로드&#x20;

{% code overflow="wrap" %}

````json
{
  "type": "player-reinstated",
  "event_id": "edce24d3-bf56-46b4-b5ea-40266mnaa5a84",
  "created_at": "2022-06-02 16:49:00",
  "data": {
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "timestamp": "2022-06-02 16:49:00",
    "channel": "chat",
    "status": "active",
    "reinstated_by": {
      "type": "humanmod",
      "email": "sunanda@ggwp.com",
      "name": "sunanda"
    }
```
  }
}
````

{% endcode %}

## **3. 경고**

플레이어가 유해한 행동을 보이고 있으며, GGWP는 해당 독성을 완화하기 위해 경고를 보내도록 권장하려고 합니다.

*이벤트 유형:* `player-warning`

*적용 대상:* 채팅, 음성 및 게임

*트리거:* Automod가 중간 이상의 신뢰도를 가진 사건으로 플레이어의 평판 점수를 낮추는 경우

*참고:* 이 이벤트는 automod에 구독한 고객에게만 생성됩니다.

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `player-warning` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **세션 ID**: 경고가 시작된 세션의 식별자입니다.
  * **사건 ID**: 경고를 유발한 사건의 식별자입니다.
  * **메시지들**: 해당되는 경우 사건과 관련된 메시지 세부 정보를 포함하는 딕셔너리 목록입니다. 다음을 포함합니다:
    * **메시지 ID**: 사건 생성을 유발한 메시지의 식별자입니다.
    * **오디오 ID**: 해당되는 경우 사건 생성을 유발한 오디오 클립의 식별자입니다.
    * **메시지**: 사건 생성을 유발한 메시지입니다.
    * **필터링된 메시지**: 채팅 API에서 반환된, 부적절한 내용이 마스킹된 메시지 버전입니다.
    * **타임스탬프**: 메시지가 전송된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
    * **언어**: 메시지의 언어입니다. 지원되는 언어의 전체 목록은 다음을 참조하세요. <https://docs.ggwp.com/api-docs-chat#language-support>.
    * **메타데이터**: 해당되는 경우 사건과 관련된 메시지의 메타데이터입니다.
  * **사용자 ID**: 경고를 받은 플레이어의 식별자입니다.
  * **사용자 이름**: 경고를 받은 플레이어의 표시 이름입니다.
  * **평판 점수**: 플레이어 평판 점수(150\~850 사이)입니다.
  * **타임스탬프**: 경고가 발행된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
  * **채널**: 제재가 적용된 위치를 나타냅니다. 지원되는 채널은 `chat`, `voice` 및 `game` .
  * **사건 유형**: 해당되는 경우 경고를 유발한 사건과 관련된 사건 유형 목록입니다.
  * **심각도**: 해당되는 경우 경고를 유발한 사건의 심각도입니다. 가능한 값은 `낮음`, `중간`, `높음`.
  * **신뢰도**: 해당되는 경우 경고를 유발한 사건에 대한 신뢰도입니다. 가능한 값은 `낮음`, `중간`, `높음`, `매우 높음`.
  * **경고한 주체:** 경고를 발행한 주체를 설명하는 딕셔너리입니다. 다음을 포함합니다:
    * **유형:** 다음 중 하나일 수 있습니다 `humanmod` (모더레이터가 수동으로 경고를 발행한 경우) 또는 `automod` (Automod 서비스에 의해 자동으로 발행된 경우).
    * **이메일:** 경고를 발행한 모더레이터의 이메일입니다.\
      *참고: 키 `email` 는 다음 경우 존재하지 않습니다: `type == automod`.*
    * **이름:** 경고를 발행한 모더레이터의 이름입니다. name을 사용할 수 없으면 null일 수 있습니다.\
      *참고: 키 `name` 는 다음 경우 존재하지 않습니다: `type == automod`.*
  * **권장 경고**: 플레이어 알림에 포함할 권장 메시지입니다.

#### 샘플 페이로드&#x20;

{% code overflow="wrap" %}

```json
{
  "type": "player-warning",
  "event_id": "edce24d3-bf56-46b4-b5ea-40266mnaa5a84",
  "created_at": "2022-06-02 16:49:00",
  "data": {
    "session_id": "freeforallsession_o34u2",
    "incident_id": "20230629051500.000000-1aaf864e-1cdc-4c10-b1f2-ec90bfd4b244",
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ],
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "timestamp" : "2022-06-02 16:49:00",
    "channel": "chat", 
    "incident_types": ["identity_hate", "chat_verbal_abuse"],
    "severity": "high",
    "confidence": "high",
    "warned_by": {
      "type": "humanmod",
      "email": "moderator@example.com",
      "name": "John"
    },
    "recommended_warning": "This is a warning based on your recent chat behavior. Please refrain from sending anymore offensive messages in order to prevent being muted."
  }
}
```

{% endcode %}

## **4. 워크플로 통합**

대시보드에서 사건의 모든 워크플로 속성이 변경됩니다.

*이벤트 유형:* `incident-updated`

*트리거:* 사건과 관련된 다음 속성 중 하나의 값이 변경될 때

* `상태` -> `not-reviewed`, `reviewed`,`in-process`, `archived`, `escalated-for-deeper-review`
* `신뢰도` -> `very_low`, `낮음`, `중간`, `높음`, `매우 높음`
* `심각도` -> `낮음`, `중간`, `높음`
* `정확도` -> `not-confirmed`, `confirm-accurate`, `mark-inaccurate`, `dismiss-incident`
* `사건 담당자` -> 담당자의 이메일 ID입니다. 담당자가 없으면 값은 `null`
* `사건 유형`

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `incident-updated` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **사건 ID**: 업데이트된 사건의 식별자입니다.
  * **타임스탬프**: 사건이 업데이트된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
  * **사용자 ID**: 제재된 플레이어의 식별자입니다.
  * **사용자 이름**: 제재된 플레이어의 표시 이름입니다.
  * **평판 점수**: 플레이어 평판 점수(150\~850 사이)입니다.
  * **사건 세부 정보**: 사건 업데이트를 설명하는 딕셔너리입니다. 다음을 포함합니다:
    * **사용자**: 사건의 속성을 업데이트한 모더레이터/관리자에 대한 정보입니다.
    * **소스:** 사건이 적용된 위치를 나타냅니다. 지원되는 소스는 `chat`, `voice`, `player_reports` , `discord` , `usernames`  및 `image` .
    * **세션 ID**: 해당되는 경우 사건이 시작된 세션의 식별자입니다.
    * **변경 내역**: 이전 및 새 사건 세부 정보가 포함된 딕셔너리입니다. 다음을 포함합니다:
      * **이전**: 업데이트 적용 전의 이전 값 딕셔너리입니다.
      * **새 값**: 업데이트 적용 후의 새 값 딕셔너리입니다.
  * **메시지들**: 해당되는 경우 사건과 관련된 메시지 세부 정보를 포함하는 딕셔너리 목록입니다. 다음을 포함합니다:&#x20;
    * **메시지 ID**: 사건 생성을 유발한 메시지의 식별자입니다.
    * **오디오 ID**: 해당되는 경우 사건 생성을 유발한 오디오 클립의 식별자입니다.
    * **메시지**: 사건 생성을 유발한 메시지입니다.
    * **필터링된 메시지**: 채팅 API에서 반환된, 부적절한 내용이 마스킹된 메시지 버전입니다.
    * **타임스탬프**: 메시지가 전송된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
    * **언어**: 메시지의 언어입니다. 지원되는 언어의 전체 목록은 다음을 참조하세요. <https://docs.ggwp.com/api-docs-chat#language-support>.
    * **메타데이터**: 해당되는 경우 사건과 관련된 메시지의 메타데이터입니다.

#### 샘플 페이로드&#x20;

* 모더레이터가 티켓에 배정될 때

{% code overflow="wrap" %}

```json
{
  "type": "incident-updated",
  "event_id": "edce24d3-bf56-46b4-b5ea-40266mnaa5a84",
  "created_at": "2022-06-02 16:49:00",
  "data": {
    "incident_id": "20230629051500.000000-1aaf864e-1cdc-4c10-b1f2-ec90bfd4b244",
    "timestamp" : "2022-06-02 16:49:00", 
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "incident_details": {
      "user": "appuser@ggwp.com",
      "source": "chat",
      "session_id": "sessio9999999",
      "changelog": {
	"from": {"incident_assignee": null},
	"to": {"incident_assignee": "newmoderator@ggwp.com"}
      }
    },
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ]
  }
}
```

{% endcode %}

* 사건이 정확하다고 표시되어 신뢰도 수준이 변경될 때

{% code overflow="wrap" %}

```json
{
  "type": "incident-updated",
  "event_id": "182a35b0-5e5c-49d3-9d91-210aaaf51497",
  "created_at": "2024-02-23 10:41:03",
  "data": {
    "incident_id": "20240223094326.000000-ee79cba4-be6d-4d50-bfa9-cec5efe64f21",
    "timestamp": "2024-02-23 10:41:03",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "incident_details": {
      "user": "appuser@ggwp.com",
      "source": "chat",
      "session_id": "sessio9999999",
      "changelog": {
        "from": {
          "status": "not-reviewed",
          "confidence": "medium",
          "accuracy": "not-confirmed"
        },
        "to": {
          "status": "reviewed",
          "confidence": "very high",
          "accuracy": "confirm-accurate"
        }
      }
    },
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ]
  }
}
```

{% endcode %}

* 사건이 부정확하다고 표시되고 사건 유형이 변경될 때. 참고로, 신뢰도는 다음으로 변경됩니다. `매우 높음` 사람의 개입으로 인해.

{% code overflow="wrap" %}

```json
{
  "type": "incident-updated",
  "event_id": "383a9aae-1845-4448-b485-ff72d1afee2e",
  "created_at": "2024-02-23 10:41:33",
  "data": {
    "incident_id": "20240223094326.000000-ee79cba4-be6d-4d50-bfa9-cec5efe64f21",
    "timestamp": "2024-02-23 10:41:33",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 150,
    "incident_details": {
      "user": "appuser@ggwp.com",
      "source": "chat",
      "session_id": "sessio9999999",
      "changelog": {
        "from": {
          "status": "reviewed",
          "confidence": "very high",
          "incident_types": [
            "chat_offensive_language",
            "profanity"
          ],
          "accuracy": "confirm-accurate"
        },
        "to": {
          "status": "reviewed",
          "confidence": "very high",
          "incident_types": [
            "chat_verbal_abuse"
          ],
          "accuracy": "mark-inaccurate"
        }
      }
    },
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ]
  }
}
```

{% endcode %}

## 5. **인시던트 감지**

새 인시던트가 감지될 때 트리거됩니다.

*이벤트 유형:* `incident-detected`

*적용 대상:* 채팅, 음성, 플레이어 신고, 디스코드, 사용자 이름 및 이미지.

*트리거:* 다음 중 하나를 통해 인시던트가 생성될 때

* 채팅 메시지
* 음성 전사
* 플레이어 신고
* 디스코드 메시지
* 사용자 이름 생성
* 이미지

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `incident-detected` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **세션 ID**: 해당되는 경우 인시던트가 발생한 세션의 식별자 (n*사용자 이름에는 적용되지 않음*)
  * **사건 ID**: 인시던트 식별자.
  * **메시지들**: 해당되는 경우 인시던트와 관련된 메시지 세부 정보를 담은 딕셔너리 목록 (a*채팅, 음성, 디스코드에만 적용 가능*). 다음을 포함합니다:
    * **메시지 ID**: 사건 생성을 유발한 메시지의 식별자입니다.
    * **오디오 ID**: 해당되는 경우 사건 생성을 유발한 오디오 클립의 식별자입니다.
    * **메시지**: 사건 생성을 유발한 메시지입니다.
    * **필터링된 메시지**: 채팅 API에서 반환된, 부적절한 내용이 마스킹된 메시지 버전입니다.
    * **타임스탬프**: 메시지가 전송된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
    * **언어**: 메시지의 언어입니다. 지원되는 언어의 전체 목록은 다음을 참조하세요. <https://docs.ggwp.com/api-docs-chat#language-support>.
    * **메타데이터**: 해당되는 경우 사건과 관련된 메시지의 메타데이터입니다.
  * **사용자 ID**: 유해한 메시지를 보낸 플레이어의 식별자(채팅, 음성, 디스코드 및 사용자 이름) 또는 플레이어 신고를 통해 신고된 플레이어의 식별자.
  * **사용자 이름**: 플레이어의 표시 이름 ( `null` 사용자 이름이 없는 사용자 또는 사용자 이름 생성 중 유효하지 않은 사용자에 대해).
  * **평판 점수**: 플레이어 평판 점수(150\~850) (사용자 이름에는 적용되지 않음)
  * **타임스탬프**: 인시던트가 감지된 시각(UTC, YYYY-MM-DD HH:MM:SS 형식).
  * **소스**: 인시던트가 적용된 위치를 나타냅니다. 지원되는 소스는 `chat`, `voice`, `player_reports` , `discord` , `usernames` 및 `image` .
  * **사건 유형**: 인시던트와 연결된 인시던트 유형 목록.
  * **심각도**: 인시던트의 심각도. 가능한 값은 `낮음`, `중간`, `높음`.
  * **신뢰도**: 인시던트에 대한 신뢰도. 가능한 값은 `낮음`, `중간`, `높음`, `매우 높음`.
  * **reporters**: 해당되는 경우 신고자 목록 (a*플레이어 신고에만 적용 가능*). 다음을 포함합니다:
    * **사용자 ID**: 신고를 보낸 플레이어의 식별자.
    * **사용자 이름**: 신고를 보낸 플레이어의 표시 이름.
    * **comment**: 해당되는 경우 신고가 필요한 이유를 설명하는 댓글.
  * **flagged\_usernames**: 플래그된 사용자 이름 목록 *(사용자 이름에만 적용 가능).* 다음을 포함합니다:
    * **username\_id**: 인시던트 생성을 유발한 플래그된 사용자 이름의 고유 식별자.
    * **사용자 이름**: 인시던트 생성을 유발한 사용자 이름.
    * **타임스탬프**: 사용자 이름이 전송된 시각(UTC, YYYY-MM-DD HH:MM:SS 형식).
  * **flagged\_images**: 플래그된 이미지 목록 *(이미지에만 적용 가능).* 다음을 포함합니다:
    * **image\_id**: 인시던트 생성을 유발한 플래그된 이미지의 고유 식별자.
    * **타임스탬프**: 이미지가 전송된 시각(UTC, YYYY-MM-DD HH:MM:SS 형식).

#### 샘플 페이로드&#x20;

* 채팅 인시던트가 감지될 때

{% code overflow="wrap" %}

```json
{
  "type": "incident-detected",
  "event_id": "09152afb-7a61-4348-9959-6d1938f7f044",
  "created_at": "2024-09-05 23:49:45",
  "data": {
    "session_id": "sessio9999999",
    "incident_id": "20240905234945.804840-b9da93e1-82e0-47b4-adce-ac9ee3cd8cde",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 345,
    "timestamp": "2024-09-05 23:49:45",
    "incident_types": [
      "chat_verbal_abuse",
      "identity_hate"
    ],
    "severity": "high",
    "confidence": "medium",
    "source": "chat",
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "no ur a b*tch",
        "filtered_message": "no ur a *****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english",
        "metadata": {
          "position": {
            "x": 154,
            "y": 112,
            "z": 77
          }
        }
      }
    ]
  }
}
```

{% endcode %}

* 음성 인시던트가 감지될 때

{% code overflow="wrap" %}

```json
{
  "type": "incident-detected",
  "event_id": "09152afb-7a61-4348-9959-6d1938f7f044",
  "created_at": "2024-04-10 05:50:39",
  "data": {
    "session_id": "sessio9999999",
    "incident_id": "20240410054953.222782-b9da93e1-82e0-47b4-adce-ac9ee3cd8cde",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 345,
    "timestamp": "2024-09-05 23:49:45",
    "incident_types": [
      "chat_verbal_abuse",
      "identity_hate"
    ],
    "severity": "high",
    "confidence": "medium",
    "source": "voice",
    "messages": [
      {
        "message_id": "20240410054953.222782-2072ec67-f3b6-4c2d-bfa4-9cc13f81b7a8",
        "audio_id": "fe8ef39c-0d70-417f-9087-6f4cf7ad5308",
        "message": "no you are a bitch",
        "filtered_message": "no you are a *****",
        "timestamp": "2024-04-10 05:49:53",
        "language": "english"
      }
    ]
  }
}
```

{% endcode %}

* 디스코드 인시던트가 감지될 때

```json
{
  "type": "incident-detected",
  "event_id": "13f219b9-2a09-4736-91ec-d783df5f5bf9",
  "created_at": "2024-09-05 23:49:45",
  "data": {
    "session_id": "1008833492383178872_1025355886220288060",
    "incident_id": "20240905234945.804840-c9f36850-0ea3-41b3-831c-647c2a81e737",
    "user_id": "8e6eebe7-944f-4209-a94e-9a79e1cb7a41",
    "username": "clive",
    "reputation_score": 450,
    "timestamp": "2024-09-05 23:49:45",
    "incident_types": [
      "chat_offensive_language",
      "criticizing_gameplay"
    ],
    "severity": "low",
    "confidence": "medium",
    "source": "discord",
    "messages": [
      {
        "message_id": "20240905234945.804840-19ea0a90-ecf8-4daa-849c-b9e0ef7cc705",
        "message": "you guys suck",
        "filtered_message": "you guys ****",
        "timestamp": "2024-09-05 23:49:45",
        "language": "english"
      }
    ]
  }
}
```

* 플레이어 신고 인시던트가 감지될 때

```json
{
  "type": "incident-detected",
  "event_id": "c8476d6b-fcd4-4254-b762-8b1b825d4995",
  "created_at": "2024-04-10 07:17:27",
  "data": {
    "session_id": "1008833492383178872_1025355886220288060",
    "incident_id": "12b2e6cd-7d5b-5f30-9b29-a61dc631351f",
    "user_id": "12aladf91",
    "username": "sharonsfakeaccount",
    "reputation_score": 212,
    "timestamp": "2024-04-10 07:14:51",
    "incident_types": [
      "cheating"
    ],
    "severity": "low",
    "confidence": "low",
    "source": "player_reports",
    "reporters": [
      {
        "username": "clive",
        "user_id": "8e6eebe7-944f-4209-a94e-9a79e1cb7a41",
        "comment": "Swearing in game"
      }
    ]
  }
}
```

* 사용자 이름 인시던트가 감지될 때

```json
{
  "type": "incident-detected",
  "event_id": "9fcea299-13d7-42e4-9317-c4a431b7a877",
  "created_at": "2025-05-27 23:39:32",
  "data": {
    "incident_id": "20250527233727-2c9b5c4f-105e-4d8c-aaa1-e3122c80f703",
    "user_id": "user1234",
    "username": null,
    "timestamp": "2025-05-27 23:37:27",
    "incident_types": [
      "sexual_content",
      "verbal_abuse"
    ],
    "severity": "low",
    "confidence": "high",
    "source": "usernames",
    "flagged_usernames": [
      {
        "username_id": "20250527233727-3db17bf0-4748-488c-a187-b409a9a73155",
        "username": "BigCock",
        "timestamp": "2025-05-27 23:37:27"
      }
    ]
  }
}
```

* 이미지 인시던트가 감지될 때

```json
{
  "type": "incident-detected",
  "event_id": "3954725b-1cb8-44dc-9827-bd839f3848bd",
  "created_at": "2026-06-18 04:13:52",
  "data": {
    "incident_id": "20260618041318.965248-14a03030-e573-4920-9e53-c9155d003b57",
    "user_id": "user1234",
    "username": null,
    "timestamp": "2026-06-18 04:13:18",
    "incident_types": [
      "alcohol_drugs"
    ],
    "severity": "low",
    "confidence": "high",
    "source": "image",
    "flagged_images": [
      {
        "image_id": "20260618041318.965248-732f7827-a53d-49c0-8f04-34e96fb7940f",
        "timestamp": "2026-06-18 04:13:18"
      }
    ]
  }
}
```

## 6. 플레이어 평판 점수 배치

평판 점수 배치 CSV를 다운로드할 준비가 되면 트리거되며, 호출 후 [평판 배치 API](/kr/api-7/reputation-score-batch.md).&#x20;

*이벤트 유형:* `player-reputation-batch-export`

*트리거:* 평판 점수 배치 CSV를 다운로드할 준비가 되면 트리거됩니다

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `player-reputation-batch-export` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * csv\_urls: 모든 사용자의 평판 점수 데이터가 포함된 CSV 파일의 URL입니다.

#### 샘플 페이로드

{% code overflow="wrap" %}

```json
{
  "type": "player-reputation-batch-export",
  "event_id": "6dd903ba-c464-4a78-9706-88c9d5ee455e",
  "created_at": "2024-10-08 05:18:48",
  "data": {
    "csv_urls": [
      "https://ggwp-list-export.com/dev/91012e3b8a27426a95a43a3d84bad440-players.csv?AWSAccessKeyId=ASIAQEFB2&Signature=xP8B%2Bw2F1O8rFHYhfJ8Vj7p0KkI%3D&x-amz-security-token=IQoJbRjURp%3D&Expires=1728366528"
    ]
  }
}
```

{% endcode %}

**참고:** 사용자 수가 1,000,000명을 초과하는 경우 데이터는 여러 CSV 파일로 분할됩니다.

## 7. 그루밍 경고

*이벤트 유형:* `grooming-alert`

*적용 대상:* 채팅, 음성 및 디스코드

*트리거:* 플레이어의 커뮤니케이션 패턴을 기반으로 새로운 그루밍 플래그가 생성될 때

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `grooming-alert` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **user\_id:** 잠재적 그루밍으로 플래그된 플레이어의 고유 식별자.
  * **username:** 플레이어의 표시 이름.
  * **date:** 이벤트가 감지된 시각(YYYY-MM-DD 형식).
  * **소스:** 인시던트가 감지된 소스입니다. 지원되는 값은: `chat`, `voice`, `discord`.
  * **risk\_level:** 집계된 지표를 기반으로 알림의 신뢰도를 측정합니다. 가능한 값은: `낮음`, `중간`, `높음`.&#x20;
  * **top\_risk\_indicators:** 이 알림에 가장 크게 기여하는 지표들입니다. 이는 플래그된 사용자가 일반적인 사용자 상호작용과 비교해 잠재적 고통이나 비정상적인 감정 행동의 징후를 보인 커뮤니케이션 패턴을 나타냅니다. 가능한 값은 다음과 같습니다:
    * 나이 요청 - 대상의 나이를 알아내려는 시도.
    * 유혹적인 행동 - 대상의 외모에 대한 칭찬.
    * 성별 요청 - 대상의 성별을 알아내려는 시도.
    * 개인 식별 정보 요청 - 개인 식별 정보를 요구함.
    * 사생활 침해 - 대상의 거주 상황 또는 관계 상태를 캐묻는 행위.
    * 사진 요청 - 대상의 신체 이미지 또는 동영상을 요청함.
    * 만남 요청 - 직접 만남을 주선하려는 시도.
    * 은밀한 언어 - 대상이 대화를 다른 사람에게 숨기도록 유도하는 언어.
    * 성적 콘텐츠 - 특정 대상이 없는 노골적인 성적 언어 또는 콘텐츠.
    * 성희롱 - 성적 대상화, 물화, 모욕, 압박 또는 폄하를 목적으로 한 직접적인 성적 언어 또는 행동.
    * 성폭력 - 폭력, 강압, 협박 또는 동의 부족이 수반된 성적 행위를 언급, 위협, 미화 또는 설명하는 성적 언어.
  * **reputation\_score:** 플레이어의 평판 점수(150\~850).

#### 샘플 페이로드

{% code overflow="wrap" %}

```json
{
  "type": "grooming-alert",
  "event_id": "a914c763-22b8-4f65-b7b2-46a912e1df0a",
  "created_at": "2025-07-03 09:12:27",
  "data": {
    "user_id": "plr_5829zb",
    "username": "crimsonvale",
    "date": "2025-07-03",
    "source": "chat",
    "risk_level": "high",
    "top_risk_indicators": [
      "Flirtatious Behavior", 
      "Privacy Invasion",
      "Age Request"
    ],
    "reputation_score": 657
  }
}
```

{% endcode %}

## 8. 정신 건강 경고

*이벤트 유형:* `mental-health-alert`

*적용 대상:* 채팅, 음성 및 디스코드

*트리거:* 플레이어의 커뮤니케이션 패턴을 기반으로 새로운 정신 건강 플래그가 생성될 때

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `mental-health-alert` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **user\_id:** 잠재적 정신 건강 위험으로 플래그된 플레이어의 고유 식별자.
  * **username:** 플레이어의 표시 이름.
  * **date:** 이벤트가 감지된 시각(YYYY-MM-DD 형식).
  * **소스:** 인시던트가 감지된 소스입니다. 지원되는 값은: `chat`, `voice`, `discord`.
  * **risk\_level:** 집계된 지표를 기반으로 알림의 신뢰도를 측정합니다. 가능한 값은: `낮음`, `중간`, `높음`.&#x20;
  * **top\_risk\_indicators: i**이 알림에 가장 크게 기여하는 지표들입니다. 이는 플래그된 사용자가 일반적인 사용자 상호작용과 비교해 잠재적 고통이나 비정상적인 감정 행동의 징후를 보인 커뮤니케이션 패턴을 나타냅니다. 가능한 값은 다음과 같습니다:
    * 가정 내 갈등 - 학대, 불편한 가족 관계, 가정 내 다툼 또는 가족 지원 체계 상실에 대한 언급.
    * 경제적 곤란 - 식비, 주거비 또는 기본적인 일상 필수품을 감당할 수 없는 등 재정적 어려움에 대한 언급.
    * 학업 스트레스 - 학업 압박, 번아웃, 중퇴 또는 학교/대학 환경에서의 사회적 어려움과 관련된 고통.
    * 관계 고통 - 사랑받지 못한다고 느끼는 감정, 연인과의 갈등, 버림받을 것에 대한 두려움 등 연애 관계와 관련된 정서적 고통.
    * 자해 - 스스로를 신체적으로 해칠 의도 표명 또는 과거/현재의 자해 행위에 대한 언급.
    * 자기 혐오 - 깊은 자기 혐오, 사랑이나 소속감을 받을 자격이 없다고 느끼는 것, 또는 자신의 존재에 가치가 없다고 느끼는 표현.
    * 자살 충동 - 죽고 싶다는 표현, 자신이 없으면 세상이 더 나아질 것 같다는 느낌, 또는 자살을 적극적으로 고민하는 것.
  * **reputation\_score:** 플레이어의 평판 점수(150\~850).

#### 샘플 페이로드

{% code overflow="wrap" %}

```json
{
  "type": "mental-health-alert",
  "event_id": "f913d2e1-4b8e-4f0b-a1b7-8e4a930cd3d6",
  "created_at": "2025-08-22 11:39:28",
  "data": {
    "user_id": "plr_6729qw",
    "username": "nova_ember",
    "date": "2025-08-22",
    "source": "chat",
    "risk_level": "medium",
    "top_risk_indicators": [
      "Suicide Ideation", 
      "Self Harm", 
      "Domestic Conflict"
    ],
    "reputation_score": 328
  }
}
```

{% endcode %}

## 9. 플레이어 이탈 위험

플레이어가 행동 지표를 바탕으로 이탈의 초기 징후를 보이고 있으며 이탈 위험이 높을 수 있습니다. 이 이벤트를 처리하면 플레이어가 완전히 이탈하기 전에 고객 지원 또는 라이브 운영팀이 넛지, 제안, 검토 등의 선제적 개입을 할 수 있습니다.

*이벤트 유형:* `player-churn-risk`

*적용 대상:* 채팅

*트리거:* 플레이어의 최근 행동이 여러 참여 요인을 바탕으로 이탈 위험에 대한 정의된 임계값을 넘을 때. 고위험 등급만 이 이벤트를 트리거합니다.

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형. 기본값은 `player-churn-risk` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자.
* **생성 시각**: 이벤트가 트리거된 시각(UTC, YYYY-MM-DD HH:MM:SS 형식).
* **데이터**: 모든 추가 이벤트 세부 정보의 컨테이너.
  * **사용자 ID**: 위험에 처한 플레이어의 고유 식별자.
  * **사용자 이름**: 플레이어의 표시 이름.
  * **타임스탬프**: 이탈 위험 판단 시각(UTC).
  * **risk\_factors**: 이탈 위험에 기여하는 참여 차원의 목록입니다. 각 이벤트에는 가장 관련성이 높은 지표만 포함됩니다. 가능한 값은 다음과 같습니다:
    * `Sparse Activity`
    * `Low Social Interaction`
    * `Declining Engagement`
    * `Reduced Message Effort`
    * `New Player`
    * `Weak Collaboration`
    * `Limited Positivity`
    * `Unclear Language`
    * `Conflict Signals`
    * `Technical Issues`
  * **reports\_filed**: 최근 30일 동안 플레이어가 제출한 신고 요약입니다. 유형별 신고 수가 담긴 딕셔너리를 포함합니다(예: 괴롭힘, 부정행위)
  * **reports\_received**: 최근 30일 동안 해당 플레이어를 대상으로 접수된 신고 요약입니다. 유형별 신고 수가 담긴 딕셔너리를 포함합니다(예: 학대, 스팸 발송)

#### 샘플 페이로드

{% code overflow="wrap" %}

```json
{
  "type": "player-churn-risk",
  "event_id": "b328e182-d4fc-4f2b-b302-d0f9152bb08a",
  "created_at": "2025-06-12 18:45:00",
  "data": {
    "user_id": "plr_8391xa",
    "username": "runefirex",
    "timestamp": "2025-06-12 18:44:50",
    "risk_factors": [
      "Declining Engagement", 
      "Weak Collaboration", 
      "Technical Issues"
    ],
    "sessions_with_flagged_players": 15,
    "reports_filed": {
      "cheating": 4,
      "bullying": 6
    },
    "reports_received": {
      "abusing": 4,
      "cheating": 1
    }
  }
}
```

{% endcode %}

## 10. **메시지 피드백**&#x20;

*이벤트 유형:* `message-feedback`

*적용 대상:* 채팅, 음성 및 디스코드

*트리거:* 모더레이터가 비부정적 인시던트 또는 메시지에 대한 피드백을 제출할 때.

*페이로드 설명:*

* **유형**: 웹훅 이벤트 유형입니다. 기본값은 `message-feedback` 이 이벤트의 경우 다음과 같습니다.
* **이벤트 ID**: 이벤트의 고유 식별자입니다.
* **생성 시각**: 이벤트가 트리거된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
* **데이터**: 추가 이벤트 세부 정보를 포함하는 딕셔너리입니다. 다음을 포함합니다:&#x20;
  * **사건 ID**: 피드백과 관련된 인시던트의 식별자 - 기존의 비부정적 인시던트 또는 메시지를 위해 새로 생성된 인시던트.
  * **세션 ID**: 해당되는 경우 인시던트가 발생한 세션의 식별자
  * **타임스탬프**: 피드백이 제출된 시각(UTC, YYYY-MM-DD HH:MM:SS 형식).
  * **사용자 ID**: 메시지를 보낸 플레이어의 식별자.
  * **사용자 이름**: 메시지를 보낸 플레이어의 표시 이름.
  * **평판 점수**: 플레이어 평판 점수(150\~850 사이)입니다.
  * **소스**: 인시던트/메시지의 출처를 나타냅니다. 지원되는 소스는 `chat`, `voice`, `discord`.
  * **심각도**: 피드백이 제출된 인시던트의 심각도. 가능한 값은 `낮음`, `중간`, `높음`.
  * **신뢰도**: 피드백이 제출된 인시던트에 대한 신뢰도. 가능한 값은 `낮음`, `중간`, `높음`, `매우 높음`.
  * **score\_change**: 제출된 피드백으로 인해 변경된 플레이어 점수
  * **사건 유형**: 모더레이터가 제출한 피드백에 포함된 인시던트 유형 목록.
  * **feedback**: 모더레이터가 제출한 피드백 메시지
  * **submitted\_by**: 해당되는 경우 피드백을 제출한 모더레이터의 이메일
  * **message\_details**: 해당되는 경우 인시던트와 관련된 메시지 세부 정보를 담은 딕셔너리. 다음을 포함합니다:
    * **메시지 ID**: 피드백이 제출된 메시지의 식별자.
    * **오디오 ID**: 해당되는 경우 피드백이 제출된 오디오 클립의 식별자.
    * **메시지**: 피드백이 제출된 메시지.
    * **필터링된 메시지**: 채팅 API에서 반환된, 부적절한 내용이 마스킹된 메시지 버전입니다.
    * **타임스탬프**: 메시지가 전송된 시각으로, UTC 기준 YYYY-MM-DD HH:MM:SS 형식입니다.
    * **언어**: 메시지의 언어입니다. 지원되는 언어의 전체 목록은 다음을 참조하세요. <https://docs.ggwp.com/api-docs-chat#language-support>.
    * **메타데이터**: 해당되는 경우 사건과 관련된 메시지의 메타데이터입니다.

#### 샘플 페이로드&#x20;

{% code overflow="wrap" %}

```json
{
  "type": "message-feedback",
  "event_id": "c0af414d-5bc8-4176-a574-e2e511a31980",
  "created_at": "2026-01-21 11:55:05",
  "data": {
    "incident_id": "20260121113632.810202-c49d9cc9-00a1-4246-8945-624b78818d0c",
    "session_id": "jan_20_2026_s05",
    "timestamp": "2026-01-21 11:55:05",
    "user_id": "jan_20_2026_u05",
    "username": "jan_20_2026_u05",
    "reputation_score": 450,
    "source": "chat",
    "severity": "medium",
    "confidence": "very high",
    "score_change": -10,
    "incident_types": [
      "bullying"
    ],
    "feedback": "bullying message",
    "user": "krishnan@ggwp.com",
    "message_details": {
      "message_id": "20260121113632.810202-3e95db1f-fccc-4c60-8638-f01449e69a57",
      "message": "hey fella",
      "filtered_message": "hey fella",
      "timestamp": "2026-01-21 11:36:32",
      "language": "english"
    }
  }
}
```

{% endcode %}
