# Preventing Duplicate User Creation in NERM Using SailPoint ISC Search API

**URL:** <https://developer.sailpoint.com/discuss/t/preventing-duplicate-user-creation-in-nerm-using-sailpoint-isc-search-api/223142>\
**Category:** SHF Community Knowledge Base\
**Tags:** nerm, sailpoint-identity-security\
**Created:** [September 18, 2026, 7:07pm UTC](https://developer.sailpoint.com/discuss/t/preventing-duplicate-user-creation-in-nerm-using-sailpoint-isc-search-api/223142 "2026-09-18T19:07:29Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![chaithu979](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@chaithu979](https://developer.sailpoint.com/discuss/u/chaithu979)\
**Post date:** [September 18, 2026, 7:07pm UTC](https://developer.sailpoint.com/discuss/t/preventing-duplicate-user-creation-in-nerm-using-sailpoint-isc-search-api/223142/1 "2026-09-18T19:07:29Z")

</div>

# Preventing Duplicate User Creation in NERM Using SailPoint ISC Search API

## Overview

While developing a user onboarding workflow in NERM, I needed to prevent duplicate profile creation when a user submits a request with an email address that already exists in SailPoint Identity Security Cloud (ISC).

To solve this, I implemented a duplicate validation check using the SailPoint ISC Search API before the profile creation step. If the email already exists, the workflow automatically cancels the request. If no matching identity is found, the workflow proceeds with profile creation.

* * *

## Business Requirement

Before creating a new profile in NERM:

- Check whether the email address already exists in SailPoint ISC.
- If the email exists, stop the workflow and prevent duplicate profile creation.
- If the email does not exist, continue with the onboarding process.

* * *

## Solution Architecture

```plaintext
Request Form
      ↓
REST API Call to ISC Search API
      ↓
Map Response to FOUND_ID
      ↓
Condition Check
      ↓
 ┌───────────────┴───────────────┐
 │ │
Identity Found Identity Not Found
 │ │
Cancel Session Create Profile

```

* * *

## Step 1: Create Request Form

The NERM request form captures user details, including the email address.

Example Attribute:

```plaintext
attr_demonermemail_ne_attribute

```

* * *

## Step 2: Configure REST API Action

Configured a REST API action in NERM to call the SailPoint ISC Search API.

**Endpoint**

```http
POST https://<tenant>.api.identitynow.com/v3/search

```

**Request Body**

```json
{
  "indices": [
    "identities"
  ],
  "query": {
    "query": "attributes.email.exact:\"{{request.attr_demonermemail_ne_attribute}}\""
  }
}

```

This query searches the Identities index for an exact email match.

* * *

## Step 3: Create Workflow Attribute

Created a custom workflow attribute:

| Attribute Name | Type |
| --- | --- |
| FOUND\_ID | Text |

This attribute stores the identity ID returned by the Search API.

* * *

## Step 4: Configure Response Mapping

Mapped the API response to the workflow attribute.

Example API Response:

```json
[
  {
    "id": "f17fd8292a784a818838046f9f2c9d45",
    "email": "tom.cruise@cyberzone.com"
  }
]

```

Response Mapping:

```plaintext
0 → id → FOUND_ID

```

* * *

## Step 5: Configure Workflow Condition

Configured a workflow condition using the REQUEST attribute:

```plaintext
REQUEST → FOUND_ID is present

```

### Important Note

Initially, I used:

```plaintext
PROFILE → FOUND_ID is present

```

However, the condition always evaluated as false because the profile had not yet been created.

The solution was to use:

```plaintext
REQUEST → FOUND_ID is present

```

since the value returned from the REST API exists within the workflow request context before profile creation.

* * *

## Step 6: Configure Workflow Routing

### If FOUND\_ID is Present

The workflow executes:

```plaintext
Cancel Session

```

This prevents duplicate profile creation.

### If FOUND\_ID is Absent

The workflow executes:

```plaintext
Create Profile

```

and the onboarding process continues.

* * *

## Benefits

- Prevents duplicate profile creation.
- Improves data quality and governance.
- Provides real-time validation during onboarding.
- Simple implementation using NERM workflow capabilities and SailPoint ISC APIs.
- Easily reusable for other duplicate validation use cases.

## Conclusion

By integrating the SailPoint ISC Search API within a NERM workflow, I was able to implement an effective duplicate email validation process before profile creation. The key learning was to evaluate the API response using the **REQUEST attribute context** rather than the **PROFILE attribute context** , ensuring the workflow correctly identifies existing users and prevents duplicate records.

---

<div class="post-metadata">

**Author:** ![punna0001](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/punna0001/32/42011_2.png) [@punna0001](https://developer.sailpoint.com/discuss/u/punna0001)\
**Post date:** [September 19, 2026, 10:46am UTC](https://developer.sailpoint.com/discuss/t/preventing-duplicate-user-creation-in-nerm-using-sailpoint-isc-search-api/223142/2 "2026-09-19T10:46:11Z")

</div>

Thanks for sharing this @chaithu979. Could you please clarify whether this KB is intended to prevent duplicates between **NERM and ISC** , rather than duplicates within NERM itself? Based on the business requirement that says **“Before creating a new profile in NERM,”** I believe the intention is to prevent duplicate NERM profile creation.

If the requirement is specifically to prevent duplicate **NERM profiles** , I believe NERM already provides native controls that may cover this without requiring an additional ISC Search API validation step.

At the **Profile Type** level, NERM Duplicate Prevention lets you select the attributes used to identify duplicate profiles and set **Allow user to bypass? = No**. ([docs](https://documentation.sailpoint.com/ne-admin/help/profile-types/manage-prof-types.html))

SailPoint also provides a **Unique** option for supported text attributes, such as Text Field and Text Area. When enabled, the documentation states that the value must be **“unique among profiles and pending requests in this profile type,”** which should also help prevent duplicate values from pending requests. ([docs](https://documentation.sailpoint.com/ne-admin/help/profile-types/attributes.html))

 ![duplicate-prevention](https://global.discourse-cdn.com/sailpoint/original/3X/c/c/cc7de68b42351229c1c550c18f3c05cdb99b080f.png)

---

<div class="post-metadata">

**Author:** ![chaithu979](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@chaithu979](https://developer.sailpoint.com/discuss/u/chaithu979)\
**Post date:** [September 20, 2026, 4:41am UTC](https://developer.sailpoint.com/discuss/t/preventing-duplicate-user-creation-in-nerm-using-sailpoint-isc-search-api/223142/3 "2026-09-20T04:41:25Z")

</div>

Thanks, Harish. The requirement is to prevent duplicate profile creation in NERM. While NERM’s native duplicate prevention features can help enforce uniqueness within NERM, our use case also requires validating whether the user already exists in the authoritative Workday source before creating a new profile. That’s why we’re considering the ISC Search API approach—to perform a broader identity check rather than relying solely on NERM profile-level duplicate controls.
