# Transform is always going to Negative Condition

**URL:** <https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894>\
**Category:** SHF Discussion and Questions\
**Tags:** transforms, identity-security-cloud\
**Created:** [March 19, 2026, 1:51pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894 "2026-03-19T13:51:05Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 1:51pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/1 "2026-03-19T13:51:05Z")

</div>

Been working on a transform and it continuously goes to the negative condition. Below is my transform.

{

```
"id": "2b6edcf3-4f5b-43e7-89a9-6fc94474c6ee",

"name": "CR1606_MultiSource_Employee_Contractor",

"type": "conditional",

"attributes": {

    "expression": "lookup(upper(trim(accountAttribute('ARHSB-Passport Database','User_Type'))),'CONTRACTLABOR','true','CONTRACT LABOR','true','CONTRACTOR','true') eq 'true'",

    "positiveCondition": {

        "type": "lookup",

        "attributes": {

            "input": {

                "type": "split",

                "attributes": {

                    "input": {

                        "type": "firstValid",

                        "attributes": {

                            "values": \[

                                {

                                    "type": "accountAttribute",

                                    "attributes": {

                                        "sourceName": "ARHSB-Lawson-Test",

                                        "attributeName": "Process Level"

                                    }

                                },

                                {

                                    "type": "accountAttribute",

                                    "attributes": {

                                        "sourceName": "ARHSB-Passport Database",

                                        "attributeName": "ARH_Facility"

                                    }

                                }

                            \]

                        }

                    },

                    "delimiter": "-",

                    "index": 0

                }

            },

            "table": {

                "2001": "Beckley Hospital",

                "2002": "Summers County Hospital",

                "2003": "Tug Valley Hospital",

                "2004": "McDowell Hospital",

                "2005": "Hazard Regional Medical Center",

                "2007": "Whitesburg Hospital",

                "2008": "Harlan Hospital",

                "2009": "Middlesboro Hospital",

                "2010": "Morgan County Hospital",

                "2011": "Mary Breckinridge Hospital",

                "2012": "Barbourville Hospital",

                "2013": "Our Lady of the Way Hospit",

                "2014": "Highlands Regional Med Ctr",

                "2015": "Paintsville Hospital"

            },

            "default": "UNKNOWN"

        }

    },

    "negativeCondition": {

        "type": "identityAttribute",

        "attributes": {

            "name": "employeeType"

        }

    }

},

"internal": false

```

}

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 19, 2026, 1:53pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/2 "2026-03-19T13:53:16Z")

</div>

Can you please let me know which input you are trying this transform with.

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 19, 2026, 1:56pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/3 "2026-03-19T13:56:01Z")

</div>

Check your expression and see if it always return false ?

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 1:56pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/4 "2026-03-19T13:56:30Z")

</div>

What i am trying to do is set the value of an identity attribute only if the employeetype is ContractLabor and taking the processlevel and looking it up in the table to get the value that I want

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 1:57pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/5 "2026-03-19T13:57:36Z")

</div>

How would I check my expression to see if it always returns false

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 19, 2026, 2:03pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/6 "2026-03-19T14:03:44Z")

</div>

Explain me the logic, I will help you to write a expression for your usecase.

---

<div class="post-metadata">

**Author:** ![Tursun](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/tursun/32/36674_2.png) [@Tursun](https://developer.sailpoint.com/discuss/u/Tursun)\
**Post date:** [March 19, 2026, 2:06pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/7 "2026-03-19T14:06:43Z")

</div>

Hi @dpowers1

is the `employeeType` already `ContractLabor` before the transform runs?

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 2:08pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/8 "2026-03-19T14:08:40Z")

</div>

So I have an authoritative source for all of our non-employees coming in and the User\_type is a field from that source that tells us if they are non-employee or ContractLabor. I only want to set the identity attribute that I created to the value in the table matching the processlevel if they are ContractLabor user\_type. The process level has to be split because it in there as like 2005 - Hazard Regional Medical.

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 2:10pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/9 "2026-03-19T14:10:27Z")

</div>

Yes the employeeType identity attribute is set to the User\_Type coming from that Passport source and it is going to be either ContractLabor, Non-employee, and many other different types

---

<div class="post-metadata">

**Author:** ![David\_Norris](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@David\_Norris](https://developer.sailpoint.com/discuss/u/David_Norris)\
**Post date:** [March 19, 2026, 2:18pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/12 "2026-03-19T14:18:51Z")

</div>

Don’t think your expression is correct. It needs to be comparing two strings (or “output” of other transforms). The expression can’t be compound transforms. The output of the other transforms need to be pre-evaluated outside of the expression itself.

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

---

<div class="post-metadata">

**Author:** ![PhilRawlings1](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/philrawlings1/32/37266_2.png) [@PhilRawlings1](https://developer.sailpoint.com/discuss/u/PhilRawlings1)\
**Post date:** [March 19, 2026, 2:35pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/14 "2026-03-19T14:35:30Z")

</div>

have you tried removing the ‘s around the ‘true’? It appears that you are trying to match “true eq ‘true’”, which would always fail.

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 2:36pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/15 "2026-03-19T14:36:09Z")

</div>

It is still resulting to the negativecondition when the user\_type is ContractLabor

---

<div class="post-metadata">

**Author:** ![Tursun](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/tursun/32/36674_2.png) [@Tursun](https://developer.sailpoint.com/discuss/u/Tursun)\
**Post date:** [March 19, 2026, 2:37pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/16 "2026-03-19T14:37:43Z")

</div>

@dpowers1 Can you test bellow transform please?

```json
{
  "name": "CR1606_MultiSource_Employee_Contractor", 
   "type": "conditional", 
   "attributes": {
      "expression": "$isContractor eq true",

      "isContractor": {
         "type": "lookup",
         "attributes": {
            "input": {
              "type": "upper", 
              "attributes": {
                "input": { 
                  "type": "trim", 
                  "attributes": {
                     "input": { 
                       "type": "identityAttribute", 
                       "attributes": { 
                         "name": "employeeType" 
                        } 
                      } 
                    } 
                  } 
                } 
              }, 
              "table": { 
                 "CONTRACTLABOR": "true",
                 "CONTRACT LABOR": "true", 
                 "CONTRACTOR": "true",
                 "default": "false" 
              } 
            } 
          }, 
       
          "positiveCondition": { 
             "type": "lookup", 
             "attributes": { 
                "input": {
                   "type": "split", 
                   "attributes": { 
                      "input": { 
                         "type": "firstValid", 
                         "attributes": { 
                            "values": [ 
                              { 
                                "type": "accountAttribute", 
                                "attributes": { 
                                   "sourceName": "ARHSB-Lawson-Test",
                                   "attributeName": "Process Level"
                              }
                            }, 
                            {
                                 "type": "accountAttribute", 
                                 "attributes": { 
                                    "sourceName": "ARHSB-Passport Database",
                                    "attributeName": "ARH_Facility" 
                             } 
                           } 
                         ] 
                        } 
                      },
                      "delimiter": "-",
                      "index": 0 
                     }
                   }, 
                   "table": { 
                      "2001": "Beckley Hospital", 
                      "2002": "Summers County Hospital", 
                      "2003": "Tug Valley Hospital", 
                      "2004": "McDowell Hospital", 
                      "2005": "Hazard Regional Medical Center", 
                      "2007": "Whitesburg Hospital", 
                      "2008": "Harlan Hospital", 
                      "2009": "Middlesboro Hospital", 
                      "2010": "Morgan County Hospital", 
                      "2011": "Mary Breckinridge Hospital", 
                      "2012": "Barbourville Hospital", 
                      "2013": "Our Lady of the Way Hospit", 
                      "2014": "Highlands Regional Med Ctr", 
                      "2015": "Paintsville Hospital", 
                      "default": "UNKNOWN"
                     }
                   } 
                 }, 

                 "negativeCondition": { 
                    "type": "identityAttribute", 
                    "attributes": { 
                       "name": "employeeType" 
                     } 
                   } 
                 }, 
                 "internal": false 
}

```

---

<div class="post-metadata">

**Author:** ![dpowers1](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dpowers1](https://developer.sailpoint.com/discuss/u/dpowers1)\
**Post date:** [March 19, 2026, 2:50pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/17 "2026-03-19T14:50:07Z")

</div>

> [@Tursun](#):
>
> ```auto
> name": "CR1606_MultiSource_Employee_Contractor", 
> "type": "conditional", 
> "attributes": {
> "expression": "$isContractor eq true",
> 
> "isContractor": {
> "type": "lookup",
> "attributes": {
> "input": {
> "type": "upper", 
> "attributes": {
> "input": { 
> "type": "trim", 
> "attributes": {
> "input": { 
> "type": "identityAttribute", 
> "attributes": { 
> "name": "employeeType" 
> } 
> } 
> } 
> } 
> } 
> }, 
> "table": { 
> "CONTRACTLABOR": "true",
> "CONTRACT LABOR": "true", 
> "CONTRACTOR": "true",
> "default": "false" 
> } 
> } 
> }, 
>        
> "positiveCondition": { 
> "type": "lookup", 
> "attributes": { 
> "input": {
> "type": "split", 
> "attributes": { 
> "input": { 
> "type": "firstValid", 
> "attributes": { 
> "values": [ 
> { 
> "type": "accountAttribute", 
> "attributes": { 
> "sourceName": "ARHSB-Lawson-Test",
> "attributeName": "Process Level"
> }
> }, 
> {
> "type": "accountAttribute", 
> "attributes": { 
> "sourceName": "ARHSB-Passport Database",
> "attributeName": "ARH_Facility" 
> } 
> } 
> ] 
> } 
> },
> "delimiter": "-",
> "index": 0 
> }
> }, 
> "table": { 
> "2001": "Beckley Hospital", 
> "2002": "Summers County Hospital", 
> "2003": "Tug Valley Hospital", 
> "2004": "McDowell Hospital", 
> "2005": "Hazard Regional Medical Center", 
> "2007": "Whitesburg Hospital", 
> "2008": "Harlan Hospital", 
> "2009": "Middlesboro Hospital", 
> "2010": "Morgan County Hospital", 
> "2011": "Mary Breckinridge Hospital", 
> "2012": "Barbourville Hospital", 
> "2013": "Our Lady of the Way Hospit", 
> "2014": "Highlands Regional Med Ctr", 
> "2015": "Paintsville Hospital", 
> "default": "UNKNOWN"
> }
> } 
> }, 
> 
> "negativeCondition": { 
> "type": "identityAttribute", 
> "attributes": { 
> "name": "employeeType" 
> } 
> } 
> }, 
> "internal": false 
> }
> 
> ```

Shawn that worked for me, can you help me understand what I was doing wrong in the other

---

<div class="post-metadata">

**Author:** ![David\_Norris](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@David\_Norris](https://developer.sailpoint.com/discuss/u/David_Norris)\
**Post date:** [March 19, 2026, 2:50pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/18 "2026-03-19T14:50:51Z")

</div>

Surprised the “Expert” Ambassador didn’t point out the issue with the expression.

Refer to this for examples of how the conditional Transform ought to be structured:

> **[Conditional | SailPoint Developer Community](https://developer.sailpoint.com/docs/extensibility/transforms/operations/conditional/)**
>
> Output different values depending on simple conditional logic.

@dpowers1 , also, try to use the ISC VS Code extension if you can (if you’re not already doing so). It helps with the JSON structure of transforms to some extent.

---

<div class="post-metadata">

**Author:** ![Tursun](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/tursun/32/36674_2.png) [@Tursun](https://developer.sailpoint.com/discuss/u/Tursun)\
**Post date:** [March 19, 2026, 3:08pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/19 "2026-03-19T15:08:02Z")

</div>

Glad it worked.

The expression was trying to run inline which isn’t supported, so I moved the contractor check into a named variable `isContractor` and referenced it in the expression as `$isContractor eq true`. Also, added upper and trim to case sensitivity, and moved default inside the table. Positive condition for the hospital mapping, negative condition returns employeeType as is.

Thanks

---

<div class="post-metadata">

**Author:** ![iamnithesh](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/iamnithesh/32/4884_2.png) [@iamnithesh](https://developer.sailpoint.com/discuss/u/iamnithesh)\
**Post date:** [March 19, 2026, 7:44pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/20 "2026-03-19T19:44:15Z")

</div>

> [@kumarSinghM](#):
>
> ```auto
> lookup(
> upper(trim(accountAttribute('ARHSB-Passport Database','User_Type'))),
> 'CONTRACTLABOR','true',
> 'CONTRACT LABOR','true',
> 'CONTRACTOR','true',
> 'false'
> )
> 
> ```

This is really interesting. Is this something SailPoint has introduced new? Where did you find this? Could you share the documentation link?

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 20, 2026, 2:38am UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/21 "2026-03-20T02:38:24Z")

</div>

@iamnithesh the one who posted was using this. I tried some modification in it. I don’t think it will work like this.

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 20, 2026, 2:38am UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/22 "2026-03-20T02:38:53Z")

</div>

I was also trying something new after checking this expression.

---

<div class="post-metadata">

**Author:** ![Tursun](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/tursun/32/36674_2.png) [@Tursun](https://developer.sailpoint.com/discuss/u/Tursun)\
**Post date:** [April 6, 2026, 4:12pm UTC](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894/23 "2026-04-06T16:12:02Z")

</div>

@dpowers1  
Could you please mark my answer above as the solution instead? That way, others can more easily find the actual fix.

Thanks

[Next page](https://developer.sailpoint.com/discuss/t/transform-is-always-going-to-negative-condition/199894.md?page=2)
