In this post, I will discuss all the String functions that can be used in Microsoft Flow. As the name implies, the functions covered in this post only apply to String data type.
Function
Description
concat
This function combines any number of strings together. It requires 2 or more parameters in the form of strings to combine into a single string.
Function: concat(text_1, text_2?,…)
Example: concat(‘string1-’,’string2-,’string3’)
Output: string1-string2-string3
Additional Examples: Click here
Example: concat(‘string1-’,’string2-,’string3’)
Output: string1-string2-string3
Additional Examples: Click here
substring
This function returns a subset of characters from a string. It requires 3 parameters: the string from which the substring is taken; the index where the substring begins; and the length of the substring. The last two parameters are numbers.
Function: substring(text, startIndex, length)
Example: substring(‘This is a short string’,10,5)
Output: short
Additional Examples: Click here
Example: substring(‘This is a short string’,10,5)
Output: short
Additional Examples: Click here
replace
This functions replaces a string with a given string. It requires 3 parameters: the base string that contains the string to be searched for using parameter 2 and then updated with parameter 3; the string to search for; and the string to replace the string from parameter 2.
Function: replace(text, oldText, newText)
Function: replace(‘This is the old string’, ‘old’, ‘new’)
Output: This is the new string
Additional Examples: Click here
Function: replace(‘This is the old string’, ‘old’, ‘new’)
Output: This is the new string
Additional Examples: Click here
guid
This function generates a globally unique string (GUID). An example of this function is if a document requires a unique ID. It contains an optional parameter, which is a single format specifier that indicates how to format the GUID. The format parameter can be “N”, “D”, ‘B’, “P”, OR “x”. “D” is used by default if the format is not provided.
toLower
This function converts a string to lowercase. This function only required 1 parameter, which is the string that needs to be converted to lowercase.
Function: toLower(text)
Example: toLower(‘Microsoft Flow Is AWESOME!!!’)
Output: Microsoft flow is awesome!!!
Additional Examples: Click here
Example: toLower(‘Microsoft Flow Is AWESOME!!!’)
Output: Microsoft flow is awesome!!!
Additional Examples: Click here
toUpper
This function converts a string to uppercase. This function only required 1 parameter, which is the string that needs to be converted to uppercase.
Function: toUpper(text)
Example: toUpper(‘microsoft flow is awesome!!!’)
Output: MICROSOFT FLOW IS AWESOME!!!
Additional Examples: Click here
Example: toUpper(‘microsoft flow is awesome!!!’)
Output: MICROSOFT FLOW IS AWESOME!!!
Additional Examples: Click here
indexOf
This function finds the index of a value within a given string case insensitively. This function requires 2 parameters: the string that contains the value and the value to search the index of.
Function: indexOf(text, searchText)
Example: indexOf(‘Microsoft Flow’, ‘Flow’)
Output: 10 (this is the index)
Additional Examples: Click here
Example: indexOf(‘Microsoft Flow’, ‘Flow’)
Output: 10 (this is the index)
Additional Examples: Click here
lastIndexOf
This function finds the last index of a value within a given string case insensitively. This function requires 2 parameters: the string that contains the value and the value to search the index of.
Function: lastIndexOf(text, searchText)
Example: lastIndexOf(‘Is this vehicle sold as-is?’, ‘is’)
Output: 24 (this is the last index of the word ‘is’, which is found in
‘as-is’)
Additional Examples: Click here
Example: lastIndexOf(‘Is this vehicle sold as-is?’, ‘is’)
Output: 24 (this is the last index of the word ‘is’, which is found in
‘as-is’)
Additional Examples: Click here
startsWith
This function checks if a string starts with a given value case insensitively. This function requires 2 parameters: the string that contains the value and the value the string may start with. The output is Boolean (true or false).
Function: startsWith (text, searchText)
Example: startsWith(‘This is Microsoft Flow’, ‘This’)
Output: true
Additional Examples: Click here
Example: startsWith(‘This is Microsoft Flow’, ‘This’)
Output: true
Additional Examples: Click here
endsWith
This function checks if a string ends with a given value case insensitively. This function requires 2 parameters: the string that contains the value and the value the string may end with. The output is Boolean (true or false).
Function: endsWith (text, searchText)
Example: endsWith(‘This is Microsoft Flow’, ‘Flow’)
Output: true
Additional Examples: Click here
Example: endsWith(‘This is Microsoft Flow’, ‘Flow’)
Output: true
Additional Examples: Click here
split
This function splits the string using a separator. This function requires 2 parameters: the string to split and the separator. In the example below, the separator is the space between the words.
Function: split(text, separator)
Example: split(‘This is Microsoft Flow’, ‘ ‘) – there’s a space between the single quotes.
Output: [“This”, “is”, “Microsoft”, “Flow”]
Additional Examples: Click here
Example: split(‘This is Microsoft Flow’, ‘ ‘) – there’s a space between the single quotes.
Output: [“This”, “is”, “Microsoft”, “Flow”]
Additional Examples: Click here
Photo by Pankaj Patel on Unsplash
how do you use this on fields passed into the flow i.e. from the last action
LikeLike
Hi Simon. What are you looking to do specifically?
LikeLike
I am looking to take the first 140 characters of a description field in dynamics 365 and populate the name field.
LikeLike
Hi dgurgesser,
You can use the substring() function. You can do it this way: substring(‘descriptionField’, 0, 140). descriptionField is the field that contains the string; 0 is your starting index; and 140 is the length of characters you want to retrieve from the descriptionField. Please try that and let me know.
Thank you!
LikeLike
How can I split based on a carriage return. I am trying to separate a lookup field with multiple values into separate SharePoint columns and the values are put on separate lines
LikeLike
Hello jrtraylor,
You can add a Compose or an Initialize variable actions and to set it’s value, press Enter. Then when using the split() function, you can do an expression similar to this: if using a Compose action, do split(StringToSplit, outputs(‘Compose’)) and if using a Variable, do split(StringToSplit, variables(‘variableName’)). Please try that and let me know.
Thanks.
LikeLike
Thank You for the response. I ended figuring out that the output of the multichoice column and lookup column with multiple values is actually an array. I was looking at the result in the column and just started thinking I had a line break to deal with. So I initialized an array variable and appended it with the values of the lookup column. I was then able to place the index of the array into the columns of the SharePoint List.
LikeLiked by 1 person
Glad you got it working, Jimmie.
LikeLike
Hello Fausto, I am trying to get the first 4 characters and want to filter on them.
If I write this down it gives me an error:
@equals(first(body(‘Get_items’)?[‘value’])?[‘Name’],’0202′)
Can you help me out with this?
LikeLike
Hello Karim,
For this one, you want to use the substring() function. You can do something similar to this: @equals(substring(body(‘Get_items’)?[‘value’], 0, 4), ‘0202’)
LikeLike
Hello Fausto,
how to remove leading zero from string , can you help me out
LikeLike
Hi Avinash,
Is it just one zero or multiple?
LikeLike
Hi, thanks for replying.
Actually, it will be multiple number of leading zero
Ex :- 0000000678040
Need a result:- 678040
LikeLike
Hi,
Thanks for reply,
Need remove multiple zero from leading
For example: 0000020350
Need result : 20350
LikeLike
Hello Fausto,
I am trying to remove “Review & Acknowledgment Required – “, from a dynamic content that looks like “Review & Acknowledgment Required – CHG0257429”, But the CH####### changes every time
LikeLike
Hi Tarik,
You can achieve what you need by combining the last() and the split() functions in an expression. For example, you can do an expression as follows: last(split(YourDynamicContentValue, ‘ – ‘)). The split() function will split the string at the – , including the spaces in both its left and right side, and the last function will grab the string to the right after the split(), similar to the RIGHT() function in Excel. I have a blog post where I use a similar expression, here’s the link: https://faustocapellan.com/2019/07/15/how-to-1-rename-email-attachments-using-microsoft-flow/
LikeLike
Dude. DUDE. This is the most helpful page I have found related to Automate thus far — and I have sifted through hundreds of sites, fourms, and posts. Seriously, my heat is bursting. Thank you so much for all this.
LikeLike
Hello,
Sorry for the late reply. I am glad to hear this post helped you.
LikeLike
Hey,
How can I put concatenate a string with the replace function? I need to replace the html from a create HTML action to format the table a bit. I want to add a header row with dynamic content, but can’t seem to get the expression right.
replace(body(‘Create_HTML_table_-_Core_Team_L09A’),”,’@items(‘Apply_to_each’)?[‘Country_x0020_or_x0020_Cluster/Value’]Core Team’)
I need the text of my second to be items(‘Apply_to_each’)?[‘Country_x0020_or_x0020_Cluster/Value’].
LikeLike
Hey,
How can I insert a space into a string field? I don’t need it in a specific place, just a space somewhere in the text. 5491141637426 –> 54 91141637426
LikeLike
Hi saramargolisshellcom,
You will have to do several expressions to get to this. To make sure it works, use a Compose action for every of the expressions listed below:
1. In the first Compose action, get the first 2 characters from the string using an expression as follows:
substring(string(outputs(‘String’)), 0, 2).
**Note: this part of the expression (string(outputs(‘String’))) comes from the output of a Compose action I am using to store the numbers you
provided in your comment, and it has to be converted to a string using the string() function.
2. In the next Compose action, the string must be split with the output from bullet point 1, and using the last() function, retrieve the characters to
the right of the characters using an expression as follows: last(split(string(outputs(‘String’)), outputs(‘First_2_Characters’))).
**Note: combining the split() and the last() functions, you can replicate the RIGHT() action from Excel. If you combine split() with first(), you can
replicate the LEFT() function.
3. In the last Compose action, you will concatenate the outputs of the first and second Compose actions along with the required space using an
expression as follows: concat(string(outputs(‘First_2_Characters’)), ‘ ‘, string(outputs(‘Remaining_Characters’))).
Please try that approach. Thank you!
LikeLike