Workflows get complicated when you have extensive processes or increased organizational data to configure. When such complex workflows are created with hardcoded values, managing and updating them becomes cumbersome.


With Reader Nodes, dynamically refer values from the Custom and Standard Objects and use them in your workflows. Reader nodes save you a lot of upkeep by simplifying workflow setup and maintenance.








How to use Reader Nodes?


Once you’ve created the custom objects, perform actions based on the data stored with the help of the Reader Node in Workflow Automator. 


There are four sections in Reader Node

  • Read from

  • Filters

  • Sort By

  • Preview results


Read From: Specify a Standard or Custom Freshservice Object to read from. 



Filters:  Filter custom object fields and create conditions based on which a record is read. 



Sort By:   If more than one record matches the specified condition, the reader node picks the first record. With the Sort By option, sort the records to ensure the first record is picked correctly.



Preview Results:   The Preview Results section shows reader results that match the conditions specified in the Filter section. Replace dynamic variables/placeholders with values to see the results returned by the reader.


Note: Preview Results will not work for placeholders.




Usecase 1 - Location-based Ticket Routing


We’ll see how to route tickets based on the location to different support teams in this example. 



Location

Ticket Category

Agent Group

New York

Hardware

US support 

Delhi

Software

India support

Sydney

Network

Australia support

Chennai

Hardware

India support




                    After Reader Node                                                            Before Reader Node


  1. Create Custom Object to map Agent groups based on the Requester Locations







To create custom objects refer here


  1. Navigate to Admin-> Automation & Productivity -> Automation -> Workflow Automator to create a workflow. 

    If your account has more than one workspace: 

    To modify global workflows, navigate to Admin > Global Settings > Automations & Productivity > Automation > Workflow Automator

    To modify workspace-level workflows, navigate to Admin > Workspace Settings > {Workspace Name} > Automations & Productivity > Automation > Workflow Automator

    Important Note:

    Workspace admins can view the list of global and local workflows applicable to their workspace. 

    The global workflows execute first, followed by the workspace-level workflows, to allow for the workspace-level workflows to take precedence over the global workflow. 

    For example, A global workflow can be configured to route tickets to the right workspace based on the subject/description. 

     
    Select Ticket is Raised from the event block.



  1.  Drag and drop the Reader Node to read the information from the Custom Object. Select the respective Custom Object you want to read from. 



  1. Now select the Object field from the Filter By option based on which a record should be chosen. For our use case, create a filter to pull a record that matches the Location from the Custom Object with the Requester Location. 


  1. If multiple records from the custom object table match your condition, the reader node returns only the first record. You can choose a sorting order to ensure that the first record is picked right in such situations.


  1.  Click on Done to create the reader node. 


 


  1. Each Reader node in the workflow will have a unique identifier Eg R1. The Output of the reader node will be a single record from which values will be referenced as <Reader ID>.<Object Field>. Example: R1.Location


  1. Add the below condition block to check if the reader has returned records and workflows are not broken with empty values.




  1. Create an Action node when the Condition Node fails (No branch).



  1.  Finally, create an Action Node to route the ticket to the respective agent group returned by the reader node based on the Custom Object Table.



Usecase 2 - Data dip into a Lookup to custom object (Meeting Room) to send the approval to that Meeting Room’s Admin.


Send approvals to Meeting Room Admins based on specified Meeting Room (Custom object lookup) selected on SR form.

  1. Create a custom object to store Meeting Room and respective Admin details.


  1. Populate the required object records to store and map respective Admins based on the Meeting Rooms.



  1. To look up the list of Meeting rooms from the Custom objects, Navigate to the respective SR form, select the custom object Meeting Room from the Custom Object data source





  1. Now to configure a workflow, navigate to Admin-> Service Desk Productivity -> Workflow Automator. Select Ticket is Raised from the Event block.

  1. Drag and drop the condition block and select Ticket fields->Requested items-> Meeting Room service item.


  1.  Insert the reader node to read the Meeting Room Custom Object information. 



  1. Now select the Record ID (unique ID for a custom object record) from the Filter By option and map it against the Service request Meeting Room field, which is custom object lookup 

Note: To filter and access data from a lookup field that uses a data source such as assets or custom objects, map the record ID against the respective lookup field. Since the lookup field internally stores the ID of the record referenced, both data types match. 


        Note: Here the Meeting Room in a service request form is a Custom object lookup field.


  1. Add the below condition block to check if the reader has returned records and workflows are not broken with empty values.


  1. Drag and drop the action block to send an approval to the respective Admin based on the meeting room selected in the service request form. Select the Meeting Room reader node (R1) from the drop-down and choose Admin. 


  1. Finally, send confirmation emails to the requester if the service request is approved or declined. 



Usecase 3 - Change approval or routing based on the associated asset


 1. Select Change is created in the event block.




2. Pull in the condition block to check if the change has any associated assets to it.




3. Drag and drop the reader node to read the information about the associated asset.



4. Create an action node to notify the respective group that manages the asset.



 5. Finally, pull in an action node to send approval to the respective Asset Manager or the CAB group.