How do I add survey functionality to other processes and modules in Service Desk?

Version 32

    Verified Product Versions

    Service Desk 2016.xService Desk 2017.x

    The current out of the box database contains the ability to send surveys out from the 'Full Incident' process and the 'Incident with Survey' process and also the 'Rich Incident with Survey' process after the modifications in The following guide demonstrates how to add the functionality into other processes and modules.


    Please make sure that any changes made using Designer, are tested first on a test copy of the database. Any changes should be carried out by a Designer trained technician. Before any changes are made to the live database, a backup of the database must be taken and nobody else should be logged in while changes are made. In the event of any problems after making changes, the database should be restored from the backup copy.


    Section 1: Object Designer


    1.1) Create a new survey object to store the completed questions


    If the Incident survey object is not being used an object needs to be created to store the survey data. In this example I am using the Change domain. A new object with the default attributes can be created. Additionally a date attribute can be added with the 'CreateDateTime' persistence type to show when the survey was created.


    1.2) Create ordered lists for the answers to the questions


    The answers to the questions should be created as ordered lists values connected to the object (in this case 'Change Survey') as this works best with Web Access. The number of ordered lists can be changed to match the number of questions. The ordered lists can be created using the ‘Object Creation Wizard’ to speed up the process. The wizard can be run by selecting the module folder in this case 'Change Management' then clicking on the 'Object Creation Wizard' link in the actions. When the Object Creation Wizard loads enter a title for the new object for example 'Survey Answers 1'. Then in the type of object select 'Look-up'. After the 'Look-up' option is selected two new drop-down boxes are displayed for the 'Look-up type:' field select 'Ordered'. The other drop down requests the 'Look-up from object:' be selected. The object required is the one created above in this example that is 'Change Survey'. These steps can be repeated until all the question answer fields have been generated.


    ** Please note that in 7.4 the order lists do not show the correct order in Web Desk so reference lists can be used as an alternative with a filter to order the values **



    1.3) Create a collection for the Survey object


    The collection can be created by dragging the ‘Change’ object onto the ‘Change Survey’ object in Object Designer. The object names would be different depending on where the survey objects are being created. For example if it was Incident the ‘Incident’ object would be dragged onto the ‘Incident Survey’ object.  When prompted with the question about creating a collection say 'yes' to create a new collection.


    This step allows an action to be created by right clicking on the collection and selecting 'Manage Actions'. Then create an action to complete the survey called 'Complete Survey' or similar.




    Section 2: Windows Manager and Administration


    2.1) Create a new Window for Survey


    Then create a window in Windows Manager for the survey object created in step 1.1 with the questions. In this example it is 'Change Survey'. The design of the window and questions can be changed based on the questions and the design required.




    2.2) Create a new windows for the answer ordered list


    To add the answers in administration a window needs to be created in Windows Manager for the ordered list objects created in step 1.2. The only field that is needed is the one for entering the question value, however others could be added if they are required.


    2.3) Create the question answers


    The answers to the questions can then be created in Administration in the ordered list tab as shown in the screenshot below. As examples I've used the same answers as the one used on the out of the box.




    Section 3: Process Designer


    In the following example I'm going to use the 'Simple change' process as an example to show how surveys can be added to the process.


    3.1) Add the Survey Required condition after the action you need to send out the survey.


    The first stage is to add the 'Survey Required' condition after the 'Verify' action in the process. This is not the best example because the survey may also be needed when the change failed and it would be displayed in the process later anyway. But I will add this in as an example just to show how it could be added to a process. The screenshot below shows where the 'Survey Required' condition is going to be added:




    3.2) Add the 'Survey Required' Condition


    To add the condition deactivate the process and delete the line from 'Verify' to the 'To Close' status. Then from the toolbox drag a decision onto the process and click on the 'New' condition button. The title of the condition can be 'Survey Required' and condition type selected should be 'Calculation'. Then in the Calculation formula select the button with the three dots. Then the following calculation should then be added and 'OK' selected.


    import System
    static def GetAttributeValue(Change):
      Frequency = 10
      is_divisible = false
      if Change._ChangeSurveyCol.Count == 0:
        if Change.RaiseUser != null:
          if Change.RaiseUser._DoNotSurvey == null:
            is_divisible = (Change.Id % Frequency == 0)
          if Change.RaiseUser._DoNotSurvey != null:
            if Change.RaiseUser._DoNotSurvey.ToString() == 'False':
              is_divisible = (Change.Id % Frequency == 0)
      return is_divisible


    ** Please note this calculation is written for change it would need to be updated to work in other modules. The line if Change._ChangeSurveyCol.Count == 0: would need to be amended to the collection created for the surveys. **


    The calculation can be changed to modify the frequency using the following community article:


    The ‘Comparison’ under 'Condition' should be equals and the specific value should be ‘True’. Then the 'OK' button should be selected.


    3.3) Add the reminder after the condition


    Once the condition has been added to the process add a reminder to the process with the details similar to the ones below. These would be have to be changed depending on where the survey is being added and the 'http://' value below updated with the process approver URL.


    Your change{Id} has been resolved.


    We would like you to complete a survey to tell us how you think we are doing.
    Please follow the following link and click the Complete Survey action.


    On the reminder window also tick the notify originator tick box to send to the user who raised the IPC. Then select 'OK' and join the 'Yes' branch from the decision to the 'Add Reminder' automatic action and the 'No' branch to the 'To Close' status. The drag a line from the 'Add Reminder' automatic action to the 'To Close' status. Then save the process. The process will then look like the following:




    3.4) After the'To Close' status add the Survey Required Pre-condition


    The next step is to add the 'Complete Survey' manual action to the process. The first part is to add a precondition after the 'To Close' status. This should would different depending on where the survey functionality is being added to the process. This can be done by dragging a precondition from the toolbox and selecting the 'Survey Required' condition previously created (Console will need to be closed and reopened before the condition can selected). Once this is added near the 'To Close' status it can be connected with the 'Survey Required' precondition.


    3.5) Add the Complete Survey manual action


    Then the ‘Complete Survey’ manual action can be added to the process after the pre-condition and connected to the pre-condition.


    3.6) Add a Reminder thanking the customer for completing the survey.


    The next step is to add a reminder after the 'Complete Survey' action to thank the user for completing the survey. The ‘Notify Originator’ tick box should be select so that an email is sent to that user. The text used in the reminder can be updated as required.


    Thank you for completing our survey.


    Thank you for completing our survey recently.
    Your thoughts are very important to us and will help us to improve our service in the future.


    3.7) Send a reminder to the assignee thanking them for completing the survey.


    The last step is to add in another reminder to notify the assignee that the survey has been complete. As before the text used can modified as required.


    Survey has been completed for Change {Id}


    Survey has been completed for Change {Id}


    The notify assignee tick box has to be selected and assignee selected using run time values.


    Once this is complete the reminders can be connected and linked back to the 'To Close' status.


    The updated part of the process will look similar to the following: