Webhooks
GitHub webhook events that FixSense processes.
Overview
FixSense processes GitHub webhook events to trigger failure analysis and track fix status. No manual API calls are needed — everything is automated through the GitHub App installation.
Processed Events
workflow_run.completed
Triggered when a GitHub Actions workflow finishes. FixSense checks if the run failed and contains test results (Playwright or Cypress).
Processing steps:
- Verify the installation is active and within plan limits
- Download workflow artifacts from GitHub Actions
- Parse test output to extract individual test failures
- Send each failure (up to the per-run cap) for AI analysis
- Post analysis results as a PR comment
installation.created
Triggered when a user installs the FixSense GitHub App.
Processing steps:
- Create installation record in the database
- Set default plan (Free) with initial limits
- Send welcome notification
pull_request.closed
Triggered when a PR is closed or merged. FixSense tracks if auto-fix PRs were merged.
Processing steps:
- Check if the PR is a FixSense fix branch (
fixsense/fix-*) - Update fix status (merged/closed)
- Track fix reliability metrics (Team plan)
Rate Limits
FixSense respects your plan's analysis limits:
| Plan | Per CI Run | Per Month |
|---|---|---|
| Free | 5 analyses | 350 |
| Pro | 25 analyses | 3,500 |
| Team | Unlimited | 10,000 |
When limits are reached, FixSense posts a comment notifying you that the analysis cap has been reached for the current billing cycle.
Outgoing Webhooks
FixSense can send analysis results to any external endpoint — connect to Zapier, n8n, Make, or your own systems.
Setup
Configure an outgoing webhook URL in the Integrations tab of your dashboard settings. FixSense generates a signing secret that you can use to verify payloads.
Events
| Event | Trigger |
|---|---|
analysis.completed | A test failure analysis finishes |
autofix.triggered | Auto-fix agent starts working on a failure |
fix.merged | An auto-fix PR is merged |
fix.verified | CI passes after the fix is merged |
Payload Format
{
"event": "analysis.completed",
"timestamp": "2026-03-13T10:30:00.000Z",
"data": {
"repo": "your-org/your-repo",
"testName": "login.spec.ts > should redirect after login",
"rootCause": "Selector changed from #submit to .btn-primary",
"flakinessScore": 15,
"confidence": "high"
}
}Signature Verification
Each request includes an X-FixSense-Signature header containing an HMAC-SHA256 hash of the payload body, signed with your webhook secret. Use this to verify that requests genuinely come from FixSense.
Use Cases
- Create Jira/Linear tickets automatically when a real bug is detected
- Post to Slack/Teams channels with custom formatting
- Update dashboards or monitoring tools with failure data
- Trigger custom workflows in your CI/CD pipeline
Webhook Security
All incoming webhooks from GitHub are verified using GitHub's webhook signature (X-Hub-Signature-256). This ensures that only genuine GitHub events are processed.
All outgoing webhooks include HMAC-SHA256 signatures for payload verification.