Webhooks
Configure webhooks to get real-time notifications when events happen in Bugnet. Whenever a bug is created, updated, or commented on, Bugnet will send an HTTP POST request with a JSON payload to the URL you specify.
Setup
- Go to Integrate > Webhooks in your project dashboard
- Add a webhook URL (must be HTTPS)
- Select the events you want to receive
- Optionally set an HMAC secret for payload verification
- Bugnet will POST a JSON payload to your URL for each event
Event Types
bug_created— A new bug report was submittedbug_updated— A bug's status, priority, or assignment was changedcomment_added— A comment was added to a bug
Payload Format
Each webhook delivery sends a JSON payload with the event type, project slug, timestamp, and event-specific data.
{
"event": "bug_created",
"project": "my-game",
"timestamp": "2026-03-13T12:00:00Z",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Game crashes on level 5",
"category": "crash",
"priority": "critical",
"status": "open"
}
}HMAC Verification
To verify that webhook payloads are genuinely from Bugnet, set a secret when creating the webhook. Bugnet sends a signature in the X-Bugnet-Signature header. Verify the signature by computing HMAC-SHA256 of the raw request body using your secret and comparing it to the header value.
Delivery History
- View delivery status for each webhook event in the dashboard
- See response codes, timestamps, and retry attempts
- Failed deliveries are retried automatically with exponential backoff
Testing
Use the Test button in the webhook settings to send a sample payload to your webhook URL. This lets you verify your endpoint is receiving and processing events correctly before going live.
API
# List webhooks
GET /api/projects/:slug/webhooks
# Create webhook
POST /api/projects/:slug/webhooks
{"url":"https://example.com/hook","events":["bug_created","bug_updated"],"secret":"your-secret"}
# Delete webhook
DELETE /api/projects/:slug/webhooks/:id
# Test webhook
POST /api/projects/:slug/webhooks/:id/test
# View delivery history
GET /api/projects/:slug/webhooks/:id/deliveriesDiscord Integration
Send bug report notifications directly to your Discord server channels. Keep your team informed in real time without leaving Discord.
Setup
- Create a webhook URL in your Discord server (Server Settings > Integrations > Webhooks)
- Go to Integrate > Discord in Bugnet
- Add the Discord webhook URL
- Name the channel (e.g., "#bug-reports")
- Select which events trigger notifications
- Enable or disable the webhook at any time
Event Selection
- Choose which bug events trigger Discord notifications
- Configure per-channel — send critical bugs to one channel, all bugs to another
- Test the webhook to preview the Discord message format
API
# List Discord webhooks
GET /api/projects/:slug/discord
# Create Discord webhook
POST /api/projects/:slug/discord
{"webhook_url":"https://discord.com/api/webhooks/...","channel_name":"bug-reports","events":["bug_created"],"enabled":true}
# Update Discord webhook
PUT /api/projects/:slug/discord/:id
# Delete Discord webhook
DELETE /api/projects/:slug/discord/:id
# Test Discord webhook
POST /api/projects/:slug/discord/:id/testGitHub / GitLab Integration
Automatically create issues in your GitHub or GitLab repository from Bugnet bug reports. Keep your issue tracker in sync with player-reported bugs.
Setting Up GitHub
- Go to Integrate > GitHub/GitLab in your project dashboard
- Select GitHub as the provider
- Enter your repository URL (e.g.
https://github.com/your-org/your-game) - Add a Personal Access Token (see below)
- Click Connect
Creating a GitHub Personal Access Token
Bugnet needs a GitHub Personal Access Token (PAT) with permission to create issues in your repository. Here's how to create one:
- Go to GitHub > Settings > Developer settings > Personal access tokens > Fine-grained tokens
- Click Generate new token
- Give it a descriptive name, e.g.
Bugnet Issue Integration - Set Expiration to your preference (90 days, 1 year, or no expiration)
- Under Repository access, select Only select repositories and choose the repository you want to connect
- Under Permissions > Repository permissions, set:
- Issues — Read and write
- Metadata — Read-only (required, selected automatically)
- Click Generate token and copy the token
- Paste the token into the Access Token field in Bugnet's integration settings
Note: Fine-grained tokens are recommended over classic tokens because they limit access to only the repositories and permissions you specify. If your repository is in a GitHub organization, the organization owner may need to approve fine-grained token access under Organization settings > Personal access tokens > Settings.
If you prefer a classic token, go to Personal access tokens (classic) and create a token with the repo scope.
Setting Up GitLab
- Go to Integrate > GitHub/GitLab in your project dashboard
- Select GitLab as the provider
- Enter your GitLab project URL (e.g.
https://gitlab.com/your-org/your-game) - Create a Personal Access Token in GitLab: go to Preferences > Access Tokens, create a token with the
apiscope - Paste the token and click Connect
Auto-Creating Issues
When Auto-Create Issues is enabled, Bugnet automatically creates a GitHub or GitLab issue every time a new bug report is submitted. Each auto-created issue includes:
- Bug title and description from the player report
- Priority and category labels applied automatically
- Crash logs and stack traces (if available)
- A link back to the Bugnet bug report for cross-referencing
Enabling Auto-Create Issues
- Connect your repository with a valid access token (see setup above)
- Go to Integrate > GitHub/GitLab in your project dashboard
- Toggle Auto-create issues to on
An access token is required for auto-creation. Without a token, Bugnet cannot create issues on your behalf. If the token expires or is revoked, auto-creation will stop and a warning will appear in your integration settings.
Issue Format
Auto-created issues are formatted as follows:
Title: Game crashes on level 5
{bug description}
---
**Priority:** critical
**Category:** crash
**Bugnet Report:** #42 (project: my-game)Labels are applied automatically: all issues get the bug label, plus a category label (e.g. crash, visual) and a priority label for critical/high bugs (e.g. priority:critical).
Auto-Create via API
You can also toggle auto-create issues via the API:
# Enable auto-create issues
PUT /api/projects/:slug/git
{"auto_create_issues": true}
# Disable auto-create issues
PUT /api/projects/:slug/git
{"auto_create_issues": false}Manual Issue Linking
You can also manually link a Bugnet bug to an existing GitHub or GitLab issue, or create a new issue from a specific bug report. This lets you track issue status from within Bugnet without requiring auto-creation.
API
# Get integration
GET /api/projects/:slug/git
# Connect repository
POST /api/projects/:slug/git
{"provider":"github","repo_url":"https://github.com/studio/my-game","access_token":"github_pat_..."}
# Update integration settings
PUT /api/projects/:slug/git
{"auto_create_issues":true,"access_token":"github_pat_..."}
# Create issue from bug
POST /api/projects/:slug/bugs/:id/issue
{"auto_create":true}
# Get linked issue
GET /api/projects/:slug/bugs/:id/issue
# List open issues from connected repo
GET /api/projects/:slug/git/issues?q=search+term
# Disconnect
DELETE /api/projects/:slug/gitSteam Integration
Connect your Steam app to sync player reviews and monitor sentiment. Bugnet pulls review data from the Steam API and provides analytics to help you understand player feedback.
Setup
- Go to Integrate > Steam
- Enter your Steam App ID (found in your Steamworks dashboard or store URL)
- Click Connect Steam App
- Bugnet immediately starts syncing reviews
Features
- Review Sync — Automatically pulls all player reviews and tracks positive/negative trends
- Retention Radar — Analyzes recent review sentiment to flag churn risk (low/medium/high). Get alerted when negative reviews spike
- Sentiment Scoring — Each review gets a 1–5 sentiment score based on language analysis (Studio plan+)
- Playtime Correlation — See average playtime at review time to understand when players form opinions
- Manual Sync — Click "Sync Now" to fetch latest reviews on demand
Dashboard
The Steam dashboard shows a summary of your review data at a glance:
- Total reviews, positive %, negative %
- Sentiment trend over time
- Average playtime at review
- Churn risk level indicator
- Recent reviews list with sentiment scores
API
# Connect Steam app
POST /api/projects/:slug/steam
{"app_id":"570"}
# Get integration status
GET /api/projects/:slug/steam
# Trigger manual sync
POST /api/projects/:slug/steam/sync
# Get review dashboard
GET /api/projects/:slug/steam/dashboard
# Update settings
PUT /api/projects/:slug/steam
# Disconnect
DELETE /api/projects/:slug/steamEmail Notifications
Bugnet sends email notifications for important events via SendGrid. Stay informed about bug activity without needing to check the dashboard constantly.
Notification Types
- New bug report submitted
- Bug status changed (e.g., resolved, closed)
- Bug assigned to you
- New comment on a bug you're watching
- Weekly digest summary of project activity
Reply by Email
Team members can reply directly to notification emails to add comments. Reply content is parsed and added as a comment on the bug. Quote text from the original email is preserved for context.
Email reply tokens expire after 30 days for security.
Notification Preferences
Each team member can customize their notification settings to control what emails they receive and how often.
Per-Event Toggles
Enable or disable email notifications for each notification type individually. Choose exactly which events matter to you.
Global Notification Controls
- Mute all notifications — Temporarily silence all email notifications
- Digest-only mode — Receive a weekly summary instead of per-event emails
Player Notification Preferences
- Players can opt in or out of status update emails
- Configurable from the public tracker
API
# Get notification preferences
GET /api/notifications/preferences
# Update notification preferences
PUT /api/notifications/preferences