Webhook Setup Guide
Webhooks are the fastest, most reliable way to keep DXSignal in sync with your codebase. When an event happens in GitHub, GitLab, or Azure DevOps, a webhook pushes it to DXSignal instantly — no waiting for the next scheduled sync.
Why webhooks?
Instant updates
Deployments, PRs, and commits appear in DXSignal within seconds of the event — not hours.
Accurate DORA metrics
Deployment frequency and MTTR are time-sensitive. Webhook timestamps are exact; sync timestamps are approximate.
No rate limits
Push delivery means DXSignal never needs to poll your API. No risk of hitting GitHub rate limits on large repos.
Scheduled syncs run every 6 hours. Without webhooks, a deployment you made at 9 AM might not appear in DXSignal until the afternoon. For teams tracking deployment frequency closely, this gap matters.
How it works
- 1
Enable webhooks in DXSignal
Go to Settings → Integrations, find your integration, and click "Enable real-time". DXSignal generates a unique Payload URL and Secret for that integration.
- 2
Register the webhook in your provider
Open your GitHub repo, GitLab project, or Azure DevOps project settings. Paste the Payload URL and Secret, select the event types, and save.
- 3
Events flow in real-time
Every time a commit is pushed, a PR is opened, or a deployment runs, your provider sends a signed HTTP POST to DXSignal. Metrics update immediately.
Setup by provider
GitHub
Recommended events
Push · Pull requests · Deployments · Workflow runs · Releases
You can register webhooks at the repository level (one per repo) or at the organisation level to receive events from all repos automatically.
- 1Enable webhooks in DXSignal
Settings → Integrations → expand your GitHub integration → Enable real-time. Copy the Payload URL and Secret.
- 2Open GitHub webhook settings
For a repo: your-repo → Settings → Webhooks → Add webhook. For an org: your-org → Settings → Webhooks → Add webhook.
- 3Fill in the webhook form
Payload URL Paste the Payload URL from DXSignal Content type application/json Secret Paste the Secret from DXSignal SSL verification Enable (recommended) - 4Select events
Choose "Let me select individual events" and check: Push, Pull requests, Deployments, Workflow runs, Releases.
- 5Save
Ensure "Active" is checked, then click Add webhook. GitHub will send a ping event — DXSignal will receive it and confirm the connection.
GitLab
Recommended events
Push events · Merge request events · Deployment events · Pipeline events · Tag push events
- 1Enable webhooks in DXSignal
Settings → Integrations → expand your GitLab integration → Enable real-time. Copy the Payload URL and Secret.
- 2Open GitLab webhook settings
Your project → Settings → Webhooks (or group-level: group → Settings → Webhooks for all projects).
- 3Fill in the form
URL Paste the Payload URL from DXSignal Secret token Paste the Secret from DXSignal Trigger events Push, Merge requests, Deployments, Pipeline, Tag push - 4Enable SSL verification
Leave "Enable SSL verification" checked unless you're on a self-hosted instance with a self-signed cert.
- 5Add webhook
Click Add webhook. GitLab will show a test button — use it to confirm DXSignal receives the event.
Azure DevOps
Note: Azure DevOps service hooks require one subscription per event type. You will need to repeat the steps below for each event.
Recommended events (create one subscription each)
Code pushed · Pull request created · Pull request updated · Build completed · Release deployment completed
- 1Enable webhooks in DXSignal
Settings → Integrations → expand your Azure DevOps integration → Enable real-time. Copy the Payload URL and Secret.
- 2Open Service Hooks
Your project → Project Settings → Service Hooks → + (New subscription).
- 3Select Web Hooks
From the list of services, choose Web Hooks and click Next.
- 4Choose trigger event
Select the event type (e.g. "Code pushed"), configure any filters, then click Next.
- 5Configure the action
URL Paste the Payload URL from DXSignal HTTP headers X-DXSignal-Secret: [paste secret from DXSignal] Content type application/json - 6Finish and repeat
Click Finish. Go back to Service Hooks and add a new subscription for each remaining event type.
Bitbucket
Recommended triggers
Repository: Push · Pull Request: Created, Updated, Fulfilled, Rejected · Deployment: Created
- 1Enable webhooks in DXSignal
Settings → Integrations → expand your Bitbucket integration → Enable real-time. Copy the Payload URL and Secret.
- 2Open Bitbucket webhook settings
Your repo → Repository settings → Webhooks → Add webhook.
- 3Fill in the form
Title DXSignal (or any label you like) URL Paste the Payload URL from DXSignal Status Active - 4Select triggers
Under "Triggers", choose the events listed above.
- 5Save
Click Save. Bitbucket does not send a test ping, but the next push or PR event will confirm delivery.
Note: Bitbucket Cloud does not support a shared webhook secret field in the UI. DXSignal validates Bitbucket webhooks by IP allowlist and payload structure instead. The Secret field in DXSignal is still generated but is not required by Bitbucket.
Jira
Requires Jira administrator access. Webhooks in Jira are a site-level configuration, not a project setting. You must have the Jira Administrators global permission.
Events DXSignal processes
Issue Created · Issue Updated (state changes, assignee, story points, sprint)
- 1Enable webhooks in DXSignal
Settings → Integrations → expand your Jira integration → Enable real-time. Copy the Payload URL.
- 2Open Jira webhook settings
Jira Admin (cog icon, top right) → System → Webhooks → Create a WebHook.
- 3Fill in the form
Name DXSignal URL Paste the Payload URL from DXSignal Status Enabled - 4Select events
Under "Issue", check Issue Created and Issue Updated. You can optionally add Sprint Created and Sprint Updated for Agile data.
- 5Create
Click Create. Jira will attempt to send a test event — check that DXSignal returns 200.
Jenkins, PagerDuty, and Datadog
These integrations use scheduled polling — DXSignal queries their APIs every 6 hours to collect build results, incidents, and metrics. Webhook delivery is not currently supported for these providers. Data will appear in DXSignal within the next scheduled sync window after an event occurs.
Troubleshooting
Events are not appearing in DXSignal after setting up the webhook
Check that the Payload URL in your provider matches the one shown in DXSignal exactly (no trailing slash). Also verify the integration is Active in DXSignal. In GitHub and GitLab, you can view delivery history in the webhook settings page to see the HTTP response DXSignal returned.
GitHub is showing a red ✗ next to my webhook delivery
Check the response body in GitHub's delivery log. A 401 usually means the secret is wrong — re-copy the secret from DXSignal and paste it into GitHub. A 404 means the Payload URL path is incorrect. A 500 means DXSignal received the event but encountered an error — contact support with the delivery ID.
I rotated the webhook secret in DXSignal — do I need to update GitHub?
Yes. After rotating the secret, copy the new Secret from DXSignal and update it in your provider's webhook settings. Until you do, signature validation will fail and events will be rejected.
Can I use one webhook for all repos in a GitHub organisation?
Yes. Instead of adding a webhook per repo, go to your GitHub organisation settings → Webhooks and add the webhook there. Org-level webhooks receive events from all current and future repositories.
Why is the webhook plan requirement shown in the UI?
Webhooks are available on the Professional plan and above. If you're on the Free or Essentials plan, the "Enable real-time" button will note the plan requirement. Upgrade in Settings → Billing to unlock webhooks.
Ready to go real-time?
Enable webhooks on your integrations and start seeing events the moment they happen.