Recently we came across a situation. We had a workflow in which we used a field which had field level security enabled on it. There was a custom field called “Credit Amount” that existed on the Account and had a field security enabled on it.
The workflow in which we were using this field checked a condition whether the field Credit Amount contained value in it. You can see in the below screen that the workflow was also set to execute under a logged in user’s context.
Now, the problem was that when the workflow was executed, it was not performing its operations. Since the Credit Amount field was a secured field and the user who was running this workflow did not have the privilege to read the field value, while checking the value of this field condition in workflow, it always returned NULL even if there was an existing value in this field. Due to this the workflow did not meet with condition and perform the operations. To overcome this situation, we simply modified the workflow to execute it as the OWNER of the workflow.
So before using fields in the workflow conditions, please check if the field has field security enabled on it or the workflow should run under the user who has appropriate security role.
Hope this helps!