How to connect to Remedy Action Request using REST API

Enterprises use one or more service management applications to manage business-critical workflows and often synchronize workflow information, such as tickets or tasks, to adjacent applications like Salesforce, JIRA, etc. In some cases, enterprises choose to expose a subset of the information externally for partner consumption. BMC Remedy Action Request (AR) System is a popular service management application that MuleSoft offers an out-of-the-box connector for, using the Remedy AR Java API for accessing various modules and forms. Check out the documentation for Remedy AR connector prerequisites and configuration details.

While the out-of-the-box connector uses Remedy Java API, there are situations where connecting via REST API is preferred. In this article, we will explore how to use Remedy REST APIs to perform CRUD operations on Incident, Task, and WorkInfo forms. You’ll learn how to build a System API for Remedy AR by defining endpoints in RAML API specification and implementing the API in a Mule application.

We’ll start with a brief overview of the Remedy Action Request System and then walk-through the API implementation to connect and access key Remedy records like Incident, Task, and WorkInfo. The article uses Remedy AR Version 19.x and Anypoint Studio 7.4.2.

Remedy Action Request (AR) System overview

BMC Remedy Action Request (AR) System is a business automation solution that enables the tracking of critical enterprise processes. The system allows non-programmers to build workflow applications using its Developer Studio. One of the common use cases is the automation of internal service desk (e.g. IT Service management) processes and workflows. Refer to BMC Remedy documentation for more information.

Remedy AR system uses forms to capture and display information. The fields in the form represent a record which is stored in a database table. The system comes with a number of pre-built forms under different modules. Sample forms include HPD:IncidentInterface (Incident form under Help Desk), TMS:Task (Task under Task Management System). Below is a screenshot of the Remedy Dashboard listing Tasks and Incidents.

Screenshot 1. Remedy Dashboard

In a service management scenario, typically Incident is at the top level, representing an issue or a ticket (e.g. unable to login into Loan application) followed by Tasks (e.g. confirm access level) under the Incident, followed by WorkInfo to track work history (e.g. called customer for Org ID to confirm access) at the Task level. See screenshot below for Remedy Incident form and related Task and Work Information.

Screenshot 2. Remedy Incident form

Setting up Remedy AR System API

Step 1: Download the Remedy AR System API 

Access remedy-ar-sapi project from Github and import into Anypoint Studio. Import the Postman collection for API testing.

Step 2: Configuration

Update the Remedy host name, port, and login credentials in config.yaml.

Screenshot 3. Remedy server configuration in Anypoint Studio

Step 3: Get Remedy API authentication token

Remedy REST API requires an authorization header with the API token in every request. The flow in the following screenshot calls Remedy with the login credentials to request an API token and stores in an ObjectStore to be used in subsequent calls. The scheduler is configured to run at the start of the application and refreshes the token every 59 minutes since it expires every hour (default value). Change the scheduler frequency appropriately.

Screenshot 4. Mule flow to get Remedy API authentication token

Accessing and Updating Remedy AR Forms

In this section, we will walk through the API implementation for three key Remedy forms: Incident, Task, and, WorkInfo.

Incident

Remedy Incidents are identified by an alphanumeric Incident Number (e.g. INC000003424). The API implements two endpoints: Get and Create Incident.

  • Get Incident by ID:

This flow implements GET Incident by ID API by first setting the API token in the header from ObjectStore and constructing the qualification string that is passed a query parameter.

Screenshot 5. Mule variable qualString set to query Remedy by Incident Number

Then the flow calls Remedy HPD:IncidentInterface form to query the incident by “Incident ID” using the above qualification string. 

Screenshot 6. Mule flow to get Incident by ID using HPD:IncidentInterface 
  • Create Incident:

The following flow takes new incident fields in JSON format, creates a new Incident using HPD:IncidentInterface_Create form (this returns an internal key), and uses the internal key to query and return the newly created Incident Number.

Screenshot 7. Mule flow to create a new Incident and return the Incident Number

Task

Remedy Tasks are identified by an alphanumeric Incident Number (e.g. TAS00000124). The API implements three endpoints: Get and Update Task.

  • Get Task by Task Name and Status:

This flow implements GET Task by name and status by first constructing the qualification string that is passed a query parameter.

Screenshot 8. Mule variable qualString set to query Task by TaskName and Status
  • Get Task by ID:

Remedy Tasks are identified by an alphanumeric Incident Number (e.g. TAS00000124). This flow implements GET Task by ID API by invoking TMS:Task form with Task ID.

  • Update Task:

This flow allows for task update by passing the task fields in JSON format to the TMS:Task form. For example, to update task status pass { “Status”: “Pending” }.

WorkInfo 

Remedy WorkInfo tracks work history (e.g. notes or comment) and is often associated with a specific Task. The API implements two endpoints: Get and Create WorkInfo.

  • Get WorkInfo: 

This flow retrieves all WorkInfo records that are associated with a Task ID. The flow uses taskID on TMS:Task form to request the associated TMS:TAS:WorkInfo and returns an array of WorkInfo records.

Screenshot 9. Mule flow calling TMS:Task to retrieve WorkInfo 
  • Create WorkInfo:

This flow takes new WorkFlow fields in JSON format and the associated Task ID to retrieve the Task instance ID (Remedy internal ID). Then the flow creates a new WorkInfo under the Task using TMS:WorkInfo form. Here is a sample payload to create a new task {“task_ID”: “TAS00000123”, “comment”: “Pending” } that are mapped to WorkInfo TaskorTaskGroupID and Notes respectively.

Screenshot 10. Mule flow to create new WorkInfo under a Task

Summary

Remedy Action Request (AR) System is a widely used service management solution to automate and track business processes. To keep business processes in sync with other applications within the enterprise it is necessary to access and update Remedy AR records. This article provided a working example of a MuleSoft System API to connect and access Remedy records like Incident, Task and WorkInfo using REST API. In the next article, we will discuss how to use this API to synchronize records with an external application.

For more developer resources, check out our tutorials.



We'd love to hear your opinion on this post