Sentry¶
Forward Sentry alerts and issues to Robusta via Sentry's Internal Integration.
Sentry can send events to Robusta in two different ways. Use either one, or enable both on the same integration:
Issue Lifecycle Webhook fires on every issue created / resolved / assigned / archived / unresolved across the org. Lighter payload (no per-event details, no event-level tags), zero alert-rule plumbing. Use this when you want every Sentry issue on the Robusta timeline.
Send alert webhook fires only when a Sentry Issue Alert Rule (or Metric Alert Rule) triggers and lists Robusta as one of its actions. Richer payload (event detail, rule name, and all tags attached to the event). Use this when you want rule-driven, throttled alerts.
Prerequisites¶
A Robusta account with API access.
Your Robusta
account_id, found ingenerated_values.yamlor under Settings → Workspace in the Robusta UI.A Robusta API key with
Read/Writeaccess to alerts, generated under Settings → API Keys → New API Key.Sentry Owner or Manager role on the org (lower roles can't create Custom Integrations).
Webhook URL¶
https://api.robusta.dev/webhooks?type=alert&origin=sentry&account_id=<ACCOUNT_ID>&token=<ROBUSTA_API_KEY>
Replace <ACCOUNT_ID> with your Robusta account id and
<ROBUSTA_API_KEY> with the API key you just generated.
Note
Sentry Internal Integrations do not let you add custom outgoing
HTTP headers (the only auth header Sentry sends is its own
Sentry-Hook-Signature). The Robusta API key therefore goes in
the &token= URL parameter rather than an Authorization
header.
Create the Custom Integration¶
In Sentry, navigate to Settings → Integrations → Custom Integrations.
Click Create New Integration in the top right.
In the Choose Integration Type dialog, select Internal Integration and click Next.
Name:
Robusta(orRobusta Prod Alerts, etc. — this is only for display in Sentry).Webhook URL: paste the URL from the previous section.
Then configure Issue Lifecycle Webhook, Send alert webhook, or both, and save the integration at the end.
Issue Lifecycle Webhook¶
Subscribe to lifecycle events so every Sentry issue lands on the Robusta timeline.
In the PERMISSIONS section of the same form:
Issue & Event: set to Read.
Then in the WEBHOOKS section:
Tick only the
issuecheckbox (sub-events:created,resolved,assigned,archived,unresolved).
Warning
Do not enable the error checkbox. It fires on every
individual error event (not per issue) — a noisy service will
generate far more webhook traffic than the issue checkbox does.
Click Save Changes at the bottom of the form. The integration now appears under INTERNAL INTEGRATIONS on the Custom Integrations list page.
Send alert webhook¶
Register Robusta as a selectable action inside Sentry Issue Alert and
Metric Alert rules so the integration receives the rich
event_alert payload only when a rule fires. Two parts: configure
the integration, then add Robusta to an existing alert rule.
Configure the integration¶
In the INTERNAL INTEGRATION DETAILS section of the same form:
Alert Rule Action: tick this checkbox.
Schema: paste the following JSON so Robusta appears in Sentry's alert rule action picker.
{ "elements": [ { "type": "alert-rule-action", "title": "Send to Robusta", "settings": { "type": "alert-rule-settings", "uri": "/webhooks", "required_fields": [ { "type": "select", "label": "Destination", "name": "destination", "options": [["robusta", "Robusta"]] } ] } } ] }The
titleis the action label that shows up inside Sentry's alert rule editor. The schema is what tells Sentry how to render the integration in the picker — without it, Robusta won't appear in the "Send a notification via an integration" dropdown.
Then in the PERMISSIONS section:
Alerts: set to Read.
Click Save Changes at the bottom of the form. The integration now appears under INTERNAL INTEGRATIONS on the Custom Integrations list page.
Add Robusta to an existing alert rule¶
The integration is now selectable in alert rules, but until a rule references it Sentry won't POST anything. For each Sentry alert rule you want to forward to Robusta:
In the project that owns the rule, open Alerts → Alert Rules and click the rule you want to forward.
Under Then perform these actions, click Add action and select Send a notification via an integration → Robusta.
The "Destination" dropdown the schema declared appears here; leave it at "Robusta".
Save the rule.
When the rule's conditions match, Sentry POSTs the event_alert
payload to Robusta, and the rule name shows up as the Robusta
aggregation key.
Verify¶
Trigger an event end-to-end to confirm the pipeline:
Issue Lifecycle Webhook: in Sentry, pick any existing issue → click Resolve → then Unresolve. Two
issuewebhooks fire back-to-back.Send alert webhook: trigger an Issue Alert Rule that targets the Robusta integration (or set the rule to "An event is seen" with no filters and trigger any error in the app).
Then:
Open the integration's Dashboard tab in Sentry — each POST should show HTTP 200 from Robusta.
Open Settings → Delivery Log in the Robusta UI — the event should appear with
parse_status=parsed.Open the Robusta timeline — the Sentry-sourced row should land within a few seconds.
Troubleshooting¶
Sentry exposes its own delivery history on the Custom Integration's Dashboard tab — open Settings → Integrations → Custom Integrations and, near the Robusta integration, click the Dashboard button. The dashboard lists every outgoing webhook with the HTTP status code Robusta returned, the timestamp, the request body Sentry sent, and the response body Robusta replied with. Always start debugging here — it tells you whether the problem is on Sentry's side (no requests showing up) or Robusta's side (requests present but non-200).
Common responses and what they mean:
Status |
Meaning |
Fix |
|---|---|---|
200 |
Robusta accepted the event. |
If you don't see it on the timeline shortly after, check the Robusta Delivery Log for parse failures. |
400 |
Missing or invalid query parameter. |
Re-check |
401 |
API key rejected. |
The |
429 |
Rate limit exceeded. |
More than 300 requests in 5 minutes from this account. Throttle
the Sentry alert rule or unsubscribe from the high-volume
|
5xx |
Robusta-side failure. |
Open the Robusta Delivery Log for the event id Sentry displays in the response body; if it isn't there, contact Robusta support with the request id from the Sentry dashboard. |
If the dashboard shows no recent requests even though you triggered an event:
For the Issue Lifecycle Webhook, verify the
issuecheckbox under Webhooks is enabled and the integration is saved.For the Send alert webhook path, verify the Alert Rule Action checkbox is on, the Schema is saved, and the alert rule in your project lists Robusta as one of its actions.
If the dashboard shows 200 responses but nothing appears in the
Robusta timeline, open the Robusta Delivery Log and look for
rows with origin=sentry and parse_status=failed — the
parser_error column tells you which field the parser couldn't
read.