Documentation
User documentation & integration guide
Inbound Webhook Router for Jira is a zero-latency inbound webhook router built natively on Atlassian Forge. It streams real-time alerts from third-party monitoring services directly into Jira Cloud issues, without custom middleware or Jira Automation execution limits.
Key capabilities
- 100% Atlassian Cloud security: runs entirely inside the Atlassian Forge execution sandbox — no third-party servers or proxy databases outside your Atlassian Cloud trust boundary.
- Multi-provider ingestion: native auto-detection and payload formatting for GitHub, Datadog, PagerDuty, Grafana, AWS SNS, Sentry, GitLab, and custom JSON payloads.
- Zero Automation costs: bypasses Jira Automation limits by ingesting HTTP POST requests via Forge web triggers.
- Token & secret authentication: header-based, Bearer token, and query-parameter authentication, with write-only secret storage in Atlassian's Key-Value Store (KVS).
- Built-in deduplication: automatically deduplicates duplicate webhook deliveries using provider-native delivery IDs (
x-github-delivery,x-amz-sns-message-id,x-pagerduty-webhook-id).
Quick setup
Setting up Inbound Webhook Router takes less than two minutes.
1. Open the Inbound Webhook Router configuration screen
- Log in to your Jira Cloud instance as a Jira Administrator.
- Go to Jira Settings (⚙️) → Apps → Inbound Webhook Router for Jira.
- Alternatively, select Inbound Webhook Router for Jira from any Jira project sidebar.
2. Configure routing rules
- Destination Jira project: the project where incoming alerts should create issues.
- Default issue type: the target Jira issue type (e.g. Task, Bug, Incident, Story).
- Summary prefix: an optional prefix prepended to auto-generated issue titles (e.g.
[Alert]). - Shared secret / token: enter a custom secret or click Generate Secure Token for a 256-bit cryptographically secure hex secret.
3. Copy your webhook endpoint URL
After saving, your unique Atlassian-hosted endpoint URL is displayed:
https://<unique-id>.hello.atlassian-dev.net/x1/<web-trigger-token>
Paste this endpoint into your monitoring tools, CI/CD pipelines, or third-party webhooks.
Integration guides
Custom HTTP POST (JSON)
Inbound Webhook Router automatically parses any incoming JSON body and extracts the best issue title candidate.
curl -X POST "https://<your-webhook-endpoint-url>" \
-H "Content-Type: application/json" \
-H "x-webhook-token: YOUR_CONFIGURED_SHARED_SECRET" \
-d '{
"title": "High CPU Usage Warning on prod-worker-01",
"message": "CPU utilization exceeded 95% threshold for 5 consecutive minutes.",
"severity": "CRITICAL"
}'
GitHub webhooks
- Go to your GitHub repository → Settings → Webhooks → Add webhook.
- Payload URL: your Inbound Webhook Router endpoint URL.
- Content type:
application/json. - Secret: your configured shared secret.
- Select the events to trigger the webhook (e.g. workflow runs, push events, issue comments).
Datadog alert webhooks
- In Datadog, go to Integrations → Webhooks → New Webhook.
- Name:
Jira-Webhook-Router - URL: your Inbound Webhook Router endpoint URL.
- Custom headers:
{"x-webhook-token": "YOUR_CONFIGURED_SHARED_SECRET"} - Save, then reference
@webhook-Jira-Webhook-Routerin your monitor notifications.
PagerDuty webhooks
- In PagerDuty, go to Integrations → Generic Webhook (v3).
- Endpoint URL: your Inbound Webhook Router endpoint URL.
- Add custom header:
x-webhook-token: YOUR_CONFIGURED_SHARED_SECRET
Grafana / Prometheus Alertmanager
- In Grafana, go to Alerting → Contact points → Add contact point.
- Select type Webhook.
- URL:
https://<your-webhook-endpoint-url>?token=YOUR_CONFIGURED_SHARED_SECRET - Attach the contact point to your notification policies.
Authentication methods
Inbound Webhook Router enforces strict authorization on all inbound webhook requests. Pass your configured shared secret using any of the following channels:
| Method | Header / parameter | Example |
|---|---|---|
| Custom header (recommended) | x-webhook-token | x-webhook-token: secret123 |
| Bearer token | Authorization | Authorization: Bearer secret123 |
| GitHub secret header | x-hub-signature-256 / x-github-event | Automatic signature validation |
| URL query parameter | ?token= or ?secret= | https://...?token=secret123 |
The legacy x-forgehook-token header is still accepted, so existing integrations keep working without changes.
Troubleshooting & response codes
Inbound Webhook Router returns standard HTTP status codes and sanitized JSON error payloads with correlation IDs for debugging.
| Status | Meaning | Action |
|---|---|---|
| 200 OK | Success | Issue successfully created in Jira. |
| 401 Unauthorized | Invalid secret | Verify x-webhook-token or ?token= matches the shared secret saved in Jira settings. |
| 402 Payment Required | License required | Your Atlassian Marketplace subscription or trial has expired. Renew it in Jira Admin. |
| 400 Bad Request | Invalid payload | Request body must be valid JSON with Content-Type: application/json. |
| 502 Upstream Error | Jira permission issue | Check the target project key exists and the Forge app actor can create issues there. Note the returned correlationId when inspecting logs. |
Privacy & data handling
- No remote storage: Inbound Webhook Router operates entirely inside Atlassian Cloud. Webhook payloads are processed in-memory and discarded immediately after creating the Jira issue.
- Data residency: all data stays within your Atlassian Jira Cloud region.
- Audit logging: Inbound Webhook Router records client IP metadata (source IP/host) in the Jira issue description for security auditing.
See the full Privacy Policy for details.
Support & feedback
Need help or want to request a feature?
- Support desk: support@crewlabs.io
- Response SLA: support requests are acknowledged within 24 business hours.