Documentation
User documentation & integration guide
ForgeHook 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 ForgeHook takes less than two minutes.
1. Open the ForgeHook configuration screen
- Log in to your Jira Cloud instance as a Jira Administrator.
- Go to Jira Settings (⚙️) → Apps → ForgeHook Webhook Router.
- Alternatively, select ForgeHook Settings 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)
ForgeHook automatically parses any incoming JSON body and extracts the best issue title candidate.
curl -X POST "https://<your-forgehook-endpoint-url>" \
-H "Content-Type: application/json" \
-H "x-forgehook-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 ForgeHook 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-ForgeHook - URL: your ForgeHook endpoint URL.
- Custom headers:
{"x-forgehook-token": "YOUR_CONFIGURED_SHARED_SECRET"} - Save, then reference
@webhook-Jira-ForgeHookin your monitor notifications.
PagerDuty webhooks
- In PagerDuty, go to Integrations → Generic Webhook (v3).
- Endpoint URL: your ForgeHook endpoint URL.
- Add custom header:
x-forgehook-token: YOUR_CONFIGURED_SHARED_SECRET
Grafana / Prometheus Alertmanager
- In Grafana, go to Alerting → Contact points → Add contact point.
- Select type Webhook.
- URL:
https://<your-forgehook-endpoint-url>?token=YOUR_CONFIGURED_SHARED_SECRET - Attach the contact point to your notification policies.
Authentication methods
ForgeHook 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-forgehook-token | x-forgehook-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 |
Troubleshooting & response codes
ForgeHook 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-forgehook-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: ForgeHook 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: ForgeHook 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.