cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Sayyied2022
Regular Visitor

How do I remove usernames from Microsoft Forms attachments

Hi everyone, 

 

I've created an MS form to capture photo submissions but when I go to download the files it adds the name of the person who submitted the form/attachment in the file name. So instead of the file name reading "Supermarket" it is labelled as "Supermarket_Smith_John". 

 

I've created a cloud flow to transfer data from the form onto a SharePoint list. Is there somewhere on my flow where I can input an action to remove the username from the file name? 

Please note that I am a complete novice so you'll have to explain to me in simple terms 🙂 

I've also attached a screenshot of my process flow.

Sayyied2022_1-1660907191046.png

 

Thanks

Sayyied

 

12 REPLIES 12
MarconettiMarco
Super User
Super User

Hello @Sayyied2022 ,

I've replicated the issue for your reference using a Compose action in which I've put your file name:

MarconettiMarco_0-1660908249683.png

Please add another "Compose" action in which add the following expression:

trim(first(split(outputs('Compose'),'_')))

 

If I have answered your question, please mark my post as Solved.
If you like my response, please give it a Thumbs Up.

BR,

Marco

Hi @MarconettiMarco 

 

Thanks for the speedy response. Unfortunately the images submitted will have different file names so what dynamic content or expression should I enter in the first compose action box?

 

Sayyied2022_0-1660910081960.png

Sayyied

Hello @Sayyied2022 ,

my Compose action represents only an example.

You can directly put the "trim" expression in the related "Create item" action field, replacing "outputs('Compose')" with the question grabbed from Forms.

 

If I have answered your question, please mark my post as Solved.
If you like my response, please give it a Thumbs Up.

BR,

Marco

@Sayyied2022 ,

like this:

MarconettiMarco_0-1660910462595.png

trim(first(split(outputs('Get_response_details')?['body/ref24e6486aa24a05ac15e6313beb66b8'],'_')))

Trim.gif

 

If I have answered your question, please mark my post as Solved.
If you like my response, please give it a Thumbs Up.

BR,

Marco

Sayyied2022
Regular Visitor

Thanks @MarconettiMarco 

 

I've followed the instructions as you highlighted above but it's still not working 😞 

I enter the expression trim(first(split(,'_'))) and I select the 'Name' dynamic content in between ( and , 

This results in the following expression: 

trim(first(split(outputs('Create_item')?['body/{Name}'],'_')))

Sayyied2022_0-1660912616972.png

I noticed your box is blue but mine is purple (not too sure if this makes a difference): 

 

Sayyied2022_0-1660913192553.png

 
 
 
 
 
 

For context, on the MS forms I built out there is a 'name' field but that doesn't automatically rename the file or anything. On the MS forms I ask people to rename the file prior to uploading any attachments. A question is included in the form asking for confirmation that they've done this and they have to check a button as confirmation. 

 

Hope that made sense. Do forgive me if this is annoying. I don't work in IT so this is all new to me. 

 

Sayyied

ok @Sayyied2022 ,

no worries, from where are you grabbing the incorrect file name? From the "Get response details" action?

 

BR,

Marco

Sayyied2022
Regular Visitor

Here are all the dynamic content options available to me: 

 

Sayyied2022_0-1660914966091.png

I have previously tested the 'Upload photographs' option located under 'Dynamic content'. 

 

Is there an expression you can send me that I can just copy and paste? 

 

Btw I'm not too sure where that 'name' option has disappeared to. I'm referencing what was seen in my previous message. 

Hello @Sayyied2022 ,

I don't know how is build your Forms. Anyhow I think you should use the "Please reformat..." value, am I right?

 

BR,

Marco

Sayyied2022
Regular Visitor

Hi @MarconettiMarco 

 

So far I've tried using the 'Upload photographs', 'Resource data', 'Please reformat...' and 'Resource data' Dynamic Content within the expression you highlighted above, but alas no luck. 

 

Is there any other solution I can try? 

 

For context, my MS forms is set up as below. 

 

1. Please type in subject's name

- Text box answer

2. Please rename each file in the following convention (Surname, First Name) and check the button below to confirm. 

- Button

3. Is this an urgent request?

- Yes/No

4. If so please confirm your deadline. 

- Date

5. Upload photographs

- Upload button

**Submit**

@Sayyied2022 

So I did some testing and learned that the dynamic content that holds the filename is actually a string list that contains other data.

Cayshin_1-1660933933652.png

 

Cayshin_0-1660933870600.png

 

For MarconettiMarco's suggestion to work, we need to extract the filename from that content. Here is an expression you can use to do that (replace the bold section with your dynamic content. You may need to do some trial and error to find the right one. Ex. dump them all into a compose, run it, check the results to see which one has the data you want):

json(outputs('Get_response_details')?['body/r4550c900756e412eb445dac014bc7d43'])[0]['name']

 

With the expression, we're converting the string list to a JSON array. The [0] means we're selecting the first (and in this case, only) "row" of data from the array, then the ['name'] means we're selecting the name field which holds our filename.

 

So now that we have extracted the filename, I'd like to make a small change to MarnettiMacro's code. He's suggesting to perform a split at each occurrence of an underscore ("_") then selecting the first element returned by that split. But what if the person submitting a photo already has/puts their own underscores in the filename? Then we're going to be missing part of the filename. So in actually, we only want to remove everything after the last underscore (but keep the file extension).

 

Here's an expression that will remove everything (except the file extension) after the last underscore:

replace(outputs('Compose'), concat('_', last(split(outputs('Compose'),'_'))), concat('.',last(split(outputs('Compose'),'.'))))
 
In the above expression above, we're identifying everything after that's after last underscore, then replacing it with just file extension. The concats are there to add the in the little bit of text that got lost through the splitting.
Cayshin_2-1660935575861.png

 

 

There may be other ways to accomplish the same as the expression above, but this should work for your purposes.

Sayyied2022
Regular Visitor

Hi @Cayshin 

 

Sorry for my delayed response, I've updated my cloud flow as follows: 

 

Sayyied2022_1-1663074727772.png

 

But the problem still persists.

 

I also tried to enter the following express (as highlighted in your above answer) in the 'Inputs' field: replace(outputs('Compose'), concat('_', last(split(outputs('Compose'),'_'))), concat('.',last(split(outputs('Compose'),'.'))))

 

But it keeps saying 'Invalid expression' 

 

If I submit an attachment via MS forms the submitters name is still automatically added to the naming of the file. Do you have any thoughts as to what I'm doing wrong? Do you have any thoughts on this @MarconettiMarco

JSFHRMS
New Member

I had the same problem and after some testing I may have found a solution for this. 

Please note this solution does not work for anonymous responses, however you could bluit in a condition for this. 

 

The solution I found works like this:

- For each attachment

 

 

json(outputs('Get_response_details')?['body/r07de2b546a4744baa4df6dee5027c30e'])​​

 

Where ['body/r07de2b546a4744baa4df6dee5027c30e'] corresponds to the Forms questions where you can add attachments

 

- Get the User Profile of the responder of the form

- Compose the file name (including the user name) of the attachment

- Then compose the user name in the same way as it's added to the File Title (_ + Given Name + (space) + Surname)

 

 

 

concat('_',outputs('Get_user_profile_(V2)')?['body/givenName'], ' ', outputs('Get_user_profile_(V2)')?['body/surname'])​​

 

 

 

- Remove the composed User Name for the File Title by replacing it with a blank

 

 

replace(outputs('Compose_-_File_Name_with_extension'),outputs('Compose_-_User_Name'), '')​​

 

 

 

I Hope it also work for your situation.

Forms - Remove User Name from File Name.png

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Users online (2,101)