Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/configuration/exporting/send-events-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ This is the recommended ingestion path for new integrations. The legacy :doc:`Se
send-events/newrelic
send-events/opsgenie
send-events/pagerduty
send-events/rootly
send-events/sentry
send-events/solarwinds
send-events/splunk
Expand Down Expand Up @@ -174,6 +175,11 @@ Incident Management
:link: send-events/opsgenie
:link-type: doc

.. grid-item-card:: :octicon:`pulse;1em;` Rootly
:class-card: sd-bg-light sd-bg-text-light
:link: send-events/rootly
:link-type: doc

Other
~~~~~~

Expand Down
43 changes: 43 additions & 0 deletions docs/configuration/exporting/send-events/rootly.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Rootly
=======

Forward Rootly alert lifecycle events to Robusta via a Rootly outgoing webhook.

Prerequisites
-------------

* A Robusta account with API access.
* Your Robusta ``account_id``, found in ``generated_values.yaml``.
* A Robusta API key with ``Read/Write`` access to alerts, generated under **Settings → API Keys → New API Key**.
* A Rootly admin able to create outgoing webhooks.

Webhook URL
-----------

.. robusta-code::

https://api.robusta.dev/webhooks?type=alert&origin=rootly&account_id=<ACCOUNT_ID>

Configure Rootly
----------------

1. In Rootly, go to **Integrations → Webhooks → New Webhook**.
2. Set the **URL** to the webhook URL above.
3. Add a custom header:

.. code-block::

Authorization: Bearer <ROBUSTA_API_KEY>

4. Subscribe the webhook to the alert events you want forwarded — at minimum ``alert.created``. If the Rootly UI offers other ``alert.*`` events (for example to notify on resolution), subscribe to those as well; Robusta accepts the whole ``alert.*`` family and uses the alert object's ``ended_at`` field to tell firing from resolved, so the parser stays correct regardless of which specific event names Rootly emits.
5. Save. Rootly will start delivering alerts immediately.

Payload
-------

Rootly sends a fixed JSON envelope; no body template is required. The relay extracts the alert summary, status, source system, labels, and timestamps. Severity is read from ``data.labels[]`` (Rootly's ``[{key, value}]`` array) or from the freeform ``data.data`` object if the upstream system propagated it there. The ``data.external_id`` field is used as the deduplication fingerprint so retransmissions of the same upstream alert fold into a single Robusta timeline entry.

Verify
------

Trigger a test alert in Rootly (or wait for the next real alert). The event should appear in **Settings → Delivery Log** and on the Robusta timeline.
Loading