Using the OpsGenie Actions API
Asked by yariv:

Hi,  
We have an API integration with OpsGenie where our system sends alerts to OpsGenie using the AlertAPI. Now, we would like to create custom actions for that alert (e.g. Open in Grafana), etc. Is there any example on best practices when creating such custom actions? Beyond the raw API documentation we haven't been able to find anything.

Thanks,

Yariv


Answers:
author: Samir
body: Hi [@yariv](/t5/user/viewprofilepage/user-id/3807276) !

The first step is to *add* the custom action to the alerts (i.e. add the "Grafana" action to your alerts that are created in Opsgenie). [This doc](https://support.atlassian.com/opsgenie/docs/set-up-a-custom-action-alert/) goes over how you can do this.

There are a few ways you can have this custom action be added to the alert. Since you are using the Alert API to create alerts, you could pass in the "Grafana" action in the Actions field of the payload you are sending to Create Alerts, so that the action would be added to the alert.

Alternatively, you could edit the API integration in Opsgenie, and add the "Grafana" action to the Actions field in the integration, so it will add the "Grafana" actions to alerts created through that integration.

![2021-11-23_11-29-20.png](https://community.atlassian.com/t5/image/serverpage/image-id/170623i667B994DAED7505F/image-size/large?v=v2&px=999 "2021-11-23_11-29-20.png")

Then in terms of how you get that action to *trigger* something, you could leverage [Opsgenie Actions](https://support.atlassian.com/opsgenie/docs/set-up-opsgenie-actions/) feature to do this. This allows you to trigger a post to a few different "channels" listed there. AWS Systems Manager, Generic Rest Endpoint, AWS SNS, or Opsgenie Edge Connector (OEC).

You can then configure scripts in one of those channels that actually make the request to Grafana to open a ticket via API. So the Action you set-up would *trigger* the script to be executed via one of those channels.

If you don't have a set-up in mind already for hosting/running this script, I would recommend going the [Opsgenie Edge Connector (OEC)](https://support.atlassian.com/opsgenie/docs/opsgenie-edge-connector-as-an-extensibility-platform/) route which is a service you can install somewhere locally that can execute custom scripts, and you can use the Opsgenie Actions feature with an OEC action channel to trigger that script to be executed.

Hope this helps!

Thanks,

Samir

comments: author: yariv
body: Hi Samir,  
This is very helpful, thanks!  
The main caveat for us is that we want to create the actions programmatically and not using the admin UI (hence asking about the Actions API). I want (per alert type) to use the API to define the possible actions for an alert. Then - when the alert is triggered and the user chooses one of the custom actions, I want to 'catch' the actions (using REST / Webhook) and do the 'dispatching' myself.

In the doc you sent - it only describes how to do this via the UI and I was trying to find a code sample and how to do it via the API...

Hope this clarifies.

Yariv


author: Samir
body: Hi [@yariv](/t5/user/viewprofilepage/user-id/3807276) ,

So you're trying to *add* the actions to alerts via API? If so - you can just add the actions in the "Actions" field in the payload you are sending to create alerts as shown in the [example on the Create Alert API](https://docs.opsgenie.com/docs/alert-api#create-alert) request.![2021-11-23_11-51-20.png](https://community.atlassian.com/t5/image/serverpage/image-id/170626iF778884FC2FAB1D1/image-size/large?v=v2&px=999 "2021-11-23_11-51-20.png")


Tags: cloud