Webhook Notification

Notification sent via a webhook URL

Webhook Notifications

A webhook notification is a way for StatusCast to trigger a script with data to help with advanced alert handling, sent via a URL when an incident is created or updated.

"Id": 403230,
  "DateCreated": "2022-02-16T16:26:49.423",
  "IncidentType": "ServiceUnavailable",
  "Status": "InProgress",
  "Title": "Performance Degradation Notification for Auto managed via children,Europa,Ganymede,Great Red Dot App,Interstellar API,Subscriber Role",
  "StartDate": "2022-02-16T16:27:28",
  "EndDate": null,
  "ShortUrl": null,
  "ExternalId": "",
  "EstimatedDurationMinutes": null,
  "Posts": [
    {
      "Id": 863478,
      "Text": "<p>Jupiter Services are currently experiencing a degradation of service that may impact customers. If your service is impacted, then your organization will be notified. If you are unable to access your application and have not received a notification, please ensure your organization is not blocking mail from [email protected]&nbsp;<br></p>",
      "Date": "2022-02-16T16:27:28",
      "IsPublished": true,
      "PostType": "Informational",
      "NewComponentStatus": "Unavailable",
      "CustomFieldList": []
    }
  ],
  "AffectedComponents": [
    {
      "Id": 214709,
      "Name": "RH-2",
      "ImageUrl": null,
      "DirectlyEffected": false
    },
    {
      "Id": 348361,
      "Name": "RH-1",
      "ImageUrl": null,
      "DirectlyEffected": false
    },
    {
      "Id": 214708,
      "Name": "Rhea Servers",
      "ImageUrl": null,
      "DirectlyEffected": false
    },
    {
      "Id": 348360,
      "Name": "Saturn",
      "ImageUrl": null,
      "DirectlyEffected": false
    },
    {
      "Id": 348359,
      "Name": "Interstellar API",
      "ImageUrl": null,
      "DirectlyEffected": true
    }
  ],
  "CustomFieldList": [],
  "Groups": []
}

Webhook Elements List

Here is a list of the elements that are included in the webhook:

ElementDefinitionFormatExample
IdIncident identifier.Numeric403230
DateCreatedDate the event was created in StatusCast(not the start date of the event)yy-mm-ddThh:mm:ss"2022-02-16T16:27:28"
IncidentTypeThe type of event that was created; Incident, Informational, or MaintenanceString"ScheduledMaintenance"
"ServiceUnavailable"
"Informational"
StatusStatus of the incident.String"In-Progress"
"Closed"
"Future"
TitleThe title or subject of the incident.String"Performance Degradation Notification"
AutoGeneratedIdThe custom ID if using custom incident IDs. Null if feature is disabledNumeric
StartDateThe date the incident started.yy-mm-ddThh:mm:ss"2022-02-16T16:27:28"
EndDateThe date the incident ended. Value may be NULL if incident is ongoing.yy-mm-ddThh:mm:ss"2022-02-17T16:27:28"
ShortUrlA shortened URL pointing to the incident details page of the event in question.String
ExternalIdThe external identifier of the incident. Used by default when beacons generate incidents from outside resources.Numeric756326
EstimatedDurationMinutesThe entered value for estimated time if the event is a maintenance. Will be NULL for non-maintenance events.Numeric30
PostsAn array of StautsCast Post objects related to this event. Post objects contain an ID, message text, published date, post type, component status, component status override, and custom field valuesArray[
{ "Id": 863478,
"Text": "Jupiter Services are currently experiencing a degradation of service that may impact customers.",
"Date":"2022-02-16T16:27:28",
"IsPublished": true,
"PostType":"Informational", "NewComponentStatus":"Unavailable",
"CustomFieldList":[]}
]
AffectedComponentsAn array of StatusCast Affected Component objects related to this event. Affected components include their ID, display name, icon URI, and whether are directly effected. Directly effected components generally are children components where as indirectly effected are their parent components.String[{ "Id": 214709,
"Name": "RH-2",
"ImageUrl": null,
"DirectlyEffected": false}]
CustomFieldListList of the custom fields included in the incident. Value may be NULL if incident is ongoing or if custom field values have not been entered.Array
GroupsA list of impacted group names if subscriber has access. May be NULL if no groups are used within an event or account.[
131948,
132052]

Note: all these elements are included in every webhook, but not all my have data depending on the status of the incident.

Webhook Signatures

As an added method of security StatusCast can add a signatures to the header of webhook notifications. This is only available in the Settings > Integrations > Webhook feature and is not accessible to subscribers who subscribed via webhook. To enable this integration click Install on the Webhook card.

909

Enter your Webhook URL endpoint and select the Use Signature Header box. Your integration will include a Public Key and Private Key. StatusCast follows the HMAC authentication workflow by adding the following header pattern:

"X-StatusCast-Signature" Header in format "{PublicKey}:{Signature}:{Nonce}:{timestamp}"

Using SHA256 your server will need to extract the values (Public Key, Signature, Nonce and Request Time stamp) from the Authorization header to validate its authenticity.


What’s Next