Basically, I want the user to be able to select 'Preparing for Submission' or 'Ready to Submit', but I only want the approval process to be able to select 'Step 1', 'Step 2', 'Step 3', 'Approved'. Is this possible?



Yes, it is, with Record Types (see https://na1.salesforce.com/help/doc/en/editing_picklists_for_record_types_and_business_processes.htm for details.) You could have one Record Type "In Approval" with all of the options with a different one for the users. Workflows or triggers could automatically switch the Record Type as necessary.

  • This makes sense, but once the workflow updates the record type, any users that have the ability to edit the record during the approval process (which is necessary for the process) would still be able to edit the status field, right? Is it possible to lock that specific field while the process is underway? – jackerman09 Oct 15 '12 at 19:23
  • With Record Types you only see the picklist options approved for that type. Potentially users could change the Record Type, but you can hide that from the Page Layout. – Mike Chale Oct 15 '12 at 19:25
  • Right, but won't the approval process change the record type, then allowing the current approver access to the 'Status' field and the other options? – jackerman09 Oct 15 '12 at 19:28
  • I believe it depends on your approval process and the page layouts. – Mike Chale Oct 15 '12 at 19:33
  • Presumably, the Page Layout associated with the 'Approval' Record Type would have the Status field as Read Only ? – techtrekker Oct 15 '12 at 19:34

If you did not want to bother with changing record types, you could use a validation rule which prevents the user from picking those values even though he can see them.

Have a hidden checkbox field Pending_Approval__c The validation rule would prevent the user selecting any others picklist values except the three you intend for them to

ISPICKVAL(Field__c, 'Step 1'),
ISPICKVAL(Field__c, 'Step 2'),
ISPICKVAL(Field__c, 'Step 3'),
ISPICKVAL(Field__c, 'Approved')


As the initial submission action of the Approval Process, set Pending_Approval__c = true That will the let the Approval Process update to any of the picklist values Then as the Final Approval and Rejection actions, use a Field Update to set Pending_Approval__c back to false.

  • I like this idea, it directly addresses my need to 'lock' a single field to the users. My only question is, will this lock the field to the approval process, too, or just to the users? – jackerman09 Oct 15 '12 at 19:25
  • It could be both, though you'd probably want two separate validation rules. – Mike Chale Oct 15 '12 at 19:26
  • How will the validation rule know whether it is a user change or a change made by the approval process? – jackerman09 Oct 15 '12 at 19:27
  • So you're saying you need for the approver to be able to edit the Record while it is undergoing approval? Coz it is possible to lock down the Record to everyone but an administrator. – techtrekker Oct 15 '12 at 19:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.