Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
ShowAll Questionssorted byDate Posted
DaveGC

# Workflow formula check Stage change

Hello, I need to create a workflow rule that triggers when the opportunity stage changes and sends an email, as long as it doesn't change to some values, this is what I got that isn't working:

```IF(
ISCHANGED(StageName)
AND (
NOT(ISPICKVAL(StageName, "Value 1")),
NOT(ISPICKVAL(StageName, "Value 2")),
NOT(ISPICKVAL(StageName, "Value 3")),
NOT(ISPICKVAL(StageName, "Value 4"))
))```

Akhil Anil
Hi Dave,

You don't need an IF condition there. You just have to wrap them all inside an AND statement. I would highly recommend to use a CASE function here because you have multiple values to be compared and a CASE function is the way to go for such scenarios. Your formula should be as simply as this

```AND(
ISCHANGED(StageName),
CASE(StageName,
"Value 1",1,
"Value 2",1,
"Value 3",1,
"Value 4",1,
0) = 0
)```

That will work !

@Lee - The formula you have posted wraps all the negative conditions within an OR statement which is logically incorrect and will yield the wrong results.

Christopher Taylor
Remove if from your formula.  The system will see it as checking that the condition is true.  If the condition is not true the workflow will not trigger.  The "if" is implicit in the application. so it should read

AND(ISCHANGED(StageName),
OR(NOT(ISPICKVAL(StageName, "Value 1")),
NOT(ISPICKVAL(SageName, "Value 2")),
NOT(ISPICKVAL(StageName, "Value 3")),
NOT(ISPICKVAL(StageName, "Value 4")),
)
)
Akhil Anil
Hi Dave,

You don't need an IF condition there. You just have to wrap them all inside an AND statement. I would highly recommend to use a CASE function here because you have multiple values to be compared and a CASE function is the way to go for such scenarios. Your formula should be as simply as this

```AND(
ISCHANGED(StageName),
CASE(StageName,
"Value 1",1,
"Value 2",1,
"Value 3",1,
"Value 4",1,
0) = 0
)```

That will work !

@Lee - The formula you have posted wraps all the negative conditions within an OR statement which is logically incorrect and will yield the wrong results.

This was selected as the best answer
DaveGC
@akhil are you adding the "=0" so that if one of the case conditions is true, it will negate the formula?
Akhil Anil
You got it right David !
DaveGC
Thank you!