BMC Remedy integration

ITSM: incidents, changes, problems, assets, CMDB via AR System REST

Help CentreConnectors

Overview

BMC Remedy (BMC Helix ITSM) is the enterprise ITSM platform built on AR System – incidents, change requests, problems, assets, and the CMDB. The Automize connector talks to the AR System REST API (jsonapi/v1.0) using AR-JWT bearer tokens.

  • Regions: Each Remedy install has its own host – on-prem (mid-tier behind your firewall) or BMC Helix SaaS (yourcompany-restapi.onbmc.com). Connector hits the host you configure on the credential directly.
  • Plans: Works against any AR System 9.x+ deployment that exposes /api/jsonapi/v1.0. CMDB queries require the BMC Atrium / Helix CMDB plugin. Service Request Management forms (SRM:Request) need the SRM stack installed.

Setting up the connection

Auth type: Bearer Token.

  1. POST <host>/api/jwt/login with form-encoded username + password (or use the Login action) – Remedy returns an AR-JWT token.
  2. Copy the AR-JWT string. Tokens are long-lived but invalidated when the user changes password or you call Logout.
  3. In Automize, open Settings → Connectors → BMC Remedy → Add connection. Paste the AR-JWT as the API token.
  4. For unattended automations, run a service account whose password is rotated by your secrets manager; refresh the token via the Login action when AR rejects it as expired.

Find your credentials at https://docs.bmc.com/docs/ars2008/getting-tokens-for-authentication-924518661.html.


Rate limits

AR System has no global REST rate limit – throttling is driven by thread pools on the mid-tier (default 8 concurrent REST workers per process). Connector retries on 429 / 503 with backoff. For bulk loads prefer ARImport or the data-import workflow over REST.


Data model

Everything in Remedy is an "entry" on a "form":

    HPD:Help Desk          (incidents)
    CHG:Infrastructure Change   (changes)
    PBM:Problem Investigation   (problems)
    AST:Asset / BMC_BaseElement (assets + CMDB CIs)
    SRM:Request             (service requests)

Each entry has a Request ID (INC000000001234 style) and an
internal Entry ID (the API-addressable key, padded numeric). Field
names contain spaces ("Incident Number", "Assigned Group") and
are case-sensitive – wrap them in single quotes in qualifications.

Bodies are always {"values": {"Field Name": "value", ...}} on
create/update – the connector enforces this shape.

Available operations

17 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create Change RequestGeneralCreate a change on CHG:Infrastructure Change
Create EntryGeneralCreate an entry on any form. Body must be {"values": {...field map...}}
Create IncidentGeneralCreate an incident on HPD:Help Desk. Body must be {"values": {"Description": ..., "Status": "New", ...}}
Create ProblemGeneralCreate a problem investigation on PBM:Problem Investigation
Delete EntryGeneralDelete an entry by ID
Get AttachmentGeneralDownload an attachment from a field on an entry
Get EntryGeneralGet a single entry by ID from any form
Get Form SchemaGeneralRetrieve field definitions for a form
LoginGeneralRe-authenticate and refresh the AR-JWT token
LogoutGeneralInvalidate the current AR-JWT token on the server
Query EntriesGeneralQuery a Remedy form. Use 'q' for the qualification (e.g. q='Status'="Open" AND 'Priority'<3) and 'fields' to project columns (e.g. fields=values(Incident Number,Status))
Query AssetsGeneralQuery AST:Asset (or the BMC_BaseElement CMDB form) with a qualification
Query Change RequestsGeneralQuery CHG:Infrastructure Change with a qualification
Query IncidentsGeneralQuery HPD:Help Desk with a qualification (q param)
Query ProblemsGeneralQuery PBM:Problem Investigation with a qualification
Update EntryGeneralUpdate an entry by ID. Body must be {"values": {...field map...}}
Update IncidentGeneralUpdate an HPD:Help Desk entry by ID

Operations

Create Change Request

Create a change on CHG:Infrastructure Change

No input parameters.

Tips

  • Wraps Create Entry against CHG:Infrastructure Change.
  • 'Change Type' (Normal, Standard, Emergency, Latent) drives which approval workflow fires.

Create Entry

Create an entry on any form. Body must be {"values": {...field map...}}

ParameterRequiredTypeDescription
Form Name form_nameYestext

Tips

  • Body MUST be {"values": {...}}. Fields not in the schema are silently dropped.
  • For required fields, fetch Get Form Schema first – the field's 'required' flag tells you which keys must be present.

Errors

  • ARERR-301 – Authentication failed – AR-JWT has expired. Call Login to refresh.
  • ARERR-326 – Required field missing – check Get Form Schema for the form's required fields.
  • ARERR-388 – Value too long for field – Remedy enforces max_length from the field definition; truncate client-side.

Create Incident

Create an incident on HPD:Help Desk. Body must be {"values": {"Description": ..., "Status": "New", ...}}

No input parameters.

Tips

  • Wraps Create Entry against HPD:Help Desk.
  • Status defaults to 'New' – the form's process flow handles transitions. Don't hardcode 'Assigned' unless you also set 'Assigned Group'.
  • Required: 'Description', 'Service Type', 'Status', 'Impact', 'Urgency', 'Reported Source'. Customer ID + login ID often required by site policy.

Create Problem

Create a problem investigation on PBM:Problem Investigation

No input parameters.

Tips

  • Wraps Create Entry against PBM:Problem Investigation.
  • Link to triggering incidents via 'BMC.CORE:BMC_BaseRelationship' after creation – not in the create payload.

Delete Entry

Delete an entry by ID

ParameterRequiredTypeDescription
Form Name form_nameYestext
Entry Id entry_idYestext

Tips

  • Hard-delete on most forms. Many sites disable this via row-level permissions – failing silently with 403 is common.

Get Attachment

Download an attachment from a field on an entry

ParameterRequiredTypeDescription
Form Name form_nameYestext
Entry Id entry_idYestext
Field Name field_nameYestext

Tips

  • form_name + entry_id + field_name (e.g. 'Attachment 1'). Returns the binary as a base64 stream the connector decodes into a file.

Get Entry

Get a single entry by ID from any form

ParameterRequiredTypeDescription
Form Name form_nameYestext
Entry Id entry_idYestext

Tips

  • form_name + entry_id (the padded numeric Request ID, e.g. 000000000001234 for INC000000001234).

Get Form Schema

Retrieve field definitions for a form

ParameterRequiredTypeDescription
Form Name form_nameYestext

Tips

  • Returns every field on the form plus its dataType, required flag, max_length, and enum values. Cache this – schemas don't change between deploys.

Login

Re-authenticate and refresh the AR-JWT token

No input parameters.

Tips

  • Username + password → AR-JWT. Used to refresh tokens that have been invalidated on the server.
  • Skip this if you're pasting a long-lived AR-JWT directly into the credential.

Logout

Invalidate the current AR-JWT token on the server

No input parameters.

Tips

  • Invalidates the AR-JWT server-side. Call when retiring a credential – leaving stale tokens active is an audit finding under most ITGC frameworks.

Query Entries

Query a Remedy form. Use 'q' for the qualification (e.g. q='Status'="Open" AND 'Priority'<3) and 'fields' to project columns (e.g. fields=values(Incident Number,Status))

ParameterRequiredTypeDescription
Form Name form_nameYestext

Tips

  • q is the qualification – Remedy's WHERE clause. Single-quote field names: q=('Status'="Open" AND 'Priority'<3).
  • fields=values(Incident Number,Status,Assigned Group) projects columns. Without it the connector returns every field on the form.
  • form_name is case-sensitive and includes the colon (HPD:Help Desk, not hpd_help_desk).

Query Assets

Query AST:Asset (or the BMC_BaseElement CMDB form) with a qualification

No input parameters.

Tips

  • Defaults to AST:Asset; override form_name to BMC_BaseElement for the full CMDB.
  • CMDB CIs link via 'BMC.CORE:BMC_BaseRelationship'. Run a second Query against that form to walk relationships.

Query Change Requests

Query CHG:Infrastructure Change with a qualification

No input parameters.

Tips

  • Shortcut over Query → CHG:Infrastructure Change. Filter by 'Change Type', 'Risk Level', 'Status'.

Query Incidents

Query HPD:Help Desk with a qualification (q param)

No input parameters.

Tips

  • Shortcut over Query → HPD:Help Desk. Same q + fields semantics.

Query Problems

Query PBM:Problem Investigation with a qualification

No input parameters.

Tips

  • Shortcut over Query → PBM:Problem Investigation. Use 'Investigation Driver' for known-error workflows.

Update Entry

Update an entry by ID. Body must be {"values": {...field map...}}

ParameterRequiredTypeDescription
Form Name form_nameYestext
Entry Id entry_idYestext

Tips

  • Send only the fields that change. Sending the full record is fine but every field counts as a write in the audit trail.
  • Body MUST be {"values": {...}}.

Update Incident

Update an HPD:Help Desk entry by ID

ParameterRequiredTypeDescription
Entry Id entry_idYestext

Tips

  • Shortcut over Update Entry against HPD:Help Desk.
  • To resolve an incident, set 'Status' = 'Resolved' AND 'Status_Reason' AND 'Resolution' in the same call – Remedy's workflow rejects partial transitions.

FAQ

AR-JWT keeps expiring mid-run – what's the right pattern?
Wrap your flow with a Login action at the start (refreshes the AR-JWT before any work) and a Logout at the end. Don't paste a long-lived token into the credential for unattended use – rotate via Login each run.
Why does my qualification not match anything?
Field names are case-sensitive and include spaces – 'Incident Number', not incident_number. Wrap them in single quotes. String values use double quotes. Numbers and selection-field codes are bare.
Selection fields – pass the label or the code?
Always the label as a string ('High', not 3). Remedy translates labels via the field's enum definition. Get Form Schema returns the enum list.
Helix SaaS vs on-prem – same endpoints?
Same REST shape. Helix uses *-restapi.onbmc.com hosts and stricter rate limits. On-prem hits your mid-tier directly (port 8008 by default).
Why ARERR-301 even with a fresh token?
AR-JWT is bound to the AR server's session table – if the server restarts, all outstanding tokens are invalidated. Always handle 301 by calling Login and retrying.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.