BMC Remedy Integration
Hi all
I'm looking to do an ITSM integration with BMC Helix/Remedy, which isn't natively supported.
It looks as though we can create a new incident by making a POST request to their API. But, if we want to do an update, it seems their API requires that you first query the API for an internal ID for the Incident, then make a second call with the update referring to that internal ID.
Apparently this behaviour in the API cannot be altered. I don't see any way to achieve this in LogicMonitor. Has anyone successfully integrated LM and BMC Helix/Remedy? I think we will likely need to build something to sit between and receive the updates from LM and then call the Helix API.
Interested in hearing what others may have done to achieve this.
Dave
For anyone that might stumble on this in future...
I ended up building something outside of LogicMonitor to do this. It's an Azure Function (similar to an AWS Lambda function for those on the dark side) that accepts an HTTP payload from LogicMonitor and then makes the necessary API calls to the BMC API.
There were a couple of issues I was having that required something outside of LM:
- Authentication on the API our customer was using required us to make a call to get a JWT token and then include that in a custom header on subsequent calls.
- Although BMC Helix has Incident Numbers, which is what you typically use to refer to a ticket (and what we pull back into LM) any updates to tickets must include the RequestID of the object, which is different. So before you do an update you have to make a GET request to find the RequestID which you pass in the update.
- Changing a Priority of an Incident and adding a Work Note has to be done in separate API calls, so a single webhook call from LM on an Update doesn't work.
- An Incident cannot be set to Resolved unless it is assigned to an individual. In the case where an alert opens in LM and then clears before anyone has picked up the Incident in BMC Helix, Resolving the Incident fails. So we have to make a call to check for an Assignee, set one if there isn't one, then POST a Work Note with the info about what we're changing and why, then close the ticket. So 4 different API calls, which obviously can't be done in LM natively.
Dave