Question

Workflow Automator for MultiSelect Fields - how?

  • 11 January 2024
  • 11 replies
  • 163 views

Userlevel 5
Badge +9

Hi

We have a list of approver persons per country. If the user selects the country from a normal dropdown field the automator can then send the approval mail to that person.

But If I use the MultiSelect dropdown field how does my workflow automator need to look like? The output of a MultiSelect seems to be an array with all the country names in it. But that would mean I would need to have a list of all possible country combinations? That is not possible :)

Is there another better way to do this?


11 replies

Userlevel 7
Badge +13

Hi

We have a list of approver persons per country. If the user selects the country from a normal dropdown field the automator can then send the approval mail to that person.

But If I use the MultiSelect dropdown field how does my workflow automator need to look like? The output of a MultiSelect seems to be an array with all the country names in it. But that would mean I would need to have a list of all possible country combinations? That is not possible :)

Is there another better way to do this?

If you select the service item in the condition node you can add extra conditions based on the fields in the service item. And then you need to do “line” per selected option. 

Until we can do loops it’s the only way :( 

Userlevel 5
Badge +9

Dear FreshService.. We have 8 Locations and therefore 8 MultiSelect options. Creating a workflow for this need us to make 2 ^ 8 - 1 lines to cover each option. That is 255 lines. ..

Please allow us to split the workflow in multiple strings when having MultiSelect so that each selection ends in its own way…..

Userlevel 7
Badge +13

Dear FreshService.. We have 8 Locations and therefore 8 MultiSelect options. Creating a workflow for this need us to make 2 ^ 8 - 1 lines to cover each option. That is 255 lines. ..

Please allow us to split the workflow in multiple strings when having MultiSelect so that each selection ends in its own way…..

HAHA, I know the feeling. It’s why I don’t use multiselect fields. 

 

 

Userlevel 7
Badge +13

Hi

We have a list of approver persons per country. If the user selects the country from a normal dropdown field the automator can then send the approval mail to that person.

But If I use the MultiSelect dropdown field how does my workflow automator need to look like? The output of a MultiSelect seems to be an array with all the country names in it. But that would mean I would need to have a list of all possible country combinations? That is not possible :)

Is there another better way to do this?

Is this new setup or do you have a workaround in place?

What are your end goal with this request ?

Userlevel 7
Badge +16

@msconfig87  and @Daniel Söderlund  Would it be any easier using a custom object to handle the country and approval combinations. Then parse the array of what is selected from the drop down using the expression builder node before passing it to a reader node? Its early here so if I am off the wall, apologize for that lol.

No matter what work around we work to create, we desperately need looping in workflow automators.

Userlevel 7
Badge +13

@msconfig87  and @Daniel Söderlund  Would it be any easier using a custom object to handle the country and approval combinations. Then parse the array of what is selected from the drop down using the expression builder node before passing it to a reader node? Its early here so if I am off the wall, apologize for that lol.

No matter what work around we work to create, we desperately need looping in workflow automators.

My idea was as somthing in that lines of thoughts, having something like if(regmatch(“{{placeholder_multi_UK}}{{placeholder_multi_DE”}},“name of value1”|”name of value2”|”name of value2”),”ad_group_1”,””)

Have one expression for each AD group needed. In the App node you add all of them in the group value. ( not sure if it can take multi group values other wise you need same amount of app nodes. 
 

Userlevel 7
Badge +16

Just found out yesterday that the Freshservice Product Team is looking to release Workflow Looping this year around mid-term!!!!!!! With that is also coming “Modular Workflow Fragments”. We will be able to reuse collections of workflow nodes!!! Talk about saving time when build workflows.

Cant wait for these features :)

Userlevel 7
Badge +13

Just found out yesterday that the Freshservice Product Team is looking to release Workflow Looping this year around mid-term!!!!!!! With that is also coming “Modular Workflow Fragments”. We will be able to reuse collections of workflow nodes!!! Talk about saving time when build workflows.

Cant wait for these features :)

Ya was on the call as well. Sound good. There was a lot more cools thing comming and things that should been there from the start of  ESM . 

Userlevel 5
Badge +9

@msconfig87  and @Daniel Söderlund  Would it be any easier using a custom object to handle the country and approval combinations. Then parse the array of what is selected from the drop down using the expression builder node before passing it to a reader node? Its early here so if I am off the wall, apologize for that lol.

No matter what work around we work to create, we desperately need looping in workflow automators.

My idea was as somthing in that lines of thoughts, having something like if(regmatch(“{{placeholder_multi_UK}}{{placeholder_multi_DE”}},“name of value1”|”name of value2”|”name of value2”),”ad_group_1”,””)

Have one expression for each AD group needed. In the App node you add all of them in the group value. ( not sure if it can take multi group values other wise you need same amount of app nodes. 
 

haven’t tried that yet. But as I am familiar with powershell I have made a cheap workaround by just using the PowerShell App node and the using this script (I know its not flexible and hard to understand for other involved non tech parties):

 

$SapApproverTable = @(

    [pscustomobject]@{"Location" = "ZCH"; "mail" = "approver1@example.com" }

    [pscustomobject]@{"Location" = "ZDE"; "mail" = "approver2@example.com" }

    [pscustomobject]@{"Location" = "ZAT"; "mail" = "approver2@example.com" }

    [pscustomobject]@{"Location" = "ZRS"; "mail" = "approver3@example.com" }

    [pscustomobject]@{"Location" = "ZBG"; "mail" = "approver2@example.com" }

    [pscustomobject]@{"Location" = "ZPT"; "mail" = "approver2@example.com" }

    [pscustomobject]@{"Location" = "ZUK"; "mail" = "approver4@example.com" }

    [pscustomobject]@{"Location" = "ZSG"; "mail" = "approver5@example.com" }

    [pscustomobject]@{"Location" = "ZHK"; "mail" = "approver5@example.com" }

    [pscustomobject]@{"Location" = "ZVN"; "mail" = "approver5@example.com" }

)

$FsRequestLocations = @('{{ticket.ri_276_access_to_multiple}}').Split(", ")

$FsRequestLocations | ForEach-Object {

    ($SapApproverTable | Where-Object Location -eq $_).mail

} | Select-Object -Unique

Userlevel 7
Badge +13

PS is a way to go as well :)

 

 

Userlevel 7
Badge +13

With expression I would have done something like this and duplicate but changing the match value and the e-mail. If you have more then one service item I would just add all the placeholders after the first one

if(regexmatch('{{ticket.ri_276_access_to_multiple}}','ZVN'),'approver5@example.com','')

 

Reply