---
availability: INSTALLABLE
name: Update Break-Fix Case
description: Lets retail store employees move a break-fix case forward from the Moveworks AI Assistant — comment, reopen, close, or accept or reject a proposed fix — without a portal visit or help desk call.
installation_asset_uuid: 4cac9662-0a83-457c-a800-5e401902cb2c
purple_chat_link: https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22I+want+to+add+a+comment+to+the+broken+equipment+case+that+I+opened%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Searching+for+open+break-fix+cases+in+%3Cb%3EServiceNow%3C%2Fb%3E%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+3+open+cases+that+you+raised+recently%3A%3C%2Fp%3E%3Col%3E%3Cli%3E%3Cstrong%3ERBF0001040%3C%2Fstrong%3E%3A+Front+desk+water+cooler+down%3C%2Fli%3E%3Cli%3E%3Cstrong%3ERBF0001045%3C%2Fstrong%3E%3A+Zebra+Scanner+-+Red+Light+Flashing%3C%2Fli%3E%3Cli%3E%3Cstrong%3ERBF0001048%3C%2Fstrong%3E%3A+Meat+refrigerator+is+not+cooling%3C%2Fli%3E%3C%2Fol%3E%3Cp%3EWhich+one+of+these+cases+would+you+like+to+comment+on%3F%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EThe+red+light+is+still+flashing+even+after+I+performed+the+power+cycle.+Tried+a+different+USB+cable+but+no+luck.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Retrieving+case+details+for+%3Cb%3ERBF0001045%3C%2Fb%3E+and+staging+update...%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EOkay%2C+I+can+update+that+case+in+%3Cstrong%3EServiceNow%3C%2Fstrong%3E+for+you.%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3ECase%3C%2Fstrong%3E%3A+RBF0001045+%28Zebra+Scanner+-+Red+Light+Flashing%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EAction%3C%2Fstrong%3E%3A+Add+Comment+%26amp%3B+Reopen%3C%2Fli%3E%3Cli%3E%3Cstrong%3EComment%3C%2Fstrong%3E%3A+The+red+light+is+still+flashing+even+after+I+performed+the+power+cycle.+Tried+a+different+USB+cable+but+no+luck.%3C%2Fli%3E%3C%2Ful%3E%3Cp%3E%3Cstrong%3EDoes+this+look+right%3F%3C%2Fstrong%3E%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EYes%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Submitting+journal+entry+and+updating+state+to+%3Cb%3EOpen%3C%2Fb%3E+in+%3Cb%3EServiceNow%3C%2Fb%3E...%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EYour+comment+has+been+added.+Case+%3Cb%3ERBF0001045%3C%2Fb%3E+has+been+reopened+and+assigned+to+the+support+team+for+review.%3C%2Fp%3E%3Cp%3EYou+can+view+the+full+case+details+in+%3Ca+href%3D%5C%22https%3A%2F%2Fservicenow.com%2Fnav_to.do%3Furi%3Dticket.do%3Fsysparm_number%3DRBF0001045%5C%22%3EServiceNow+here%3C%2Fa%3E.%3C%2Fp%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22servicenow%22%2C%22citationTitle%22%3A%22RBF0001045%3A+Zebra+Scanner+-+Red+Light+Flashing%22%7D%5D%7D%5D%7D%5D%7D
solution_tags:
- Support
- Facilities
- Retail Operations
- Retail Store Services
- RSM
- Store Operations
systems:
- servicenow
---

# Introduction

Retail store employees can keep a break-fix case moving without ever leaving the Moveworks AI Assistant — add a comment and reopen it, close it out, or accept or reject a proposed fix. They can pull up the case by number or just describe the issue in their own words, so nothing stalls waiting on a portal login or a help desk call.

For fulfilment and store operations teams, that means cases stay current, resolutions get confirmed faster, and store employees stay in the loop on their own equipment issues — turning case updates into a quick conversation instead of a manual back-and-forth.

# User Experience Preview

Please refer to the following [**Purple Chat**](https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22I+want+to+add+a+comment+to+the+broken+equipment+case+that+I+opened%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Searching+for+open+break-fix+cases+in+%3Cb%3EServiceNow%3C%2Fb%3E%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+3+open+cases+that+you+raised+recently%3A%3C%2Fp%3E%3Col%3E%3Cli%3E%3Cstrong%3ERBF0001040%3C%2Fstrong%3E%3A+Front+desk+water+cooler+down%3C%2Fli%3E%3Cli%3E%3Cstrong%3ERBF0001045%3C%2Fstrong%3E%3A+Zebra+Scanner+-+Red+Light+Flashing%3C%2Fli%3E%3Cli%3E%3Cstrong%3ERBF0001048%3C%2Fstrong%3E%3A+Meat+refrigerator+is+not+cooling%3C%2Fli%3E%3C%2Fol%3E%3Cp%3EWhich+one+of+these+cases+would+you+like+to+comment+on%3F%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EThe+red+light+is+still+flashing+even+after+I+performed+the+power+cycle.+Tried+a+different+USB+cable+but+no+luck.%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Retrieving+case+details+for+%3Cb%3ERBF0001045%3C%2Fb%3E+and+staging+update...%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EOkay%2C+I+can+update+that+case+in+%3Cstrong%3EServiceNow%3C%2Fstrong%3E+for+you.%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3ECase%3C%2Fstrong%3E%3A+RBF0001045+%28Zebra+Scanner+-+Red+Light+Flashing%29%3C%2Fli%3E%3Cli%3E%3Cstrong%3EAction%3C%2Fstrong%3E%3A+Add+Comment+%26amp%3B+Reopen%3C%2Fli%3E%3Cli%3E%3Cstrong%3EComment%3C%2Fstrong%3E%3A+The+red+light+is+still+flashing+even+after+I+performed+the+power+cycle.+Tried+a+different+USB+cable+but+no+luck.%3C%2Fli%3E%3C%2Ful%3E%3Cp%3E%3Cstrong%3EDoes+this+look+right%3F%3C%2Fstrong%3E%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22%3Cp%3EYes%3C%2Fp%3E%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22Submitting+journal+entry+and+updating+state+to+%3Cb%3EOpen%3C%2Fb%3E+in+%3Cb%3EServiceNow%3C%2Fb%3E...%22%2C%22connectorName%22%3A%22servicenow%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EYour+comment+has+been+added.+Case+%3Cb%3ERBF0001045%3C%2Fb%3E+has+been+reopened+and+assigned+to+the+support+team+for+review.%3C%2Fp%3E%3Cp%3EYou+can+view+the+full+case+details+in+%3Ca+href%3D%5C%22https%3A%2F%2Fservicenow.com%2Fnav_to.do%3Furi%3Dticket.do%3Fsysparm_number%3DRBF0001045%5C%22%3EServiceNow+here%3C%2Fa%3E.%3C%2Fp%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22servicenow%22%2C%22citationTitle%22%3A%22RBF0001045%3A+Zebra+Scanner+-+Red+Light+Flashing%22%7D%5D%7D%5D%7D%5D%7D) for a sample conversational experience between a user and the AI Assistant for this plugin.

# Pre-requisites

Before installing and using the **Update Break-Fix Case** plugin, please ensure the following requirements are met:

## **1. ServiceNow Retail Store Services Application**

This plugin operates on the **Retail Store Services** break-fix case table (`sn_rtl_stre_servcs_bf_case`). The **Retail Store Services** application must be installed and active on your ServiceNow instance before installing this plugin.

Install it from the ServiceNow Store: [**Retail Store Services**](https://store.servicenow.com/store/app/f84516ce1b87e210c43e65b2604bcb7a)

## **2. ServiceNow Connectors**

This plugin uses **two** ServiceNow connectors side by side:

**Connector 1 — OAuth 2.0 Authorization Code (user-based).** Used for the case lookup and for adding comments, accepting, and rejecting. These run under the authenticated user's own ServiceNow identity. Set this up following the [**OAuth 2.0 Authorization Code guide**](https://marketplace.moveworks.com/connectors/servicenow#oauth-2-0-authorization-code).

**Connector 2 — OAuth 2.0 Client Credentials (non-user / service account).** Used **only** for the `close` write. This call runs under a **dedicated service account**, scoped to a role limited to retail break-fix operations only. Set this up following the [**OAuth 2.0 Client Credentials guide**](https://marketplace.moveworks.com/connectors/servicenow#oauth-2-0-with-client-credentials).

Both connectors must be fully set up before installing this plugin.

Once configured, follow our [**plugin installation documentation**](https://help.moveworks.com/docs/ai-agent-marketplace-installation) for detailed steps on how to install and activate the plugin in **Agent Studio**.

# **How This Plugin Works**

The user can identify a case by its number or by describing it, and the plugin works out whether they want to add a comment and reopen it, close it, accept a proposed solution, or reject one, based on how they phrase the request. Each action only goes through if the case is currently in an appropriate state — for example, accepting or rejecting a solution only works on a case that has been resolved — otherwise the assistant explains why and leaves the case untouched. Closing a case warns the user it can't be reopened, and every change requires the user's explicit confirmation before it's made. Every update is recorded in the case journal with a note identifying who made the change and that it came through chat.

![image.png](Update%20Break-Fix%20Case/image.png)

# **Implementation Details**

## API Details

Replace `YOUR_INSTANCE` with your instance hostname and `ACCESS_TOKEN` with the access token for the connector noted on each call — the authenticated user's OAuth token (Connector 1) for every call except the close write, and the service account's Client Credentials token (Connector 2) for the close write only.

### **API #1: Resolve Case by Description (when case_number is not given)** *(Connector 1 — user-based)*

Returns the requester's own non-Closed cases so the resolver can match against the user's description and, when ambiguous, build the pick-list.

```bash
curl --location 'https://YOUR_INSTANCE/api/now/table/sn_rtl_stre_servcs_bf_case?sysparm_query=opened_by.email=<USER_EMAIL>^stateIN1,6,10,18&sysparm_display_value=true' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json'
```

**Parameters:**

- `USER_EMAIL` *(string):* The requesting user's email. Scope is the requester's **own** cases only — resolution never surfaces another user's case.
- State filter (`1,6,10,18` = New, Resolved, Open, Awaiting Info) excludes Closed cases from candidates.

### **API #2: Get the Case for Update** *(Connector 1 — user-based)*

Reads the case (by number or by the sys_id resolved above) so its `sys_id` and current `state` can be evaluated by the guards. `sysparm_display_value=true` returns `state` decoded. (This lookup is shared with the **Notify on Break-Fix Case Lifecycle** plugin's Accept flow.)

```bash
curl --location 'https://YOUR_INSTANCE/api/now/table/sn_rtl_stre_servcs_bf_case?sysparm_query=number=<CASE_NUMBER>&sysparm_display_value=true&sysparm_limit=1' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json'
```

### **API #3: Set Case State + Comment — `open` / `accept_solution` / `reject` intents** *(Connector 1 — user-based)*

A single consolidated action handles all three comment-bearing intents; only the `state` and `comments` values differ per intent.

```bash
curl --location 'https://YOUR_INSTANCE/api/now/table/sn_rtl_stre_servcs_bf_case/<CASE_SYS_ID>' \
  --request PATCH \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "state": "{{state}}",
    "comments": "{{comments}}"
  }'
```

| Intent | `state` | `comments` |
|--------|---------|------------|
| `open` | `10` (Open) | `[Submitted via Moveworks chat by {{user_full_name}}] {{comments}}` |
| `accept_solution` | `3` (Closed) | `[Accepted via Moveworks chat by {{user_full_name}}] User accepted the proposed resolution.` |
| `reject` | `10` (Open) | `[Rejected proposed resolution via Moveworks by {{user_full_name}}] {{comments}}` |

### **API #4: Close Case — `close` intent** *(Connector 2 — service account)*

Closes the case at the requestor's request. This is the **only** call in the plugin that runs under the service-account connector rather than the requesting user's own session. Kept as a separate action from API #3 both because it writes `resolution_code`/`close_notes` instead of `comments`, and because it is the one call scoped to Connector 2.

```bash
curl --location 'https://YOUR_INSTANCE/api/now/table/sn_rtl_stre_servcs_bf_case/<CASE_SYS_ID>' \
  --request PATCH \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "state": "3",
    "resolution_code": "9",
    "close_notes": "Closed by contributor : {{opened_by_name}}"
  }'
```

**Key nuances:**

- Comment values are substituted with triple-bracket (escaped) Mustache so `"` and `\` are written safely.

### API References

For detailed information on request parameters, response formats, and error handling, refer to the official [**ServiceNow Table API**](https://docs.servicenow.com/bundle/latest-application-development/page/integrate/inbound-rest/concept/c_TableAPI.html) documentation.

# **What Is In Scope for This Plugin?**

- Adding a comment and reopening a case to keep the fulfilment team working on it.
- Closing a case at the store employee's request.
- Accepting a proposed resolution to close the case.
- Rejecting a proposed resolution with a reason to reopen it.
- Identifying the case by number or by plain-language description.
- Confirmation step before any change is made.

# **What Is Out of Scope for This Plugin?**

- Searching or updating cases belonging to other store employees.
- Creating a new case (handled by **Create Break-Fix Case**).
- Looking up case details for display only (handled by **Get Break-Fix Case Details**).
- Lifecycle notifications (handled by **Notify on Break-Fix Case Updates**).
- Attaching files or images to an existing case — attachment upload is not supported during update.

# Related Plugins

| Plugin | What it does |
|--------|-------------|
| [Create Break-Fix Case](https://marketplace.moveworks.com/plugins/servicenow-retail-create-breakfix-case) | Open a new break-fix case for a broken in-store device directly from the Moveworks AI Assistant. |
| [Get Break-Fix Case Details](https://marketplace.moveworks.com/plugins/servicenow-retail-get-breakfix-case-details) | Look up the status, assignee, and details of an existing break-fix case by number or description. |
| [Notify Requesters of Break-Fix Case Updates](https://marketplace.moveworks.com/plugins/servicenow-retail-notify-on-breakfix-case-updates) | Push proactive notifications to the Moveworks AI Assistant when a case is assigned, needs more info, or is resolved. |
