webhooks
This skill covers Jira Cloud webhook registration, event types, payload formats, and security.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
This skill covers Jira Cloud webhook registration, event types, payload formats, and security.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
This skill covers batch create, update, delete, and transition operations for the Jira Cloud REST API.
This skill covers pagination strategies for the Jira Cloud REST API, including offset-based and cursor-based pagination.
Complete endpoint reference for the Jira Cloud REST API v3.
This skill covers all authentication methods for the Jira Cloud REST API.
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
Complete JQL (Jira Query Language) syntax reference for searching issues in Jira Cloud.
| name | webhooks |
| description | This skill covers Jira Cloud webhook registration, event types, payload formats, and security. |
This skill covers Jira Cloud webhook registration, event types, payload formats, and security.
Jira Cloud supports two webhook approaches:
POST /rest/api/3/webhook
curl -X POST \
-H "Authorization: Basic $(echo -n '$JIRA_USER_EMAIL:$JIRA_API_TOKEN' | base64)" \
-H "Content-Type: application/json" \
"https://{domain}.atlassian.net/rest/api/3/webhook" \
-d '{
"webhooks": [
{
"url": "https://your-app.example.com/webhooks/jira",
"events": [
"jira:issue_created",
"jira:issue_updated",
"jira:issue_deleted"
],
"jqlFilter": "project = PROJ",
"fieldIdsFilter": ["summary", "status", "assignee"]
}
]
}'
GET /rest/api/3/webhook
DELETE /rest/api/3/webhook
curl -X DELETE \
-H "Authorization: Basic $(echo -n '$JIRA_USER_EMAIL:$JIRA_API_TOKEN' | base64)" \
-H "Content-Type: application/json" \
"https://{domain}.atlassian.net/rest/api/3/webhook" \
-d '{
"webhookIds": [10001, 10002]
}'
PUT /rest/api/3/webhook/refresh
Dynamic webhooks expire after 30 days. Refresh them before expiry:
curl -X PUT \
-H "Authorization: Basic $(echo -n '$JIRA_USER_EMAIL:$JIRA_API_TOKEN' | base64)" \
-H "Content-Type: application/json" \
"https://{domain}.atlassian.net/rest/api/3/webhook/refresh" \
-d '{
"webhookIds": [10001, 10002]
}'
GET /rest/api/3/webhook/failed
| Event | Triggered When |
|---|---|
jira:issue_created | An issue is created |
jira:issue_updated | An issue is updated (fields, status, etc.) |
jira:issue_deleted | An issue is deleted |
| Event | Triggered When |
|---|---|
comment_created | A comment is added |
comment_updated | A comment is edited |
comment_deleted | A comment is removed |
| Event | Triggered When |
|---|---|
issuelink_created | Issues are linked |
issuelink_deleted | An issue link is removed |
| Event | Triggered When |
|---|---|
attachment_created | A file is attached |
attachment_deleted | An attachment is removed |
| Event | Triggered When |
|---|---|
sprint_created | A sprint is created |
sprint_updated | A sprint is updated |
sprint_started | A sprint is started |
sprint_closed | A sprint is completed |
sprint_deleted | A sprint is deleted |
| Event | Triggered When |
|---|---|
board_created | A board is created |
board_updated | A board is updated |
board_deleted | A board is deleted |
board_configuration_changed | Board config changes |
| Event | Triggered When |
|---|---|
project_created | A project is created |
project_updated | A project is updated |
project_deleted | A project is deleted |
project_soft_deleted | A project is moved to trash |
project_restored_deleted | A project is restored from trash |
| Event | Triggered When |
|---|---|
user_created | A user is added |
user_updated | A user is updated |
user_deleted | A user is removed |
| Event | Triggered When |
|---|---|
worklog_created | Work is logged |
worklog_updated | A worklog is updated |
worklog_deleted | A worklog is removed |
{
"timestamp": 1711843200000,
"webhookEvent": "jira:issue_created",
"issue_event_type_name": "issue_created",
"user": {
"accountId": "user-account-id",
"displayName": "John Doe",
"emailAddress": "john@example.com"
},
"issue": {
"id": "10001",
"key": "PROJ-123",
"fields": {
"summary": "New issue summary",
"status": {
"name": "Open",
"statusCategory": {
"key": "new",
"name": "To Do"
}
},
"issuetype": {
"name": "Task"
},
"project": {
"key": "PROJ",
"name": "My Project"
},
"assignee": {
"accountId": "assignee-account-id",
"displayName": "Jane Smith"
},
"priority": {
"name": "High"
},
"created": "2026-03-19T00:00:00.000+0000",
"updated": "2026-03-19T00:00:00.000+0000"
}
},
"changelog": {
"items": [
{
"field": "status",
"fieldtype": "jira",
"from": "1",
"fromString": "Open",
"to": "3",
"toString": "In Progress"
}
]
}
}
Webhooks can include a jqlFilter to receive events only for matching issues:
{
"jqlFilter": "project = PROJ AND issuetype = Bug AND priority = High"
}
Only jira:issue_created, jira:issue_updated, and jira:issue_deleted events support JQL filtering.
Use fieldIdsFilter to limit the fields included in webhook payloads:
{
"fieldIdsFilter": ["summary", "status", "assignee", "priority"]
}
This reduces payload size and improves processing efficiency.
GET /rest/api/3/webhook/failed to check for delivery failures