이벤트 · 사용자와 접근 권한
app.revoked
앱 인가 취소됨
OAuth 앱에 대한 직원 인가가 취소되었어요(data.app: id, name; data.authorization_id, data.user_id, data.scopes; data.reason: user | admin | app_deleted).
- 객체 유형
- app
- 전송 대상
- admin 역할의 웹훅
페이로드
idstring필수이벤트 ID(
evt_…)로,webhook-id헤더로도 보내요. 중복 전송을 걸러 내는 데 쓰세요.typestring필수허용 값:
app.revokedcreated_atstring (date-time)필수변경이 일어난 시각(UTC).
org_idinteger필수api_versionstring필수data스키마의 계약 버전.sequenceinteger웹훅 안에서의 전송 순번(테스트 이벤트에는 없어요).
payloadstring필수thin은data필드가 없다는 뜻이에요: API로 객체를 읽으세요.허용 값:
fullthindataobject필드
appobject필수앱: ID와 이름.
필드
idstringnamestring
authorization_idinteger필수직원 인가.
user_idinteger필수앱을 인가한 직원.
scopesarray of string필수인가의 스코프.
reasonstring필수user,admin또는app_deleted.
testboolean필수POST /v1/webhooks/{webhook_id}/test로 보낸 테스트 이벤트.
전송 예시
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "app.revoked",
"created_at": "2026-10-24T10:00:03Z",
"org_id": 1,
"api_version": "1.62.0",
"sequence": 1042,
"object": {
"type": "app",
"id": "app_8f14e45fceea167a5a36dedd4bea2543"
},
"payload": "full",
"data": {
"app": {
"id": "app_8f14e45fceea167a5a36dedd4bea2543",
"name": "CRM sync"
},
"authorization_id": 12,
"user_id": 7,
"scopes": [
"cards:read",
"search"
],
"reason": "user"
},
"test": false
}이벤트 수신
각 전송은 이 JSON 본문을 웹훅의 수신 주소로 보내는 POST 요청이에요. 본문을 신뢰하기 전에 webhook-signature 헤더(Standard Webhooks)를 검증하고, 몇 초 안에 2xx 상태로 응답한 다음 처리는 그 뒤에 하세요. 한 웹훅으로 가는 전송은 이벤트 순서를 지키며, 실패한 전송은 간격을 늘려 가며 재시도해요.
새 이벤트 유형과 새 필드는 언제든 추가될 수 있어요. 모르는 유형과 필드는 건너뛰세요.