Loading

Validation Rule to prevent Opportunity Stage change unless the Amount > 0

Publiceringsdatum: Apr 2, 2026
Beskrivning
An Opportunity should only be allowed to move into a given stage (in this example, ‘1. Discovery’) if the Amount field is populated with a value greater than 0, and if a custom date field (Initial_Meeting_Held__c) is not blank. If the Amount is > 0 and Initial Meeting Held has a date specified, only then should the Stage change be permitted. 
Lösning

Step 1: From Setup, navigate to the Object Manager tab. In the Quick Find search box, search for the Opportunity object. Click on Opportunity to navigate to the Opportunity object’s settings

00.png

Step 2: Select Validation Rules from the left side of the page, and then click on the New button

01.png

02.png

Step 3: Give the Validation Rule a useful Rule Name. Leave the Active checkbox selected if the rule should be active immediately after creation, or deselect it to come back and activate it later. Then, a good Description

03.png

Step 4: Under Error Condition Formula, use the following syntax to create the logic for the Validation Rule

AND(
    ISCHANGED(StageName),
    ISPICKVAL(StageName, "1. Discovery"),
    OR(
    ISBLANK(Initial_Meeting_Held__c),
        ISBLANK(Amount),
        Amount <= 0
    )
)

Step 5: In the Error Condition Formula page, use the Insert Field button to identify and populate within the formula the fields to check against. Note: In this example, we are evaluating the Amount field and a custom Date field, called Initial_Meeting_Held__c - you can swap this field name out for the name of another custom field in your org. Then, use the Check Syntax button to verify that the Validation Rule logic has no syntax errors, which should yield 'no errors found' if configured correctly.

04.png
Step 6: Provide a useful Error Message and determine where the message should be displayed

05.png
Step 7: Click Save to create the new Validation Rule

06.png
Step 8: Navigate to an Opportunity record and attempt to move the Stage to ‘1. Discovery’ (or whichever Stage applies to your org) and note if an error displays. Be sure to test all scenarios to ensure that the rule works as intended

07.png

Notes About this Approach:
Why use ISCHANGED() when evaluating the Stage?
Using ISCHANGED() ensures that the validation rule only fires when the Stage is being changed to the value that needs to be evaluated. Without this parameter, the Validation Rule might fire when unrelated changes are made to the record. 

Why use an OR() Block within the outside AND() block?
This ensures that if any of the following are true when the Stage is changed to the value being validated, that the validation rule fires and prevents saving the record: Amount is blank, Amount <= 0, custom Date Field is blank. Writing the rule in this way necessitates that when the Stage is changed to the evaluated Stage value, the Amount field must have a value > 0 and the custom Date field must have some value. 

_____________________________________________
Written by: Zack Terry | Salesforce Answers Leader
Zack Terry is a Senior Salesforce Solution Architect at Fast Slow Motion, which aims to be a blessing to business leaders by helping them implement and maximize their use of the Salesforce platform. At the time of writing, Zack has worked in the Salesforce ecosystem for nearly a decade, holds 20 Salesforce Credentials, and has achieved the rank of “All-Star Ranger” on Trailhead. He regularly participates as an Answers Leader in the Salesforce Trailblazer Community. 


Submissions reflect only the opinions of the user who made available the Submission and not the opinions of Salesforce, regardless of whether the user is affiliated with Salesforce, and may contain or constitute products, services, information, data, content and other materials made available by or on behalf of third parties ("Third Party Materials).  Salesforce neither controls nor endorses, nor is Salesforce responsible for, any Third  Party Materials, including their accuracy, validity, timeliness, completeness, reliability, integrity, quality, legality,  usefulness or safety, or any applicable intellectual property rights. Any Submissions made available through any message board or forum in response to posted questions, or that otherwise purports to answer any questions, including any questions about Salesforce or Programs, are made available for your general knowledge only and should never be relied upon as answers to your specific questions (even if an answer is marked as a “best” answer or with any similar qualifications). You should always contact Salesforce support for answers to your specific questions. Salesforce has no control over Submissions, and is not responsible for any use or misuse (including any distribution) by any third party of Submissions.

If you have questions, tap into the wisdom of our entire Trailblazer Community here: https://trailhead.salesforce.com/trailblazer-community/feed

Knowledge-artikelnummer

000396271

 
Laddar
Salesforce Help | Article