이벤트 · 사용자와 접근 권한
user.updated
사용자 수정됨
사용자 필드가 바뀌었어요. 이름, 이메일, 로그인, 역할, 상태가 해당돼요(data.previous_attributes 필드에 이전 값이 있어요).
- 객체 유형
- user
- 전송 대상
- admin 역할의 웹훅
페이로드
idstring필수이벤트 ID(
evt_…)로,webhook-id헤더로도 보내요. 중복 전송을 걸러 내는 데 쓰세요.typestring필수허용 값:
user.updatedcreated_atstring (date-time)필수변경이 일어난 시각(UTC).
org_idinteger필수api_versionstring필수data스키마의 계약 버전.sequenceinteger웹훅 안에서의 전송 순번(테스트 이벤트에는 없어요).
payloadstring필수thin은data필드가 없다는 뜻이에요: API로 객체를 읽으세요.허용 값:
fullthindataobject필드
actor_idinteger | null필수해당 동작을 수행한 사용자. 조직 API 키나 플랫폼 자체가 수행했으면
null이에요.previous_attributesobject필수객체에서 변경된 최상위 필드의 이전 값.
testboolean필수POST /v1/webhooks/{webhook_id}/test로 보낸 테스트 이벤트.
전송 예시
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "user.updated",
"created_at": "2026-10-24T10:00:03Z",
"org_id": 1,
"api_version": "1.62.0",
"sequence": 1042,
"object": {
"type": "user",
"id": "11"
},
"payload": "full",
"data": {
"user": {
"id": 11,
"username": "anna",
"display_name": "Anna Smith",
"email": "anna@example.com",
"role": "editor",
"active": true
},
"actor_id": 7,
"previous_attributes": {
"role": "viewer"
}
},
"test": false
}이벤트 수신
각 전송은 이 JSON 본문을 웹훅의 수신 주소로 보내는 POST 요청이에요. 본문을 신뢰하기 전에 webhook-signature 헤더(Standard Webhooks)를 검증하고, 몇 초 안에 2xx 상태로 응답한 다음 처리는 그 뒤에 하세요. 한 웹훅으로 가는 전송은 이벤트 순서를 지키며, 실패한 전송은 간격을 늘려 가며 재시도해요.
새 이벤트 유형과 새 필드는 언제든 추가될 수 있어요. 모르는 유형과 필드는 건너뛰세요.