Payload Format
GitScrum webhook payload structure: JSON format, common fields, resource types, and example payloads for all event categories.
All webhook payloads are delivered as JSON via HTTP POST requests. This page documents the structure and common fields.
Request Format
Every webhook delivery is an HTTP POST request with:
- Content-Type:
application/json - Body: JSON object containing the resource data
Payload Structure
All payloads follow a consistent wrapper structure:
{
"data": {
// Resource fields
}
}The data object contains the full resource representation. The fields depend on the event type and corresponding resource.
Task Resource (BoardTaskResource)
Task events (issues.*) deliver payloads using the BoardTask resource format:
{
"data": {
"uuid": "abc123-def456-ghi789",
"title": "Task title",
"description": "Task description in plain text",
"type": {
"title": "Feature",
"color": "#22C55E"
},
"workflow": {
"title": "In Progress",
"color": "#3B82F6",
"position": 1
},
"priority": {
"title": "High",
"color": "#EF4444"
},
"effort": {
"title": "Medium",
"color": "#F59E0B"
},
"labels": [
{
"title": "Frontend",
"color": "#8B5CF6"
}
],
"users": [
{
"username": "johndoe",
"name": "John Doe",
"avatar": "https://..."
}
],
"config_sprint": {
"title": "Sprint 14"
},
"config_user_story": {
"title": "User authentication"
},
"due_date": "2025-01-15",
"stats": {
"checklists": 3,
"comments": 2,
"attachments": 1,
"videos": 0,
"time_trackings": "02:30:00"
},
"created_at": {
"date_for_humans": "2 hours ago",
"timezone": "UTC"
},
"updated_at": {
"date_for_humans": "5 minutes ago",
"timezone": "UTC"
}
}
}Key Fields
| Field | Type | Description |
|---|---|---|
uuid | string | Unique identifier for the task |
title | string | Task title |
description | string | Task description |
type | object | Task type with title and color |
workflow | object | Current Kanban column with title, color, position |
priority | object | Priority level with title and color |
effort | object | Effort estimation with title and color |
labels | array | Array of label objects |
users | array | Assigned users |
config_sprint | object/null | Associated sprint |
configuserstory | object/null | Associated user story |
due_date | string/null | Due date in YYYY-MM-DD format |
stats | object | Counters for related items |
created_at | object | Creation timestamp |
updated_at | object | Last update timestamp |
Sprint Resource
Sprint events (sprints.*) deliver payloads with sprint details:
{
"data": {
"uuid": "sp-abc123-def456",
"title": "Sprint 14",
"description": "Authentication module sprint",
"status": {
"title": "Open",
"color": "#22C55E"
},
"date_start": "2025-01-06",
"date_finish": "2025-01-20",
"time_box": 14,
"stats": {
"issues_count": 12,
"closed_issues_count": 5,
"effort_total": 34
},
"created_at": {
"date_for_humans": "1 week ago",
"timezone": "UTC"
}
}
}User Story Resource
User story events (user-stories.*) deliver:
{
"data": {
"uuid": "us-abc123-def456",
"title": "As a user, I want to reset my password",
"description": "Password reset via email link",
"priority": "High",
"acceptance_criteria": "Given a registered user...",
"votes_count": 3,
"is_voted": false,
"created_at": {
"date_for_humans": "3 days ago",
"timezone": "UTC"
}
}
}Time Tracking Resource
Time tracking events (time-tracking.issues.*) include the time entry details:
{
"data": {
"uuid": "tt-abc123",
"started_at": "2025-01-10T09:00:00Z",
"stopped_at": "2025-01-10T11:30:00Z",
"duration": "02:30:00",
"comment": "Worked on API integration",
"billable": true,
"user": {
"username": "johndoe",
"name": "John Doe"
}
}
}Date and Time Fields
All timestamps use a consistent format:
{
"created_at": {
"date_for_humans": "2 hours ago",
"timezone": "UTC"
}
}dateforhumans— Relative time stringtimezone— Timezone identifier
Null Values
Fields without data are set to null:
{
"config_sprint": null,
"config_user_story": null,
"due_date": null
}Always check for null before accessing nested properties.
Related
- Task Events — Task event reference
- Security — Request headers and verification
- Best Practices — Handling payloads in production