> For the complete documentation index, see [llms.txt](https://docs.zigiwave.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zigiwave.com/integration-guides/jira-bmc-remedy-integration-guide.md).

# Jira BMC Remedy Integration Guide

This guide explains how to configure a bi-directional integration between Jira and BMC Remedy using ZigiOps. It covers adding system instances, selecting entity pairs, configuring correlation, building field mappings, applying filters, and testing the workflow. No scripting or coding is required at any stage.

For a full overview of the sync capabilities between the two platforms, see the [Jira and Remedy integration page](https://www.zigiwave.com/integrations/jira-bmc-remedy-integration) on the ZigiWave website.

### Overview

The Jira-BMC Remedy integration synchronizes records between your ITSM platform (BMC Remedy) and your project tracking tool (Jira) automatically. When a record is created or updated in one system, ZigiOps reflects the change in the other system based on the workflow configuration.

{% embed url="<https://youtu.be/_MXLw7uG25I?si=XHdeUiGWJqDEUWp2>" %}

**Most common supported entity pairs:**

| BMC Remedy Entity     | Jira Entity              | Sync Direction         |
| --------------------- | ------------------------ | ---------------------- |
| Incident              | Issue / Task             | Bi-directional         |
| Problem               | Bug                      | Bi-directional         |
| Change Request        | Task                     | Bi-directional         |
| Work Order            | Task                     | Bi-directional         |
| Work Log / Work Notes | Comment                  | Configurable           |
| Attachments           | Attachments              | Configurable           |
| Priority              | Priority                 | Mapped with conditions |
| Status (numeric)      | Status (text transition) | Mapped with conditions |

{% hint style="info" %}
ZigiOps supports all Jira and BMC Remedy entities. Contact support for entities not listed above or for more complex use cases: <support@zigiwave.com>.
{% endhint %}

### Prerequisites

Before configuring this integration, confirm that the following requirements are met:

* **ZigiOps instance:** installed and running. See the Installation guide.
* **Jira:** a dedicated integration user account with API token access and project-level permissions.
* **BMC Remedy:** a dedicated integration user with read and write permissions on the Incident, Problem, Change Request, or Work Order forms.
* **Custom fields:** correlation fields must exist in both systems before configuring the workflow. See the [Correlation section](#step-4-configure-correlation) below.
* **License:** the ZigiOps license must include the Jira-BMC Remedy system pair.

{% stepper %}
{% step %}

### **Add System Instances**

A system instance defines the connection between ZigiOps and a specific Jira or BMC Remedy environment. You must add one instance for each system before configuring a workflow.

#### Add a Jira System Instance

1. Log into your ZigiOps instance.
2. Navigate to **Connected Systems** > **Add New System** > **Jira**.
3. Enter the following connection parameters:
   * **Server URL:** the base URL of your Jira environment (for example, `https://yourcompany.atlassian.net`).
   * **Username:** the Jira user account ZigiOps will use for API calls.
   * **API Token:** generated in your Atlassian account settings under Security > API tokens.
   * **Project Key:** scopes the integration to the correct Jira project.
   * **Proxy Settings:** configure if your environment requires routing traffic through a proxy.
4. Click **Save**.
5. Click **Test Connection** to verify that ZigiOps can reach the Jira API. If the test succeeds, available fields and projects are downloaded automatically.

<figure><img src="/files/el1vnMYfGcFsJoftdeA4" alt=""><figcaption><p><em>ZigiOps UI - Adding Jira as a Connected System.</em></p></figcaption></figure>

#### Add a BMC Remedy System Instance

1. Log into your ZigiOps instance.
2. Navigate to **Connected Systems** > **Add New System** > **BMC Remedy**.
3. Enter the following connection parameters:
   * **Server URL:** the base URL of your BMC Remedy instance (for example, `https://remedy.yourcompany.com`).
   * **Username:** the BMC Remedy integration user account.
   * **Password:** the password for the integration user.
   * **Proxy Settings:** configure if required.
4. Click **Save**.
5. Click **Test Connection** to verify connectivity. ZigiOps will download available forms and fields from BMC Remedy during this step.

<figure><img src="/files/cXIpSxno3yGqL0hQK4r0" alt=""><figcaption><p><em>ZigiOps UI - Adding BMC Remedy as a Connected System.</em></p></figcaption></figure>

{% hint style="info" %}
If the Test Connection fails, verify that the integration user has the required API permissions and that the instance URL does not include a trailing slash.
{% endhint %}
{% endstep %}

{% step %}

### Create or Load a Workflow

A workflow defines the complete configuration for your integration, including the entity pair, triggers, field mappings, filters, and correlation logic.

ZigiOps provides pre-built workflow templates for the most common Jira-BMC Remedy use cases. A template includes pre-configured field mappings for summary, description, and priority, as well as basic correlation and trigger settings. You can load a template and adjust it to match your environment, or create a custom workflow from scratch.

#### Option A: Load a Workflow Template

1. Navigate to **Configurator** > **Workflows** > **Add New Workflow**.
2. Select **Load from Template**.
3. Locate the relevant Jira-BMC Remedy template. Commonly used templates include:
   * Remedy Incident to Jira Task
   * Remedy Problem to Jira Bug
   * Remedy Change Request to Jira Task
   * Remedy Work Order to Jira Task
   * Jira Task to Remedy Incident
4. Click **Load** and adjust the configuration as needed.

<figure><img src="/files/ijbrbIMTmXmfRCqNuRxA" alt=""><figcaption><p><em>ZigiOps UI - Workflow template selection screen.</em></p></figcaption></figure>

#### Option B: Create a Custom Workflow

1. Navigate to **Configurator** > **Workflows** > **Add New Workflow**.
2. Select **Custom Integration**.
3. Assign a name to the workflow and proceed to configure each section as described in the steps below.
   {% endstep %}

{% step %}

### Select the Entity Pair

The entity pair defines which record types in each system will be synchronized. Select the combination that matches your use case.

| Use Case                              | BMC Remedy Entity | Jira Entity  |
| ------------------------------------- | ----------------- | ------------ |
| Incident-driven development           | Incident          | Issue / Task |
| Root cause analysis alignment         | Problem           | Bug          |
| Change management and sprint planning | Change Request    | Task         |
| Service fulfillment tracking          | Work Order        | Task         |

For a fully bi-directional synchronization, configure at least two actions within the workflow: one to create and update Jira records from BMC Remedy records, and one to update BMC Remedy records when Jira records change.

<figure><img src="/files/RuQDCeTW7wvQJ1DRGiGP" alt=""><figcaption><p><em>ZigiOps UI - Entity pair selection screen.</em></p></figcaption></figure>
{% endstep %}

{% step %}

### Configure Correlation

Correlation is the mechanism ZigiOps uses to match existing records across systems during update cycles. It stores only unique identifiers, not business data. Without correlation, every sync cycle would create new records rather than updating existing ones.

You define which field in each system stores the unique identifier of its counterpart. Common patterns are:

* **Jira custom field (for example, "Remedy ID"):** stores the BMC Remedy Incident ID or Entry ID of the linked record.
* **BMC Remedy field (for example, "Vendor Ticket Number" or a custom field "Jira Reference"):** stores the Jira issue key (for example, `OPS-4512`).

Create the required custom fields in each system **before** configuring correlation in ZigiOps. Once the fields exist, map them in the Correlation section of the workflow.

<figure><img src="/files/jQtF6hVYyCpZqm5m4dMs" alt=""><figcaption><p><em>ZigiOps UI - Correlation configuration screen.</em></p></figcaption></figure>

{% hint style="info" %}
ZigiOps supports one-to-one correlation by default. Each Jira record maps to exactly one BMC Remedy record. This prevents duplicate creation even if an event is processed more than once.
{% endhint %}
{% endstep %}

{% step %}

### Configure Field Mappings

Field mappings define which fields are synchronized between the two systems and how their values are transformed. Mappings are configured separately for each action direction.

#### Minimum Required Field Mappings

| BMC Remedy Field      | Jira Field                     | Notes                                                                     |
| --------------------- | ------------------------------ | ------------------------------------------------------------------------- |
| `Description`         | `summary`                      | Direct text mapping                                                       |
| `Detailed_Decription` | `description`                  | Direct text mapping                                                       |
| `Priority` (text)     | `priority` (text)              | Requires conditional mapping if label names differ                        |
| `Status` (text)       | `status` (text transition)     | Requires conditional mapping with Jira transition IDs                     |
| `Work Log`            | `comment.body`                 | Configure via Related Records. Apply author filter to prevent echo loops. |
| `Assignee`            | `assignee`                     | Map based on team structure                                               |
| `Entry_ID`            | Custom field: Remedy ID        | Used for correlation. Not displayed to end users.                         |
| `Incident_Number`     | Custom field: Remedy Reference | Human-readable cross-reference                                            |

<figure><img src="/files/Rff5NIen26V9OoKjzysF" alt=""><figcaption><p><em>ZigiOps UI - Field Mapping table.</em></p></figcaption></figure>

#### Status Mapping

BMC Remedy and Jira use different status models. BMC Remedy statuses are text-based but follow an ITIL-aligned lifecycle. Jira statuses are governed by configurable workflow transitions. These must be mapped conditionally, not as a direct value copy.

| BMC Remedy Status | Jira Status          | Notes                                                             |
| ----------------- | -------------------- | ----------------------------------------------------------------- |
| New               | To Do                | Direct mapping                                                    |
| Assigned          | In Progress          | Direct mapping                                                    |
| In Progress       | In Progress          | Direct mapping                                                    |
| Pending           | On Hold / Blocked    | Map to custom Jira status if available                            |
| Resolved          | Done                 | Verify required fields (Resolution, Resolution Category) are sent |
| Closed            | Done                 | Terminal state. Do not reopen via integration.                    |
| Cancelled         | Cancelled / Won't Do | Map to custom Jira status if available                            |

{% hint style="info" %}
When mapping BMC Remedy Resolved to Jira Done, use the Jira transition ID rather than setting the status field directly. This ensures that Jira workflow validators, post-functions, and required fields are respected.
{% endhint %}

<figure><img src="/files/u6lOraKl0GBQ992tN3tg" alt=""><figcaption><p><em>ZigiOps UI - Status conditional mapping.</em></p></figcaption></figure>

#### Priority Mapping

BMC Remedy uses a text-based priority field (Critical, High, Medium, Low). Jira also uses a text-based priority list, but label names may differ between instances. Map values conditionally to ensure business impact is accurately represented.

| BMC Remedy Priority | Jira Priority | Notes                      |
| ------------------- | ------------- | -------------------------- |
| Critical            | Highest       | Direct conditional mapping |
| High                | High          | Direct conditional mapping |
| Medium              | Medium        | Direct conditional mapping |
| Low                 | Low           | Direct conditional mapping |

{% hint style="info" %}
Verify the exact priority label names used in your Jira instance before configuring these mappings. Label names vary between Jira Cloud and Jira Data Center, and may differ per project.
{% endhint %}

#### Comment and Work Log Synchronization

BMC Remedy uses Work Logs to track internal notes and activity. Jira uses Comments. Syncing all BMC Remedy Work Log entries to Jira without filtering may expose internal operational notes to development teams.

Recommended comment mapping:

* **BMC Remedy Work Log to Jira Comment:** sync only entries that are intended for cross-team visibility.
* **Jira Comment to BMC Remedy Work Log:** map developer updates back as Work Log entries to keep ITSM teams informed.
* **Author filter:** exclude entries authored by the integration user to prevent echo loops.
* **Last Time expression:** use `{lasttimecomment}` to collect only entries created after the last successful run.

Configure comment synchronization via the Related Records section of the field mapping configuration in ZigiOps.
{% endstep %}

{% step %}

### Configure Triggers

Triggers define when ZigiOps collects data from the source system. ZigiOps supports two trigger types, which can be used together for the most reliable coverage.

| Trigger Type | Mechanism                                                                                                                          | Recommended Use                                                                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| Poller       | ZigiOps queries the source system API on a configurable schedule (default: every 1 minute).                                        | SLA monitoring, controlled sync cycles, systems without webhook support          |
| Web Listener | ZigiOps registers an HTTP endpoint and waits for the source system to push data via webhook. Activated when the action is enabled. | Real-time status updates, incident creation alerts, near-instant synchronization |

Using both trigger types in combination is the recommended approach for production deployments. The Poller provides complete coverage; the Web Listener reduces latency for time-critical events.

<figure><img src="/files/YVmELZd6OPi2592IFLA1" alt=""><figcaption><p><em>ZigiOps UI - Trigger configuration.</em></p></figcaption></figure>
{% endstep %}

{% step %}

### Add Filters and Conditions

Filters control which records are collected and when. Without proper filtering, the integration may process records that should be excluded or miss records that need to be synced.

Common filter configurations for Jira-BMC Remedy workflows:

* **Last Time expression:** collect only records created or updated since the previous run. Use the `{lasttime}` expression in the filter condition.
* **Environment scope:** exclude records from test or sandbox environments.
* **Priority threshold:** sync Critical and High priority records in real time; batch-sync lower priorities.
* **Author exclusion:** filter out Work Log entries authored by the integration user to prevent duplicate comment loops.
* **Status scope:** optionally restrict collection to records in specific statuses (for example, only sync records that are In Progress or Assigned).

ZigiOps supports AND and OR logic, with operators including: is, is not, is one of, is not one of, is empty, is not empty, contains, does not contain, less than, greater than, and equals. Conditions can be applied to any field available from the connected system.

<figure><img src="/files/s0Knpj1O3jsGNsYQkb3p" alt=""><figcaption><p><em>ZigiOps UI - Filter and Condition Builder.</em></p></figcaption></figure>
{% endstep %}

{% step %}

### Use Expressions for Data Transformation (Optional)

Expressions apply transformations to field values after data is collected from the source and before it is delivered to the target. They are configured in the Source and Target tabs of the workflow action and do not require any scripting.

| Expression                    | What It Does                                                                                         | Jira-BMC Remedy Example                                                            |
| ----------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Date and Time Format          | Converts epoch timestamps to a human-readable string                                                 | Convert BMC Remedy Last Modified Date to a readable format for a Jira custom field |
| First N Characters            | Extracts the first N characters of a field value                                                     | Truncate long BMC Remedy descriptions to fit Jira's 255-character summary limit    |
| Pattern (RegEx)               | Extracts a value matching a regular expression. Group 1 is returned if a capturing group is defined. | Extract a CI name or environment tag from a BMC Remedy alert description           |
| Replace Text                  | Replaces a specific substring with another value                                                     | Replace internal team codes with display names before syncing to Jira              |
| Replace Pattern (RegEx)       | Replaces all matches of a RegEx pattern                                                              | Mask sensitive reference numbers before syncing Work Log entries                   |
| Build Array                   | Combines multiple values into a comma-separated array                                                | Aggregate multiple BMC Remedy categories into a Jira label array                   |
| Last Time                     | Stores the timestamp of the last successful run; auto-increments on each execution                   | Collect only records updated after `{lasttime}` to prevent duplication             |
| To Lower Case / To Upper Case | Normalizes text casing                                                                               | Align status or category values that differ only in casing between systems         |

<figure><img src="/files/oj4WSOoQ7iC3xftborDI" alt=""><figcaption><p><em>ZigiOps UI - Expression configuration.</em></p></figcaption></figure>
{% endstep %}
{% endstepper %}

### Test and Activate the Workflow

Before activating the workflow in production, test each action individually using the built-in troubleshooting tools.

#### Testing Tools Available in ZigiOps

* **Real-time operation logs:** show every record collected, processed, and delivered.
* **Payload inspector:** displays the raw data sent to and received from each system, useful for debugging field mapping issues.
* **HTTP request and response data:** provides API-level details for connectivity troubleshooting.
* **Error classification:** distinguishes between mapping errors, connectivity issues, and API rejections.

**To activate the workflow:**

1. Run the workflow in **test mode** against a non-production record.
2. Verify that the target record is created with the correct field values.
3. Check the **Activity Log** for any errors or unexpected field values.
4. Once results are confirmed, set the workflow status to **Active**.

<figure><img src="/files/Zvl2vLCBz98MZITjweBv" alt=""><figcaption><p><em>ZigiOps Dashboard - Monitoring view.</em></p></figcaption></figure>

### Advanced: Governance and Reliability

The following practices apply to production deployments and regulated environments.

#### Idempotency via Correlation Lookup

Before any write operation, ZigiOps checks whether a correlated record already exists in the target system. If one exists, it performs an update. If none exists, it creates a new record. This two-path logic prevents duplicate records when events are reprocessed after a failure or retry.

#### Retry Logic

Failed operations caused by transient API errors (rate limits, maintenance windows, network interruptions) are retried automatically. ZigiOps distinguishes between transient failures (retried) and permanent failures (logged and surfaced in the Activity Log). Retries do not create duplicate records due to the correlation lookup described above.

#### Governance Recommendations

| Practice                                 | Why It Matters                                                             | How ZigiOps Supports It                                                         |
| ---------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Define integration ownership             | Someone must be accountable for mapping logic and change testing           | ZigiOps provides user-level access control and admin roles                      |
| Test changes in staging first            | Untested mapping changes can silently misbehave in production              | ZigiOps supports multiple environments; test before activating                  |
| Export and version integration templates | Integration configurations should be treated like production code          | Export templates and store them in a version control system                     |
| Monitor operational health continuously  | Silent failures are as damaging as loud ones                               | ZigiOps provides dashboards with real-time error tracking and operation metrics |
| Audit Work Log and attachment sync rules | Internal notes may be exposed to unauthorized teams if filters are missing | Use conditional mapping and author filters to enforce data classification       |

### Troubleshooting

| Issue                                                 | Likely Cause                                                                                         | Resolution                                                                                                          |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Fields are missing from mapping suggestions           | The system schema was not refreshed after new fields were added                                      | Navigate to Connected Systems, select the system, and click Save to re-download the schema                          |
| Duplicate Work Log entries appear in Jira             | Integration user exclusion filter is missing, or `{lasttimecomment}` expression is not configured    | Add a trigger condition excluding the integration user as Work Log author; configure the `{lasttimecomment}` filter |
| BMC Remedy record fails to update when Jira changes   | The correlation field in BMC Remedy is empty or not correctly mapped                                 | Verify that the Respond Mapping writes the Jira issue key to the BMC Remedy correlation field after record creation |
| Jira status does not update after a BMC Remedy change | The mapping is setting the status field directly rather than using a Jira workflow transition ID     | Replace the status field value with the correct Jira transition ID in the mapping configuration                     |
| Workflow saves but fails to activate                  | A mandatory configuration field is missing, or the license does not include the Jira-BMC Remedy pair | Review the error message in the UI; verify the license status under Admin > About                                   |
| Priority values do not match between systems          | Label name differences between BMC Remedy and the specific Jira project                              | Use conditional mapping to translate BMC Remedy priority labels to the exact values used in your Jira project       |

### Related Resources

* [Integration Catalog - BMC Remedy Jira Integrations](/integration-catalog/remedy-and-helix-with-jira-integration.md)
* [Building Integrations - Data Mapping Fundamentals](/design-and-mappings/data-mapping-fundamentals.md)
* [Building Integrations - Filters and Conditions](/design-and-mappings/filters-and-conditions.md)
* [Building Integrations - Transformations and Expressions](/design-and-mappings/transformations-and-expressions.md)
* [Building Integrations - Comments and Attachment Sync](/design-and-mappings/attachments-and-comments.md)
* [Troubleshooting - Mapping Issues](/troubleshooting.md)
* [ZigiOps System Requirements](/integration-platform/system-requirements.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zigiwave.com/integration-guides/jira-bmc-remedy-integration-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
