Questionnaires: More Than Just a Survey Tool
Have you ever had a scenario where a questionnaire would come in handy to help with dynamic routing in a business process?
Let me set the scene for you: I received a request from an HR Manager that seemed a bit redundant. To be fair, she and I had a great working relationship and would often use each other as sounding boards. The question was, “Can we add an ‘Are you sure?’ question in the termination process to force the manager to confirm they want to fire the employee?” Pausing for the punchline that never came, I was left scratching my head as to why we’d want to add that kind of slowdown and noise into the system. I would have liked to joke that perhaps she could also ask the manager, ‘Did you pick up your dry cleaning today?’… but I did the next best thing and helped her with the problem.
In Workday, there are over 100 business processes that allow for a questionnaire to be answered as a task. These business processes include (but are certainly not limited to) Hire, Termination, Change Job, Request Time Off, Manage Goals, Onboarding, and Edit Position. You may already have questionnaires configured on these business processes! Did you know you can use questionnaire responses to drive what comes next in a workflow? You can, and that’s what I’ll share with you in this post!
Sample Use Cases
- During the Manager portion of an Employee Review, we ask the question, “Are you ready to move forward or do you need a second look?” Depending on the answer, we can either serve up a “Review Complete Manager Action” on the business process or send the review to completion.
- When utilizing Effective-Dated Custom objects, you can add a questionnaire to determine the object to update within the business process. By asking the question, “Which of the following additional data/custom object fields do you wish to update?”, you can use smart routing to have the appropriate workers update only the custom objects they need to. This eliminates the requirement to load an EIB every time a single piece of data needs to be updated. It also removes all additional (and unnecessary) custom objects from your process.
- In an involuntary termination process, we can ask the question “Do you need to immediately terminate system access?” From here we could launch an integration that calls out to whatever controls access to the system and have it immediately revoke access or you can allow the access to be cut off during its normal schedule.
- During a request time off event, depending on the setup, a question could be asked as follows: “Will you need to set up a delegate?” If they answer yes, then the delegation task triggers. If not then the delegation task will go into the ether never to darken their inbox and eventually cause you, as an HRIS Administrator, to clean it up later.
- During the change job process, you could ask a question such as, “Does this need to be approved at an executive level?” If yes, you could have the job change route to an HR Executive or another role.
Not to suggest you want to add questions to every business process, but there are certainly some cases here that lend themselves to an effective workflow.
Set It Up
Step 1: Create a questionnaire using the Configure Questionnaire task
Click on Edit Questionnaire Details and check the following areas:
- Questionnaire Display Name: If you end up having several versions of the questionnaire this will help with optics
- Questionnaire Type: If you have this area configured
- Allowed on Business Process: This one is critical. For this demonstration, I have set it on the Request Time Off Business Process.
- Questionnaire Instructions: As needed
Step 2: Add at least 1 question to your questionnaire
Click on Maintain Questions and in the first blank line click on Create Question. (Alternatively, you may use one that already exists in your tenant.) Fill in the following information:
- Question Type: I recommend the “Multiple Choice Single Select” option because it’s easy to report on the data. This type also exposes the Score box which will be referenced later.
- Possible Answers: Less is more! Be succinct.
- Score: I like to add a score as it is easier to mine out a score than an actual response. I will be using Score for the rest of the configuration.
- MAKE IT REQUIRED! Otherwise, why are we doing this at all?
Step 3: Add the questionnaire to the Business Process in question
- Find the Business Process you want to add the questionnaire to and get into Edit mode. I’ll use “Request Time Off” for this demonstration.
- Add a row for the questionnaire step and set the order that makes sense for this case
- Under the Type column select “Complete Questionnaire”
- In the Group Column select the appropriate group that should answer this question. A few that make sense would be initiator, Employee as Self, Manager, or HR Partner. Select the most appropriate option for your use case.
- When you click Ok after making this edit you will get a red Critical error. Fear not, this is expected!
- Click on the Configure Questionnaire bubble shown on the step you added. It’s here that you get to attach the new questionnaire. Adding text to Step Label Override will allow it to appear with your desired text in the inbox of the person asking the question.
Step 4: Create calculated fields
Before you can set conditions on the business process for the questionnaire, you’ll need to create at least three calculated fields.
- From the Questionnaire Answer business object, create a True/False calc field:
- Field = Question
- Operator = In the selection List
- Comparison Type = Values specified in this filter
- Comparison Value = The EXACT question you ask in the Business Process
- From the Action Event business object, create an Extract Single Instance calc field:
- Source Field = Questionnaire Answers for this Event
- Condition = the True/False field just built
- Sort Field = Last Functionally Updated (I like to use this one in case for some reason the questionnaire gets answered again because of a send back)
- Sort direction = Descending
- Instance to be returned = First Occurrence (this essentially returns the most recent object)
- Also from the Action Event business object, create a Lookup Related Value calc field:
- Lookup Field = the ESI field just built
- Return Value = Score
- (Optional) Create a True/False calc field on the Lookup Related Value field we just built:
- Field = the LRV from #3
- Operator = Equal To
- Comparison Type = Value Specified in this filter
- Comparison Value = whatever corresponds to the value you wish to evaluate against. In this case, I want to get the response that says, “Yes.” which was scored as a 2 during the create questionnaire part of this process. So I will put in 2 here.
Step 5: Configure conditions on the new business process step
Now that you have all the necessary building blocks, you can return to the original business process (Request Time Off in this sample) to add dynamic routing based on the questionnaire response.
- View the business process and click on the magnifying glass next to the step you want to add conditions to. Hover over Business Process and click on Maintain Step Conditions.
- Add a new row and select the Create Condition Rule option.
NOTE: I added both the True/False AND the Lookup Related Value calculated fields to this condition rule. This is redundant configuration; you should do one or the other. I just wanted to illustrate that you can truly make the last True/False optional. Creating that field may prove useful in the future as it can easily be pulled into a custom report.
Visualizing it 1-dimensionally on the business process is really only the first step. Does your configuration work as expected? Testing is key!
Test It Out
Select a Worker and Request Time Off (or Request Absence), following your current process. This may require you to proxy as them first.
After submitting the request, your new questionnaire task should appear in their inbox.
As your test user, select “Yes” as the answer to the question, which should trigger the approval flow. Stop Proxy and review the Event process. Does it appear with the initiation, the questionnaire, then an approval? If yes, it worked! If no, return to the steps above and review your setup.
It’s important to perform “negative testing” as well, to ensure that the opposite test will also work as expected. For this, proxy as another user but this time select something other than Yes in the questionnaire. If it works properly, I expect your approval step to be marked as Not Required.
When a step is “Not Required”, it’s because the condition rule on the step resolves as False. You configured the Approval to look for a “Yes” response, so in this example test, the condition was not met (did not resolve as True).
What’s Next?
Now that you’ve seen how to make use of questionnaires to enact a specific result in a business process to meet a business need, what will you do with this newfound power? The possibilities are endless! You could pair this solution with a boomerang integration and a lot of really awesome dynamic processes can unfold. But that’s more for another blog!
I will admit that this is certainly a nuanced idea and will only apply to a few very select processes. But, dear reader, if you find value in it, please contact us today and share what use cases you’ve put this knowledge to practice in!