Had some challenges building this (I'm not a developer by a longshot) so decided to create a post in case anyone in the future wants ideas on how to do it.
To being you need to create your statuspage.io page, create an api key, set up your components (we are calling them services in this example) and make a note of your page id, component ids and your api key as you'll need this later.
In xMatters we start off with a simple messaging form:
This triggers a flow once submitted which looks like this:
If the status is 'New' then we run a custom script to trigger the web request to statuspage.io to create a new incident. The reason we are using a custom script rather than the xMatters App is because we want to update the statuspage component status and the xMatters app doesn't allow us to do this just now.
To convert our friending named services from xMatters to the component ids required by statuspage, I created a little function in a shared library.
Here is the code:
and the shared library code:
I'm going to publish two further posts, one to update an existing incident and the final one to resolve the incident.