Grafana

Create an outgoing webhook to create incidents to Grafana triggered by Apono access request events

Grafana allows you to query, visualize, alert on, and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture.



Prerequisites

ItemDescription
PermissionsAdmin user for Grafana account
Enable Incoming WebhooksIn the Grafana Incident web app, an admin can go to Integrations to enable incoming webhooks. Installing the Incoming Webhooks integration will generate a token which you will use to authorize the requests.

  1. Go to Alerts & Incidents and under Incident choose Integrations.
  2. Select the Incoming Webhooks integration.
  3. Click Install integration.
  4. Make note of the Token and URL fields as shown below.



Create the webhook

  1. On the Webhooks page, click Add Webhook. The Add Webhook page appears.
  2. Enter a unique, alphanumeric, user-friendly Name for identifying this webhook.
  3. Click the Status toggle to Active.
  4. From the Method dropdown menu, select POST.
  5. In the URL field, enter https://<INCOMING_WEBHOOK_URL>?title=json(title).

    Be sure to replace the <INCOMING_WEBHOOK_URL> placeholder.

    ⚠️

    The webhook URL must adhere to the following requirements:

    • Uses the HTTPS protocol
    • Does not specify any custom ports

  1. In the Body Template field, enter the JSON payload data for the webhook.
    {
       "title":"Apono - New {{event_type}} made by {{data.requester.name}}",
       "message": {
          "shortMessage": "{ \"event_type\": \"{{ event_type }}\", \"event_time\": \"{{ event_time }}\", \"id\": \"{{ data.id }}\", \"friendly_id\": \"{{ data.friendly_id }}\", \"requester_id\": \"{{ data.requester.id }}\", \"requester_name\": \"{{ data.requester.name }}\", \"requester_email\": \"{{ data.requester.email }}\", \"justification\": \"{{ data.justification }}\", \"creation_date\": \"{{ data.creation_date }}\", \"access_flow_id\": \"{{ data.access_flow.id }}\", \"access_flow_name\": \"{{ data.access_flow.name }}\", \"access_bundle_id\": \"{{ data.access_bundle.id }}\", \"access_bundle_name\": \"{{ data.access_bundle.id }}\", \"access_groups_integration_name\": \"{{ data.access_groups.[0].integration.name }}\", \"access_groups_integration_type\": \"{{ data.access_groups.[0].integration.type }}\"}"
          }
    }
    

    💡

    Click View event's payload schema to reveal the payload schema and available data fields. You can also refer to the Webhook Payload Schema Reference to read the descriptions of each data field.


  1. Under Headers, use the following Key and Value to set the header. Be sure to replace the <INCOMING_WEBHOOK_TOKEN> placeholder.

    KeyValue
    AuthorizationBearer <INCOMING_WEBHOOK_TOKEN>

  1. From the Triggers dropdown menu, select one or more of the following event triggers, which correspond to Apono access request statuses:
    • RequestCreated
    • RequestApproved
    • RequestRejected
    • RequestGranted
    • RequestExpired
    • RequestFailed
    • Manual
  2. Under Filters, define one or several filter from the listed dropdown menus.
  3. Click Test to generate a test event to trigger your webhook. A Test successful or Test failed response status will appear at the bottom of the page. A successful test will create a new incident in Grafana with mock data.

    💡

    For more information about the test, click View Invocation Data. A panel opens revealing the request, response, and other relevant details.

    Should your test fail, view these tips to troubleshoot your webhook.


  1. Click Save Webhook.


Results

Your webhook should now start creating new incidents to Grafana once triggered: