Real-time sync

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. 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. 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. 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

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.

  1. 1
    Enable webhooks in DXSignal

    Settings → Integrations → expand your GitHub integration → Enable real-time. Copy the Payload URL and Secret.

  2. 2
    Open GitHub webhook settings

    For a repo: your-repo → Settings → Webhooks → Add webhook. For an org: your-org → Settings → Webhooks → Add webhook.

  3. 3
    Fill in the webhook form
    Payload URLPaste the Payload URL from DXSignal
    Content typeapplication/json
    SecretPaste the Secret from DXSignal
    SSL verificationEnable (recommended)
  4. 4
    Select events

    Choose "Let me select individual events" and check: Push, Pull requests, Deployments, Workflow runs, Releases.

  5. 5
    Save

    Ensure "Active" is checked, then click Add webhook. GitHub will send a ping event — DXSignal will receive it and confirm the connection.

GitLab

GitLab

Recommended events

Push events · Merge request events · Deployment events · Pipeline events · Tag push events

  1. 1
    Enable webhooks in DXSignal

    Settings → Integrations → expand your GitLab integration → Enable real-time. Copy the Payload URL and Secret.

  2. 2
    Open GitLab webhook settings

    Your project → Settings → Webhooks (or group-level: group → Settings → Webhooks for all projects).

  3. 3
    Fill in the form
    URLPaste the Payload URL from DXSignal
    Secret tokenPaste the Secret from DXSignal
    Trigger eventsPush, Merge requests, Deployments, Pipeline, Tag push
  4. 4
    Enable SSL verification

    Leave "Enable SSL verification" checked unless you're on a self-hosted instance with a self-signed cert.

  5. 5
    Add webhook

    Click Add webhook. GitLab will show a test button — use it to confirm DXSignal receives the event.

Azure DevOps

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

  1. 1
    Enable webhooks in DXSignal

    Settings → Integrations → expand your Azure DevOps integration → Enable real-time. Copy the Payload URL and Secret.

  2. 2
    Open Service Hooks

    Your project → Project Settings → Service Hooks → + (New subscription).

  3. 3
    Select Web Hooks

    From the list of services, choose Web Hooks and click Next.

  4. 4
    Choose trigger event

    Select the event type (e.g. "Code pushed"), configure any filters, then click Next.

  5. 5
    Configure the action
    URLPaste the Payload URL from DXSignal
    HTTP headersX-DXSignal-Secret: [paste secret from DXSignal]
    Content typeapplication/json
  6. 6
    Finish and repeat

    Click Finish. Go back to Service Hooks and add a new subscription for each remaining event type.

Bitbucket

Bitbucket

Recommended triggers

Repository: Push · Pull Request: Created, Updated, Fulfilled, Rejected · Deployment: Created

  1. 1
    Enable webhooks in DXSignal

    Settings → Integrations → expand your Bitbucket integration → Enable real-time. Copy the Payload URL and Secret.

  2. 2
    Open Bitbucket webhook settings

    Your repo → Repository settings → Webhooks → Add webhook.

  3. 3
    Fill in the form
    TitleDXSignal (or any label you like)
    URLPaste the Payload URL from DXSignal
    StatusActive
  4. 4
    Select triggers

    Under "Triggers", choose the events listed above.

  5. 5
    Save

    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

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)

  1. 1
    Enable webhooks in DXSignal

    Settings → Integrations → expand your Jira integration → Enable real-time. Copy the Payload URL.

  2. 2
    Open Jira webhook settings

    Jira Admin (cog icon, top right) → System → Webhooks → Create a WebHook.

  3. 3
    Fill in the form
    NameDXSignal
    URLPaste the Payload URL from DXSignal
    StatusEnabled
  4. 4
    Select events

    Under "Issue", check Issue Created and Issue Updated. You can optionally add Sprint Created and Sprint Updated for Agile data.

  5. 5
    Create

    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.